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
ghosthound — GhostHound is a BloodHound OpenGraph extension that surfaces Active Directory tombstone reanimation as a first-class attack path, enumerating deleted objects via SHOW_DELETED, mapping who can restore them, and revealing when a reanimated identity regains privileged group membership. | Kitploit
Outils/GitHubGitHub/jvbotelho/ghosthound
Privilege EscalationReconnaissanceExploitationLateral MovementInformation GatheringPost-ExploitationPenetration TestingRed Teaming
GitHubjvbotelho/ghosthound

ghosthound

Voir le dépôt
422il y a 11 joursPas encore vérifié

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 →

À propos

GhostHound is a BloodHound OpenGraph extension that surfaces Active Directory tombstone reanimation as a first-class attack path, enumerating deleted objects via SHOW_DELETED, mapping who can restore them, and revealing when a reanimated identity regains privileged group membership.

Partager

GhostHound

Crates.io docs.rs OpenSSF Scorecard

GhostHound est une extension OpenGraph pour BloodHound dédiée à Active Directory. SharpHound et tous les autres collecteurs AD ignorent CN=Deleted Objects : les objets supprimés (tombstones) sont invisibles pour l'analyse standard des chemins d'attaque de BloodHound, alors même que la Corbeille AD et les mécanismes de réanimation de tombstones peuvent permettre à un principal suffisamment privilégié d'en restaurer un — et de prendre le contrôle de l'identité qu'il représente. GhostHound énumère les tombstones via LDAP avec le contrôle SHOW_DELETED, détermine qui peut réanimer chacun d'eux, et produit une charge utile JSON OpenGraph ainsi qu'une définition d'extension model.json pour que BloodHound CE v8+ puisse l'afficher comme une partie intégrante du graphe.

Usage autorisé uniquement. Cet outil est destiné à la sécurité offensive / aux tests d'intrusion autorisés et à la recherche en laboratoire de détection. Exécutez-le uniquement sur des environnements Active Directory pour lesquels vous avez une autorisation explicite de test.

