Post-Exploitation Sürecinde Mimikatz Kullanımı

Post-Exploitation Sürecinde Mimikatz Kullanımı

  • Kategori: Pentest
  • Tarih: 21-03-2019

Bu yazıda bir makinenin zafiyetlerini kullanıp o makineyi istismar ettikten ve meterpreter shell aldıktan sonra, meterpreter’ın bize sunmuş olduğu mimikatz modülünden ve kullanımından bahsedeceğim.

Bir sistemdeki mevcut zafiyetleri kullanıp o sisteme sızmak, Sızma Testi aşamalarından yalnızca biridir ve asla sonuncusu değildir. Sistem içinde ne kadar hassas veri varsa ulaşmak ve bunların ulaşılabilir olduğunu raporlamak gerekmektedir. Yalnızca o makine ile ilgili değil, diğer makinelere ve ağlara sızmak için de gereken bilgiler sızılan makinelerden elde edilebilmektedir(Örneğin network admin parolaları,vs). Bu işlemler, istismar sonrası(post-exploitation) işlemler olarak adlandırılmaktadır.

Mimikatz ise oldukça etkili bir istismar sonrası modülü olup, bir sistemde bellekte(RAM) tutulan hassas bilgileri(kullanıcı adı, parola, parola özeti(hash), klavye girdileri,vs) bulup bize sunan bir programdır.

Öncelikle zafiyetli olduğunu bildiğimiz hedef sistemde meterpreter/reverse_tcp shell alıyoruz.

Hedef sistemde meterpreter shell alındıktan sonra

load mimikatz

komutu ile bu modülü yükleyebiliriz.

Modülün dökümantasyonu maalesef ingilizce değil ve alt modüllerin kullanımı çok pratik değil. O nedenle bir nevi cheatsheet olarak bu dökümanı yazıyorum. Sadece işimize yarayacak kısımları ve kullanımlarını anlatacak, diğer alt modüllerin detayına girmeyeceğim.

Mimikatz’ı

mimikatz_command

başlangıç komutu ile kullanıyoruz.

Modülün kullanımını ve parametrelerine bakalım:

-a bayrağı ile argümanları, -f bayrağı ile fonksiyonları seçiyoruz.

Fonksiyon listesine göz atalım:

İlk olarak ‘samdump’ fonksiyonuna göz atalım. Bu fonksiyon 2 adet alt fonksiyon içeriyor: hashes ve bootkey. Alt seçenekler ise şu şekilde kullanılıyor:

fonksiyon::alt fonksiyon

Hedef sistemdeki kullanıcı adı ve parola özetlerine ulaşmak için

mimikatz_command -f samdump::hashes

komutunu kullanacağız. Çıktı ise şu şekilde:

Görüldüğü gibi hedef sistemde Administrator, Guest, decoder, admin1 ve ask kullanıcıları ve bu kullanıcılara ait LM ve NTLM hash değerleri mevcut.

İkinci fonksiyon olarak ‘sekurlsa’ fonksiyonuna göz atalım.

Burada ise gözümüze çarpan alt fonksiyon ‘searchPasswords’ oluyor. Bu alt fonksiyon bellekte mevcut olan kullanıcı adı ve parolaları bize sunacak. Henüz sisteme giriş yapılmadan

mimikatz_command -f sekurlsa::searchPasswords

komutunu çalıştıralım. Daha sonrasında ise, sisteme ‘decoder’ kullanıcısı ile giriş yaparak komutu tekrar çalıştıralım.

Görüldüğü gibi, ilk sorguda herhangi bir parola bulamadı çünkü henüz bellekte parola yok. İkinci sorguda ise sisteme decoder kullanıcısı ile giriş yapılmış olduğu için, o kullanıcıya ait şifreleri bellekten çekerek bize sundu.

Bu bilgiler ne işimize yarayabilir ve nasıl kullanabiliriz? Sızdığımız bu bilgisayarın bulunduğu ağda aynı kullanıcı adına ve parolaya sahip başka cihazlar bulunabilir. ‘Pass The Hash’ yöntemi ile(bu yazının konusu değil) SMB portu açık olan fakat üzerinde herhangi bir zafiyet bulunmayan makinelere yalnızca kullanıcı adı ve parola özeti bilgisi ile sızabiliriz.

Ahmet Selim Kaya

Paylaş

Yorumlar