AD Outil · Active Directory

BloodHound

Cartographier les relations Active Directory et trouver le chemin le plus court vers Domain Admin.

Intermédiaire / 1 min de lecture / maj 07 nov 2026 / 5 tags
raw domaine signaler
Index des sheets

#Collecter

bash
# Linux, sans toucher aux DC (LDAP + SMB)
bloodhound-python -u user -p 'Password' -d domain.local \
  -ns 10.10.10.10 -c All --zip

# Avec hash
bloodhound-python -u user --hashes :NTHASH -d domain.local -ns 10.10.10.10 -c All

# Windows : SharpHound
SharpHound.exe -c All --zipfilename bh.zip
SharpHound.exe -c All,GPOLocalGroup --LdapUsername user --LdapPassword Password
Méthode Bruit Remarque
-c All Élevé Sessions, ACL, trusts, GPO
-c DCOnly Faible LDAP uniquement, pas de sessions
-c Session Moyen Sessions locales
-c ACL Faible Relations ACL

#Importer

text
1. Démarrer neo4j : neo4j console
2. Lancer BloodHound et se connecter (bolt://localhost:7687)
3. Upload Data → sélectionner le zip ou les JSON
4. Attendre la fin de l'ingestion

#Requêtes intégrées

  • Shortest Paths to Domain Admins — le chemin le plus court.
  • Kerberoastable Users — comptes avec SPN.
  • AS-REP Roastable Users — comptes sans pré-auth.
  • Unconstrained Delegation — machines et comptes dangereux.
  • Find Principals with DCSync Rights — droits de réplication.
  • Shortest Path from Owned Principals — depuis les comptes compromis.

#Cypher utiles

text
// Utilisateurs Kerberoastables
MATCH (u:User {hasspn:true})
RETURN u.name, u.displayname, u.serviceprincipalnames

// Admins locaux d'une machine
MATCH p=(u:User)-[:AdminTo]->(c:Computer {name:"DC01.DOMAIN.LOCAL"})
RETURN p

// Chemins depuis un compte possédé
MATCH p=shortestPath((u:User {owned:true})-[*1..]->(g:Group {name:"DOMAIN ADMINS@DOMAIN.LOCAL"}))
RETURN p

// ACL exploitables
MATCH p=(u:User)-[r:GenericAll|WriteDacl|ForceChangePassword|AddMember]->(t)
RETURN p, type(r)

#Opsec

  • Session interroge les machines via SMB : très visible et peut déclencher les alertes.
  • DCOnly suffit pour les ACL et Kerberos, sans toucher aux postes.
  • Les requêtes LDAP massives sont journalisées (Event 4662 côté DC).
  • Évite de collecter depuis un compte à privilèges si un compte utilisateur suffit.
INDEX // 42 FICHES // 12 DOMAINES LOCAL SEARCH
↑↓ naviguer ↵ ouvrir esc fermer sheet.sec / find
Raccourcis clavier
Recherche globale /ou⌘K
Naviguer dans les résultats ↑↓
Ouvrir le résultat actif ↵
Fermer une fenêtre esc
Accueil gh
Tous les sheets gs
Fiche aléatoire gr
Cette fenêtre ?