Prérequis

  • Droits équivalents à ceux des Administrateurs (ou une délégation explicite d'accès en lecture à CN=Deleted Objects) sur le domaine cible. Les comptes non privilégiés ne peuvent pas voir le conteneur, quelle que soit la méthode d'authentification utilisée — il s'agit d'une restriction imposée par AD, que GhostHound ne peut pas contourner.
  • Accessibilité réseau à un contrôleur de domaine sur LDAP (389) ou LDAPS (636).
  • BloodHound CE v8+ si vous souhaitez importer le graphe résultant (la collecte et la sortie JSON fonctionnent de manière autonome sans lui).

Utilisation

root@kitploit:~
ghosthound -d ghost.local --dc-ip 10.0.0.10 -u alice -o tombstones.json

Ordre de résolution du mot de passe : --password (à éviter — visible via ps//proc/<pid>/cmdline et l'historique du shell), puis la variable d'environnement LDAP_PASSWORD, puis une invite interactive si aucun n'est défini.

Par défaut, GhostHound se connecte via LDAPS (636) avec vérification du certificat activée. Deux options existent pour les environnements où cela ne convient pas :

  • --disable-ldaps — revenir au LDAP en clair (389). Le mot de passe de liaison est envoyé en texte clair ; à éviter sauf dans un laboratoire isolé.
  • --insecure-tls — conserver LDAPS (transport chiffré) mais ignorer la vérification du certificat, pour les certificats auto-signés/de laboratoire qui ne sont pas dans votre magasin de confiance. Préférez cette option à --disable-ldaps lorsque le seul problème est le certificat du contrôleur de domaine.

--timeout-secs (par défaut 30) limite à la fois la connexion initiale et chaque opération LDAP suivante, de sorte qu'un contrôleur de domaine inaccessible ou une --dc-ip erronée échoue dans cette fenêtre plutôt que de bloquer.

Exécutez ghosthound --help pour la liste complète des options.

Structure de l'espace de travail

GhostHound est construit comme un espace de travail privilégiant la bibliothèque — voir docs/adr/0001-language-rust-library-first.md pour la justification :

  • bloodhound-opengraph : constructeur JSON OpenGraph pour BloodHound (l'équivalent Rust du bhopengraph Python).
  • ad-secdesc : analyseur syntaxique permissif, écrit à partir de zéro, pour ntSecurityDescriptor/DACL/ACE (voir docs/adr/0003-security-descriptor-parsing-strategy.md pour comprendre pourquoi il ne s'agit pas d'une dépendance au seul équivalent Rust existant, qui est sous licence GPL-3.0).
  • ad-secdesc-oracle : banc d'essai différentiel interne non publié comparant ad-secdesc à cette crate GPL-3.0 en tant qu'oracle en boîte noire — isolé de la construction par défaut et du graphe de dépendances de toutes les crates publiées.
  • ad-tombstone : énumération LDAP SHOW_DELETED, modélisation de l'état de la Corbeille AD et analyse des droits de réanimation.
  • ghosthound : l'interface en ligne de commande qui orchestre le tout.

Importation dans BloodHound

  1. Dans la page de gestion OpenGraph de BloodHound CE, importez une fois crates/ad-tombstone/model.json pour enregistrer les types de nœuds GhostHound_TombstoneUser/GhostHound_TombstoneComputer/GhostHound_TombstoneGroup et les types de relations GhostHound_CanReanimate/GhostHound_WasMemberOf/GhostHound_SameAs (tous enregistrés comme traversables, afin qu'ils participent aux requêtes de chemin le plus court).
  2. Importez le JSON produit par GhostHound (via l'interface utilisateur ou l'API d'ingestion) comme une charge utile de données OpenGraph normale.
  3. Exécutez crates/ad-tombstone/bridge_shadow_nodes.cypher directement contre Neo4j (la barre de recherche Cypher de BloodHound CE est en lecture seule et le rejettera) :
    root@kitploit:~
    docker exec -i <graph-db-container> cypher-shell -u neo4j -p <password> < crates/ad-tombstone/bridge_shadow_nodes.cypher
    
    Les arêtes de GhostHound vers les principaux AD existants (Administrateurs du domaine, etc.) atterrissent sur des nœuds fictifs plutôt que sur les vrais que BloodHound possède déjà — une limitation de l'ingestion OpenGraph, et non un bug de ces données ; voir . Ce script les relie afin que les chemins soient réellement traversables. Peut être réexécuté sans risque après chaque importation.

Une fois reliés, le chemin de réanimation apparaît comme un chemin traversable normal — un tombstone qui était membre des Administrateurs du domaine avant la suppression, accessible par tout principal disposant du droit Réanimer les tombstones, relié au vrai nœud Administrateurs du domaine :

Chemin de réanimation GhostHound issu d'un test en laboratoire personnel : plusieurs principaux disposant du droit GhostHound_CanReanimation pointent vers un utilisateur tombstone, qui a une arête GhostHound_WasMemberOf vers un nœud fictif, relié via GhostHound_SameAs au vrai groupe Administrateurs du domaine.

Posture de la chaîne d'approvisionnement

Ce projet accorde la priorité à une sécurité élevée dès le premier jour (docs/adr/0005-supply-chain-openssf-posture.md) :

  • cargo deny pour des interdictions strictes de copyleft/GPL et un audit des vulnérabilités.
  • Workflows OpenSSF Scorecard.
  • cargo fuzz pour la sécurité face aux paniques lors de l'analyse de descripteurs binaires bruts.
  • Aucun unsafe dans les bibliothèques fondamentales.

Justification de la conception

Le répertoire docs/adr/ enregistre les décisions derrière cette conception (choix du langage, périmètre d'authentification, contrainte de licence ad-secdesc, modèle de données de la Corbeille AD, posture de la chaîne d'approvisionnement), et docs/research/tombstone-viability-findings.md contient la recherche sous-jacente.

Télécharger l’outil
docs/adr/0006-opengraph-cross-source-node-identity.md
  • Importez les requêtes de démarrage dans crates/ad-tombstone/queries.json et, éventuellement, exécutez une fois crates/ad-tombstone/privilege_zones.cypher pour marquer les tombstones sous les unités d'organisation de niveau zéro comme de grande valeur — cela nécessite également cypher-shell plutôt que la barre de recherche, pour la même raison qu'à l'étape 3 (son SET est également une clause de mise à jour).