|
"BloodHound ne révèle pas des vulnérabilités, il révèle la réalité de votre Active Directory. Les chemins d'attaque qu'il cartographie existent déjà. Vous les ignoriez simplement." |
Qu'est-ce que BloodHound et pourquoi est-il incontournable en Pentest Active Directory ?
BloodHound est un outil open-source de cartographie et d'analyse des environnements Active Directory (et désormais Entra ID / Azure AD). Il visualise les relations entre objets AD — utilisateurs, groupes, ordinateurs, GPO, ACL — sous forme de graphe, permettant d'identifier rapidement les chemins d'attaque exploitables.
Pourquoi BloodHound révolutionne l'audit Active Directory
Active Directory est un labyrinthe. Un utilisateur fait partie de 5 groupes, qui eux-mêmes appartiennent à 15 autres groupes, dont l'un a le droit WriteOwner sur une GPO appliquée à une OU contenant des serveurs critiques. Cette complexité rend impossible la détection manuelle des faiblesses.
C'est précisément le problème que résout BloodHound. Selon une étude Red Canary 2024, BloodHound figure dans le top 10 des outils les plus utilisés par les attaquants réels — non pas pour exploiter des vulnérabilités techniques, mais pour exploiter la complexité organisationnelle de votre AD.
Les avantages décisifs de BloodHound :
- Visualisation en graphe : comprendre instantanément des relations qui prendraient des jours à cartographier manuellement
- Théorie des graphes : calcul automatique du chemin le plus court vers Domain Admin depuis n'importe quel compte
- Requêtes pré-construites : 30+ requêtes offensives prêtes à l'emploi (shortest path to DA, Kerberoastable users, etc.)
- Dual-use tool : utilisable par les attaquants ET par les défenseurs pour auditer leur exposition
- Collecte passive : SharpHound fonctionne avec des privilèges d'utilisateur standard, sans élévation
BloodHound est systématiquement déployé lors de la phase de reconnaissance de nos audits Active Directory. Il nous permet d'identifier en quelques heures ce qu'un attaquant mettrait des semaines à découvrir sans lui.
Architecture technique de BloodHound : comment ça fonctionne vraiment
Comprendre l'architecture de BloodHound est essentiel pour l'utiliser efficacement. L'outil repose sur trois composants interdépendants.
1. SharpHound : Le collecteur de données AD
SharpHound est l'ingestor (collecteur) de BloodHound. C'est un binaire C# qui utilise les API Windows natives et les requêtes LDAP pour énumérer Active Directory. Il existe en trois versions :
- exe : binaire compilé, exécution directe
- ps1 : version PowerShell pour l'exécution en mémoire (evasion AV)
- AzureHound : collecteur spécialisé pour Entra ID / Azure AD (depuis BloodHound 4.0)
SharpHound collecte trois types de données critiques :
- Relations de groupes : appartenance directe et transitive, nested groups
- Sessions actives : utilisateurs connectés sur chaque machine (via NetSessionEnum)
- Permissions AD : ACL/ACE sur les objets (GenericAll, WriteDacl, ForceChangePassword, etc.)
Point OPSEC : SharpHound génère du trafic SMB visible (ports 137, 445) et des requêtes LDAP massives. Les SOC bien configurés détecteront cette activité. L'option --Stealth réduit le bruit mais augmente le temps de collecte.
2. Neo4j : La base de données orientée graphe
Neo4j est une base de données NoSQL spécialisée dans les graphes. Chaque objet AD devient un nœud (node), chaque relation devient une arête (edge). Cette structure permet des requêtes complexes via le langage Cypher.
Exemple de requête Cypher pour trouver tous les chemins vers Domain Admins :
|
MATCH (n),(target:Group {name:'DOMAIN ADMINS@DOMAIN.LOCAL'}), p=shortestPath((n)-[*1..]->(target)) RETURN p |
3. BloodHound GUI : L'interface de visualisation
L'interface graphique BloodHound est une application Electron (JavaScript) qui interroge Neo4j et affiche les résultats sous forme de graphe interactif. Elle offre :
- 30+ requêtes pré-construites pour identifier des faiblesses communes
- Éditeur de requêtes Cypher personnalisées
- Export de données (CSV, JSON) pour reporting
- Filtres avancés pour isoler des objets spécifiques

