Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
dumpguard_bof — Portage Beacon Object File (BOF) de DumpGuard pour extraire les hachages NTLMv1 des sessions sur les systèmes Windows modernes. | Kitploit
Outils/GitHubGitHub/0xedh/dumpguard_bof
Attaques de Mots de PasseExploitationPost-ExploitationTests d'IntrusionAuthentificationRed Teaming
GitHub0xedh/dumpguard_bof

dumpguard_bof

Portage Beacon Object File (BOF) de DumpGuard pour extraire les hachages NTLMv1 des sessions sur les systèmes Windows modernes.

Voir le dépôt
222241il y a 8 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

DumpGuard BOF

Port Beacon Object File (BOF) de DumpGuard pour extraire les hachages NTLMv1 des sessions sur les systèmes Windows modernes.

Demo

À propos de ce projet

Ce dépôt contient une implémentation Beacon Object File (BOF) de DumpGuard, portée de l'implémentation originale C#/.NET vers du C pur pour une utilisation avec Havoc et autres frameworks C2 prenant en charge l'exécution de BOF.

Ceci est une Preuve de Concept (PoC) et un exercice d'apprentissage.

Ce port BOF a été créé dans le cadre de mon parcours personnel pour comprendre les détails du protocole Remote Credential Guard, les flux d'authentification Kerberos et les mécanismes de sécurité sous-jacents de Windows. Le processus de portage de cet outil de C# vers du C pur pour l'exécution BOF était principalement un effort éducatif.

Veuillez noter que :

  • Ce code peut contenir des bogues, des erreurs ou des implémentations incomplètes.
  • Il n'a pas été testé de manière approfondie sur toutes les versions ou configurations de Windows.
  • Certains cas particuliers ou nuances du protocole peuvent ne pas être correctement traités.
  • L'implémentation peut différer de l'originale de manière à affecter la fiabilité.
  • Ceci n'est pas un code prêt pour la production. Utilisez-le à vos risques et périls Ü.

Si vous trouvez des problèmes ou avez des améliorations, les contributions sont les bienvenues. Pour une implémentation robuste et bien testée, veuillez vous référer à l'outil DumpGuard original.

Recherche originale

Ce BOF est basé sur les recherches et les outils de @bytewreck chez SpecterOps :

  • Outil original : github.com/bytewreck/DumpGuard
  • Article de blog : Catching Credential Guard Off Guard

Aperçu

DumpGuard exploite Windows Remote Credential Guard (RCG) pour extraire les hachages NTLMv1 des utilisateurs connectés sans toucher à la mémoire LSASS et sans nécessiter de privilèges administrateur. Il fonctionne même lorsque Credential Guard est activé.

Comment ça fonctionne

  1. Impersonner un serveur CredSSP/RDP localement. Le BOF agit comme un faux serveur RDP.
  2. Tromper Windows SSPI pour qu'il effectue une authentification Kerberos + CredSSP complète.
  3. Recevoir les identifiants de l'utilisateur encapsulés dans TSRemoteGuardCreds.
  4. Appeler le package TSSSP de LSA pour calculer une réponse NTLMv1 avec un défi connu.

Les 4 tours de la danse CredSSP

Après le tour 4, nous avons le blob d'identifiants chiffré. La magie opère lorsque nous appelons LsaCallAuthenticationPackage avec le package TSSSP. LSA achemine notre requête via RDPEAR -> TSRemoteGuard -> MSV1_0, qui déchiffre les secrets et calcule la réponse NTLMv1 pour nous.

Contexte

Credential Guard isole les secrets NTLM et Kerberos dans un espace VBS sécurisé (LsaIso.exe), empêchant les attaques directes sur la mémoire comme Mimikatz. Cependant, Credential Guard doit encore utiliser ces secrets pour une authentification légitime. C'est l'interface qu'exploite cette technique.

Pour une analyse technique complète, voir : Catching Credential Guard Off Guard

Implémentation

Ce port BOF n'implémente que le mode "Self" de l'outil DumpGuard original. Les modes "All" ne sont pas implémentés dans cette version.

Mode Self

Extrait le hachage NTLMv1 de l'utilisateur du processus actuel via le protocole Remote Credential Guard.

  • Privilège requis : Aucun (s'exécute dans le contexte de l'utilisateur actuel)
  • Statut de Credential Guard : Fonctionne que Credential Guard soit activé ou non
  • Prérequis : Identifiants pour un compte avec un SPN enregistré

Extraction des hachages d'autres utilisateurs

Bien que ce BOF n'implémente que le mode "self", vous pouvez toujours extraire les hachages NTLMv1 d'autres utilisateurs en injectant, par exemple, dans un processus s'exécutant sous cet utilisateur. Par exemple, si vous avez des privilèges administrateur, vous pouvez injecter le BOF dans un processus appartenant à un autre utilisateur connecté pour obtenir son hachage.

Prérequis

Compte avec SPN

Cette technique nécessite les identifiants d'un compte disposant d'un Service Principal Name (SPN) enregistré. Une façon d'y parvenir est de créer un compte machine et d'y ajouter un SPN.

Étape 1 : Créer un compte machine

Avec Impacket :

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

Exemple de sortie :

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

Étape 2 : Ajouter un SPN au compte machine

Avec krbrelayx addspn.py :

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

Étape 3 : Vérifier le SPN (si vous le souhaitez)

Avec pywerview :

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

Recherchez serviceprincipalname: host/yourspn.domain.local dans la sortie.

Utilisation

Havoc C2

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

Remarque : Le paramètre x est un argument factice requis avant le domaine. Cela pourra être corrigé dans de futures versions (le cas échéant).

Exemple :

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

Exemple de sortie :

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

Important : Le hachage NTLMv1 extrait appartient à l'utilisateur exécutant le processus BOF, pas au compte machine utilisé pour l'authentification (EVIL_COMPUTER$). Les identifiants du compte machine ne sont utilisés que pour s'authentifier auprès du KDC et établir la session Remote Credential Guard.

La sortie est au format NTLMv1 compatible hashcat :

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

Compilation

root@kitploit:~
make clean && make

Sortie : build/dumpguard.x64.o

Prérequis

  • La cible doit être une machine Windows jointe à un domaine
  • Vous avez besoin des identifiants d'un compte avec SPN activé (voir Prérequis)
  • Le BOF s'exécute dans le contexte de l'utilisateur du processus actuel

Références

Documentation Microsoft

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

Protocoles Microsoft

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

Articles de recherche et billets de blog

  • 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

Licence

Licence BSD 3-Clause

L'outil DumpGuard original est sous licence BSD 3-Clause, Copyright (c) 2025 Valdemar Carøe. Ce port BOF maintient les mêmes conditions de licence.


Pour toute question, rapport de bogue ou contribution, veuillez ouvrir un ticket sur GitHub.

Télécharger l’outil
TourClient -> ServeurServeur -> Client
1SPNEGO + TGT-REQTGT-REPLY (du vrai KDC)
2AP-REQ (ticket de service)AP-REP + MIC
3PubKeyAuth (hash de liaison)Hash de liaison du serveur
4AuthInfo (TSRemoteGuardCreds)N/A