
Outil de preuve de concept pour extraire des informations d'identification à partir de sessions protégées sur les systèmes Windows modernes.

DumpGuard est un outil d'extraction d'identifiants et de recherche de protocoles pour les systèmes Windows modernes. Il abuse du protocole Remote Credential Guard pour récupérer des informations d'identification même lorsque Credential Guard est activé, et inclut également un chemin de package d'authentification Microsoft v1 pour l'extraction NTLM orientée session.
Les fonctionnalités actuelles incluent :
Vous pouvez télécharger des copies préconstruites depuis la section des versions de ce dépôt.
Avertissement : Cet outil est fourni strictement à des fins éducatives et de test légitime uniquement. L'auteur de ce dépôt n'approuve ni ne soutient aucun type d'utilisation abusive et décline toute responsabilité pour les dommages ou conséquences juridiques résultant de l'utilisation de cet outil.
Le tableau suivant résume les techniques actuellement implémentées.
DumpGuard utilise un modèle command plus target.
command sélectionne la technique d'extraction.target sélectionne s'il faut opérer sur la session en cours ou énumérer les sessions.Commandes prises en charge :
/command:ntlmv1/command:ntlmv2/command:kerbtgs/command:msv10Cibles prises en charge :
/target:self/target:allParamètres courants de Remote Credential Guard :
/domain:<DOMAIN>/username:<SAMACCOUNTNAME>/password:<PASSWORD>/spn:<SPN>Paramètres Kerberos TGS :
/tgsdomain:<DOMAIN>/tgsspn:<SPN>Si /spn est omis pour un compte ordinateur, DumpGuard utilise par défaut HOST/<computername>.
Pour extraire les informations d'identification de l'utilisateur actuel depuis un contexte non privilégié, DumpGuard s'authentifie auprès d'un compte avec SPN en utilisant Remote Credential Guard, puis envoie des requêtes de suivi sur le contexte de sécurité établi.
Cela fonctionne indépendamment de l'état de Credential Guard, mais nécessite des identifiants pour un compte avec SPN.
Privilège requis : Aucun.
NTLMv1 :
DumpGuard.exe /command:ntlmv1 /target:self /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>]
NTLMv2 :
DumpGuard.exe /command:ntlmv2 /target:self /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>]
Kerberos TGS :
DumpGuard.exe /command:kerbtgs /target:self /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>] [/tgsdomain:<DOMAIN>] /tgsspn:<service/host>
Si /tgsdomain est omis, il prend par défaut la valeur /domain de Remote Credential Guard.
Pour extraire les informations d'identification de tous les utilisateurs actuellement accessibles depuis un contexte privilégié, DumpGuard emprunte les jetons des processus en cours d'exécution, s'authentifie auprès d'un compte avec SPN en utilisant Remote Credential Guard, puis envoie des requêtes de suivi sur le contexte de sécurité établi.
Cela fonctionne indépendamment de l'état de Credential Guard, mais nécessite des identifiants pour un compte avec SPN.
Privilège requis : SYSTEM ou Administrateur (nécessite SeImpersonatePrivilege).
NTLMv1 :
DumpGuard.exe /command:ntlmv1 /target:all /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>]
NTLMv2 :
DumpGuard.exe /command:ntlmv2 /target:all /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>]
Kerberos TGS :
DumpGuard.exe /command:kerbtgs /target:all /domain:<DOMAIN> /username:<SAMACCOUNTNAME> /password:<PASSWORD> [/spn:<SPN>] [/tgsdomain:<DOMAIN>] /tgsspn:<service/host>
Si /tgsdomain est omis, il prend par défaut la valeur /domain de Remote Credential Guard.
Pour extraire les réponses NTLM des utilisateurs actuellement authentifiés depuis un contexte SYSTEM privilégié, DumpGuard interagit directement avec le SSP NTLM et demande des réponses de défi pour chaque session d'ouverture de session découverte.
Cela fonctionne uniquement dans les conditions suivantes :
Privilège requis : SYSTEM (nécessite SeTcbPrivilege).
DumpGuard.exe /command:msv10
Cette attaque peut également être réalisée à l'aide de LSA Whisperer avec la commande suivante :
lsa-whisperer.exe msv1_0 Lm20GetChallengeResponse --luid {session id} --challenge {challenge to clients} [flags...]
J'ai rétro-conçu et recréé les interfaces exposées par Credential Guard (LsaIso.exe) et les ai incluses dans ce dépôt pour quiconque intéressé par des recherches supplémentaires.
En date d'octobre 2025, les interfaces suivantes sont implémentées :
Merci à SpecterOps pour avoir soutenu cette recherche et à mes collègues qui ont aidé à son développement.
| Technique | Commande | Nécessite SYSTEM | Nécessite un compte SPN | Peut extraire Credential Guard |
|---|
| Extraire NTLMv1 via Remote Credential Guard | ntlmv1 | self : ❌all : ✅ | ✅ | ✅ |
| Extraire NTLMv2 via Remote Credential Guard | ntlmv2 | self : ❌all : ✅ | ✅ | ✅ |
| Extraire Kerberos TGS via Remote Credential Guard | kerbtgs | self : ❌all : ✅ | ✅ | ✅ |
| Extraire NTLMv1 via Microsoft v1 authentication package | msv10 | ✅ | ❌ | ❌ |