Mimikatz ve SSP Nedir ?
Mimikatz Nedir?
“Mimikatz nedir?” sorusuna yanıt vermeden önce, Windows sistemlerdeki giriş işleminin nasıl yapıldığının bilinmesi gerekmektedir. Sistemi açtığımızda giriş yaparken parola ve kullanıcı adı bilgilerimizi doğrulamak üzere “lsass.exe” adında bir uygulama devreye girer. Bu uygulama sistemlerdeki kimlik doğrulama politikalarını ve diğer bazı güvenlik politikalarını yönetir.
Kullanıcı, sisteme kullanıcı adı ve şifre bilgilerini verdikten sonra lsass.exe, bu aldığı verileri SAM ve LDAP dosyalarındaki veriler ile karşılaştırır. Eğer karşılaştırma “true” bir değer döndürürse, kullanıcının giriş yapmasına izin verilir ve kimlik doğrulama (authentication ) işlemi tamamlanmış olur. Lsass.exe, kullanıcıyı sisteme dahil ederken parola bilgisini de NTLM hash ve şifrelenmiş bir biçimde bellekte saklar. NTLM hash, geri döndürülemezken parolanın şifrelenmiş versiyonu şifreleme algoritması tersine mühendisliklik teknikleriyle geriye döndürülerek açık metin (clear text) olarak elde edilebilir.
Peki mimikatz ne yapıyor? Bu araç windowstaki bu doğrulama işlemini kullanarak hedef sistemdeki parolayı clear text olarak elde etmeye yarıyor. Mimikatz’ın parola okuma işlemini yapabilmesini iki adet dosya sağlıyor; “mimilib.dll” ve “mimidrv.sys”. Mimidrv, Windows çekirdeği ile Mimikatz arasındaki iletişimi sağlarken işin en önemli kısmını mimilib üstenmektedir.
Mimilib.dll Ne Yapıyor?
SSP oturum paketlerine erişim, Windows üzerindeki AppLocker yazılımını bypass etme ve şifreleri filtreleme gibi görevlere sahip olan mimilib; RPC ve DHCP Sunucu üzerinde yanal hareket etmek ve hatta WinDBG’de bir uzantı olarak hareket etmek için ServerLevelPluginDll’i kullanıyor. Mimilib’in içeriğini incelersek karşımıza şöyle bir tablo çıkıyor:
– SpInitialize: SSP’yi başlatmak ve işlev işaretleyicilerinin bir listesini sağlamak için kullanılır.
– SpShutDown: Bir SSP’nin boşaltılmasıyla çağrılır ve kaynakların serbest bırakılması sağlar.
– SpGetInfoFn: Sürüm, ad ve açıklama dahil olmak üzere SSP hakkında bilgi sağlar.
– SpAcceptCredentials: SSP’nin ön belleğe alması için LSA tarafından iletilen clear-text kimlik bilgilerini alır.
Kullanıcı sisteme login olduktan sonra bellekte tutulan NTLM hash ve şifrelenmiş veriyi okuyan mimikatz, şifrelenen veriyi tersine mühendislik teknikleriyle geriye döndürerek parolanın açık metin halini elde ediyor. Mimikatz’ın ne olduğunu anladığımıza göre sırada SSP var…
SSP (Security Support Provider) Nedir?
Windows kimlik doğrulama mekanizmasının temelini oluşturan Security Support Provider ya da kısa adıyla SSP, kimlik doğrulaması gerektiren uygulamalar tarafından SSPI (Security Support Service Provider Interface) olarak kullanılır. Bir arayüz olan SSPI, RPC gibi dağıtılmış programlama kütüphanelerini kimlik doğrulama işlemleri için kullanabilir. Windows sitemlerde temelde 3 farklı SSP bulunmaktadır:
– Kerberos Protocol Security Package
– Schannel SSP
– NTLM Security Package
SSP’ye de değindiğimize göre şimdi de Mimikatz ve SSP arasındaki ilişkiye değinelim. Mimikatz’ın ve windowsun sağladığı SSP’nin birlikte nasıl çalıştığını artık anlamışsınızdır. Mimikatz, kullanıcıların hızlı bir şekilde oturum açmasına ve kimlik doğrulamasına olanak tanıyan Security Support Provider’ı kullanarak parola bilgisini elde eder.
Mimikatz Nasıl Çalışır?
Mimikatz ve SSP’nin ne olduğunu kavradığımıza göre sırada Mimikatz’ın çalışma mantığını anlamak var. Mimikatz, esasında Windows sistemlerde single sign-on (SSO) sistemini exploitleyerek (sömürerek) çalışmaktadır. Windows 10’a kadar tüm Windows sistemlerde varsayılan bir özellik olarak gelen WDigest, şifrelenmiş parolayı belleğe kaydedip aynı zamanda bu şifreyi çözecek “secret key”i de aynı şekilde belleğe yüklüyordu. Mimikatz’da, bu özellikten faydalanarak bellekteki şifreyi kolay bir şekilde açık metin olarak elde edebiliyordu.
WDigest’in böyle bir soruna yol açtığını farkeden Microsoft, Windows 8.1’de bu özelliği eğer kullanıcı isterse devre dışı bırakabilir hale getirdi ve Windows 10 cihazlarda ise tamamen kapattı. Ancak WDigest, hala sistemlerde var olan bir özellik. Eğer saldırgan hedef sistemde Administrator yetkilerine sahip olursa WDigest’i çalıştırabilmekte ve mimikatz aracılığı ile parolayı kolaylıkla elde edebilmektedir.