Installation et configuration de BloodHound : guide pas-à-pas
Voici la procédure complète pour installer BloodHound sur Kali Linux (la distribution la plus utilisée par les pentesters).
Étape 1 — Installation de Neo4j
Neo4j est un prérequis obligatoire. BloodHound ne peut pas fonctionner sans sa base de données.
|
# Installation de Neo4j sudo apt update sudo apt install neo4j -y # Démarrage du service sudo neo4j start # Connexion web : http://localhost:7474 # Credentials par défaut : neo4j / neo4j # Changez le mot de passe lors de la première connexion |
Étape 2 — Installation de BloodHound
|
# Installation depuis les dépôts Kali sudo apt install bloodhound -y # OU téléchargement de la dernière version depuis GitHub wget https://github.com/BloodHoundAD/BloodHound/releases/latest/download/BloodHound-linux-x64.zip unzip BloodHound-linux-x64.zip cd BloodHound-linux-x64 ./BloodHound --no-sandbox |
Étape 3 — Téléchargement de SharpHound
SharpHound n'est pas inclus dans l'installation BloodHound. Téléchargez-le depuis le GitHub officiel :
|
# Téléchargement de SharpHound.exe (Windows) wget https://github.com/BloodHoundAD/SharpHound/releases/latest/download/SharpHound.exe # Pour la version PowerShell wget https://github.com/BloodHoundAD/SharpHound/releases/latest/download/SharpHound.ps1 |
Astuce PIIRATES : compilez toujours vos propres versions de SharpHound pour éviter les signatures AV. Le code source est disponible sur GitHub.
Méthodologie PIIRATES, utiliser BloodHound en pentest Active Directory
Voici la méthodologie opérationnelle que nous appliquons chez PIIRATES pour maximiser l'efficacité de BloodHound lors d'un audit Active Directory.
Phase 1 — compromission initiale et accès au domaine
BloodHound nécessite un accès authentifié à Active Directory. Vous devez d'abord compromettre au moins un compte utilisateur du domaine (via phishing, bruteforce, exploitation d'une vulnérabilité, etc.).
Output attendu : credentials d'un utilisateur standard du domaine (exemple : jdoe / P@ssw0rd123).
Phase 2 — collecte des données avec SharpHound
Une fois le compte compromis, déployez SharpHound pour collecter les données AD. Trois modes de collecte existent :
- --CollectionMethod All : collecte exhaustive (recommandé pour un pentest complet)
- --CollectionMethod Session,LocalAdmin : collecte ciblée sur les sessions actives et admins locaux
- --CollectionMethod DCOnly : collecte uniquement depuis les contrôleurs de domaine (OPSEC faible)
Exemple d'exécution depuis un poste Windows compromis :
|
# Collecte complète .\SharpHound.exe --CollectionMethod All --OutputDirectory C:\Temp\ # Collecte en mode Stealth (moins de bruit réseau) .\SharpHound.exe --CollectionMethod All --Stealth --OutputDirectory C:\Temp\ # Collecte avec exclusion des DC (éviter la détection) .\SharpHound.exe --CollectionMethod All --ExcludeDCs --OutputDirectory C:\Temp\ |
SharpHound génère un fichier ZIP contenant des fichiers JSON. Durée moyenne : 5 à 20 minutes selon la taille du domaine (500 à 50 000 objets).
Phase 3 — import des données dans BloodHound
Transférez le fichier ZIP sur votre machine attaquante (où BloodHound est installé) et importez-le :
- Lancez BloodHound et connectez-vous à Neo4j
- Cliquez sur l'icône 'Upload Data' (flèche vers le haut, menu de droite)
- Sélectionnez le fichier ZIP généré par SharpHound
- Attendez l'import (peut prendre plusieurs minutes pour les gros domaines)
Résultat : le Dashboard affiche les statistiques du domaine (nombre d'utilisateurs, groupes, ordinateurs, sessions, ACL).
Phase 4 — analyse des chemins d'attaque
C'est la phase d'analyse proprement dite. Utilisez les requêtes pré-construites pour identifier les faiblesses. Les 7 requêtes essentielles :
- Find Shortest Paths to Domain Admins — Identifie le chemin le plus court depuis n'importe quel utilisateur vers DA
- Find Principals with DCSync Rights — Utilisateurs pouvant dump les hash NTLM du domaine
- List All Kerberoastable Accounts — Comptes de service exploitables via Kerberoasting
- Find Computers where Domain Users are Local Admin — Cibles privilégiées pour le mouvement latéral
- Find AS-REP Roastable Users — Comptes sans pré-authentification Kerberos
- Shortest Paths to Unconstrained Delegation Systems — Machines dangereuses pour pass-the-ticket
- Find Shortest Paths to High Value Targets — Chemins vers serveurs critiques, admins, etc.
Méthodologie PIIRATES : nous combinons toujours l'analyse BloodHound avec des tests manuels de validation. BloodHound identifie les chemins, mais c'est l'exploitation humaine qui confirme leur criticité.
Phase 5 — exploitation des chemins identifiés
Une fois les chemins identifiés, exploitez-les manuellement. Exemples de techniques courantes :
- ForceChangePassword → Réinitialiser le mot de passe d'un utilisateur cible sans connaître l'actuel
- GenericAll sur un groupe → Ajouter votre utilisateur au groupe pour hériter de ses privilèges
- WriteDacl sur une GPO → Modifier la GPO pour exécuter du code au démarrage des machines
- Owns / GenericWrite → Prendre contrôle d'un objet AD et le manipuler
Toutes nos missions sont spécifiques
Parce que vos enjeux le sont !
Le pentest est avant tout une philosophie qui, couplé avec nos compétences techniques multiples peut s’adapter aux diffférentes cibles.

Indépendance totale

Expertise

Professionnalisme
Requêtes cypher avancées : aller au-delà des requêtes pré-construites
Les requêtes pré-construites de BloodHound couvrent 80% des cas d'usage. Pour les 20% restants, vous devez écrire vos propres requêtes Cypher. Voici 5 requêtes essentielles utilisées par PIIRATES.
1. Trouver tous les chemins depuis un utilisateur spécifique
|
MATCH p=shortestPath((u:User {name:'JDOE@DOMAIN.LOCAL'})-[*1..]->(g:Group {name:'DOMAIN ADMINS@DOMAIN.LOCAL'})) RETURN p |
2. Identifier les utilisateurs avec des sessions sur des serveurs critiques
|
MATCH (c:Computer)-[r:HasSession]->(u:User) WHERE c.name CONTAINS 'SRV' RETURN u.name, c.name |
3. Lister tous les comptes avec SPN (Kerberoasting)
|
MATCH (u:User) WHERE u.hasspn=true RETURN u.name, u.serviceprincipalnames |
4. Trouver les GPO modifiables par des utilisateurs non-admins
|
MATCH (g:GPO) MATCH (u:User)-[r]->(g) WHERE r.isacl=true AND NOT u.name CONTAINS 'ADMIN' RETURN u.name, g.name, r |
5. Identifier les machines avec Unconstrained Delegation
|
MATCH (c:Computer {unconstraineddelegation:true}) RETURN c.name |
Ressource PIIRATES : consultez le GitHub BloodHound Queries Collection pour des centaines de requêtes communautaires.
Détecter et se défendre contre BloodHound : Perspective Blue Team
BloodHound est un dual-use tool : il est aussi puissant pour les défenseurs que pour les attaquants. Voici comment l'utiliser en Blue Team et comment détecter son usage malveillant.
Indicateurs de compromission (IOC) de SharpHound
- Trafic SMB anormal : connexions massives sur les ports 137 et 445 depuis un seul hôte
- Requêtes LDAP volumétriques : énumération de tous les objets AD en quelques minutes
- Named Pipes multiples : connexions successives pour énumérer les sessions
- Fichiers suspects : présence de *_BloodHound.zip ou fichiers JSON avec timestamps récents
Détection via Logs Windows
Configurez la surveillance des événements suivants :
- Event ID 5156 : connexions réseau autorisées (filtrer SMB depuis un même hôte)
- Event ID 4662 : accès aux objets AD (LDAP queries massives)
- Event ID 4688 : création de processus (SharpHound.exe, powershell.exe avec arguments suspects)
Utiliser BloodHound en Blue Team
Exécutez régulièrement BloodHound sur votre propre AD pour identifier les faiblesses avant les attaquants :
- Lancez SharpHound tous les trimestres depuis un compte autorisé
- Analysez les nouveaux chemins d'attaque apparus depuis le dernier audit
- Corrigez les ACL dangereuses (GenericAll sur des groupes sensibles, WriteDacl sur GPO, etc.)
- Surveillez les groupes à hauts privilèges (nested memberships, privilege creep)
PIIRATES propose des formations administrateur systèmes et réseaux incluant l'utilisation défensive de BloodHound pour auditer votre Active Directory en continu.
BloodHound a révolutionné le pentest Active Directory. Ce qui prenait des semaines d'analyse manuelle prend désormais quelques heures. Mais cette puissance est accessible aussi bien aux pentesters qu'aux cybercriminels.
La réalité est simple : si vous n'utilisez pas BloodHound pour auditer votre Active Directory, vos attaquants l'utilisent déjà pour le cartographier. Les chemins d'attaque identifiés par BloodHound ne sont pas des hypothèses théoriques — ce sont des vulnérabilités exploitables en production, maintenant, par des attaquants disposant d'un simple compte utilisateur standard.
Nous utilisons BloodHound dans 100% de nos audits Active Directory. Pas pour trouver des bugs — pour révéler la complexité organisationnelle qui s'est accumulée au fil des années et qui est devenue votre plus grande vulnérabilité.
La question n'est plus 'devrais-je utiliser BloodHound ?' mais 'combien de temps avant qu'un attaquant ne l'utilise contre moi ?'
Nous contacter
Ce que nous ne faisons pas
(Liste non exhaustive)
Piratage de boite mail
Piratage comptes réseaux sociaux
Espionnage
Exfiltration de sms
Récupération de Cryptomonnaies
Prise en main à distance de véhicules
Suivi GPS de véhicule
Envoyez nous un ping
Oui, BloodHound est un outil open-source parfaitement légal. Il est conçu pour les tests d'intrusion autorisés et l'audit de sécurité. Cependant, son utilisation sur un Active Directory sans autorisation explicite est illégale. Chez PIIRATES, nous n'utilisons BloodHound que dans le cadre de missions contractualisées avec autorisation écrite du client.
Non. C'est précisément ce qui rend SharpHound si dangereux. Il fonctionne avec un compte utilisateur standard du domaine, sans élévation de privilèges. Il utilise les API Windows natives et les requêtes LDAP accessibles à tous les utilisateurs authentifiés. C'est pourquoi même un compte compromis par phishing peut permettre une cartographie complète de votre AD.
.
SharpHound génère un trafic réseau caractéristique : connexions SMB massives (ports 137/445), requêtes LDAP volumétriques, énumération de sessions NetSessionEnum. Un SOC bien configuré peut détecter ces patterns via l'analyse des logs Windows (Event ID 5156, 4662, 4688) et des flux réseau. La détection est possible mais nécessite une surveillance proactive — la plupart des organisations ne surveillent pas ces indicateurs.
Oui, depuis BloodHound 4.0. L'outil AzureHound collecte les données Entra ID (anciennement Azure AD) via les API Microsoft Graph et Azure REST. Il cartographie les permissions Azure RBAC, les groupes, les applications et les Service Principals. L'analyse est similaire à celle d'un Active Directory on-premise mais avec des chemins d'attaque spécifiques au cloud.
BloodHound : cartographiez votre Active Directory comme un attaquant. Guide PIIRATES : SharpHound, chemins d’attaque, exploitation, défense,…




