Not: Mevcut ortamda hedef Windows makineye yönetici yetkileri ile erişilebildiği varsayılmaktadır.
1) LSASS Prosesinin Dump Edilmesi
Yönetici yetkileri elde edilen bir Windows bilgisayarda LSASS prosesi üzerinde kimlik bilgileri saklanmaktadır.
Bu proses Task Manager kullanılarak dump edilebilir.
Dump işlemi için diğer yöntemler aşağıdaki gibi sıralanabilir;
- procdump -accepteula -ma lsass.exe lsass.dmp
- .\rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump 5678 C:\temp\lsass.dmp full
- Process Explorer, PowerSploit Out-Minidump.ps1, SQL Dumper, Cisco Jabber
… gibi yöntemler ile ilgili detaylı bilgi için kaynaklardaki Deep Instinct [3] bağlantısı incelenebilir.
2) Pypykatz aracı ile Kimlik Bilgilerinin Elde Edilmesi
Elde edilen dump dosyası içerisindeki kimlik bilgilerini elde edebilmek için Kali Linux içerisindeki pypykatz aracı kullanılabilir.
pypykatz lsa minidump lsass.dmp
Oturum açan Patrick kullanıcısının kimlik bilgileri NT özeti veya SHA1 özeti olarak elde edilmiştir.
Benzer bilgiler oturum açan bir başka kullanıcı olan Ahmet için de benzer bilgiler elde edilmiştir.
3) NT-Hash Değerinin Kırılması
Elde edilen parola özetleri bir sözlük yardımı ile kırılabilir.
Bu amaç için Hashcat aracı kullanılabilir.
hashcat -m 1000 NT-Hashes.txt -o Sonuc.txt Parolalar.list
Eğer kullanılan sözlükte NT özet değerlerinin açık metin hali varsa, sonuç elde edilir.
4) Wdigest Hilesi ile Açık Metin Parolaların Elde Edilmesi
Sözlük yeterince güçlü değil ve/veya parolalar çok karmaşık ise NT-Hash ile ilerlenebilir. Bunun yanında açık metin parolaları elde edebilmek için, Wdigest kimlik doğrulama paketi etkinleştirilir.
Wdigest, kimlik doğrulama için açık metin parolaya ihtiyaç duyan Hypertext Transfer Protocol (HTTP) veya Simple Authentication Security Layer (SASL) gibi protokollerde kullanılan kimlik doğrulama paketidir. Örneğin; OWA (Outlook Web Access) gibi uygulamalar için LM/NTLM ile ağ üzerinden kimlik doğrulaması yaparken, RDP yaparken parolayı “lsasrv.dll” içerisinde şifreli olarak (secret uzunluğuna ve işletim sistemine göre RC4, DES, AES olabilir) saklarken kullanılır.
Wdigest ile kimlik doğrulamayı etkinleştirmek için “UseLogonCredential” değeri “1” olarak ayarlanır. Bu amaçla Crackmapexec aracı da kullanılabilir.
reg add “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest” /v “UseLogonCredential” /t REG_DWORD /d 1 /f
Not: Kayıt Defteri üzerinden de aynı kayıt değeri eklenebilir.
Bu aşamada yönetici yetkisi komut satırına erişilmesine rağmen, kayıt değerine erişilemeyebilir.
Bu durumun muhtemel sebebi Remote Registry servisinin devre dışı olmasıdır.
5) Pypykatz Aracı ile Açık Metin Parolaların Elde Edilmesi
Wdigest kimlik doğrulaması etkinleştirildikten sonra iligli kütüphanelerin tekrar çağırılması yani kullanıcıların yeniden oturum açması beklenebilir. Bu amaçla kullanıcı oturumları uzaktan kapatılabilir.
rundll32.exe user32.dll,LockWorkStation
Patrick kullanıcısı yeniden oturum açtığında parolasının açık metin olarak LSASS prosesinde saklanması beklenmektedir. LSASS prosesinin yeniden dump’ı alındığında, bu dosya içerisinde açık metin parolaların kaydedildiği görülmüş olur.
Bunun yanında, Ahmet kullanıcısının açık metin parolası ise, bilgisayar yeniden başlatılınca ele geçirilebilmiştir.
Kaynaklar:
[1] https://www.siberportal.org/blue-team/securing-operating-systems/securing-windows-operating-system/mitigating-wce-and-mimikatz-tools-that-obtain-clear-text-passwords-on-windows-session/
[2] https://www.siberportal.org/red-team/windows-operating-system-penetration-tests/obtaining-clear-text-password-from-lsass-dump-file-that-is-stolen-from-remote-desktop-connection-using-mimikatz-tool/
[3] https://medium.com/@markmotig/some-ways-to-dump-lsass-exe-c4a75fdc49bf
[4] https://www.deepinstinct.com/blog/lsass-memory-dumps-are-stealthier-than-ever-before