Dans Active Directory, une compromission majeure ne vient pas toujours d’une faille spectaculaire. Elle naît souvent d’une succession de permissions ordinaires : un utilisateur contrôle un groupe, ce groupe administre un serveur et une session privilégiée reste ouverte sur cette machine. Pris séparément, chaque élément semble anodin. Reliés entre eux, ils peuvent former un chemin jusqu’au contrôle du domaine.

BloodHound Community Edition rend ces relations visibles. L’outil représente les comptes, groupes, ordinateurs, sessions et droits sous forme de graphe afin d’identifier les chemins d’attaque Active Directory difficiles à repérer dans les consoles Microsoft classiques. Voici comment l’installer, collecter les données avec SharpHound et exploiter les résultats dans un audit autorisé.

Cadre légal : utilisez BloodHound uniquement sur un environnement que vous possédez ou pour lequel vous disposez d’une autorisation explicite. La collecte expose des informations sensibles sur l’annuaire et doit être protégée comme un livrable d’audit.

Qu’est-ce que BloodHound Community Edition ?

BloodHound est un outil d’analyse des relations de confiance et de privilèges. Sa Community Edition, gratuite et open source, sert principalement aux pentesters, aux équipes red team et aux défenseurs qui souhaitent tester la résistance d’Active Directory ou d’Entra ID.

Son principe repose sur la théorie des graphes. Un nœud représente un objet — utilisateur, groupe, ordinateur ou domaine — tandis qu’une relation décrit une capacité : appartenance à un groupe, administration locale, session active ou droit de modification sur un objet. BloodHound calcule ensuite les enchaînements possibles entre un point de départ peu privilégié et une cible critique.

Trois composants sont à distinguer :

Composant Rôle
BloodHound CE Stocke, analyse et affiche le graphe
SharpHound CE Collecte les données d’un environnement Active Directory
AzureHound CE Collecte les données d’Entra ID et d’Azure

BloodHound ne remplace donc pas une méthodologie de pentest structurée. Il apporte une vue relationnelle qui complète l’inventaire, l’énumération et la validation manuelle des risques.

Comment BloodHound cartographie les chemins d’attaque Active Directory

Dans un annuaire ancien, les droits s’accumulent. Des groupes sont imbriqués, des délégations restent actives après un changement d’équipe et certains comptes conservent des permissions devenues inutiles. Une revue objet par objet détecte mal ces dépendances.

BloodHound cherche précisément ces chaînes. Imaginons qu’un compte de support puisse modifier l’appartenance d’un groupe. Ce groupe dispose de droits administrateur sur un serveur où un administrateur du domaine ouvre régulièrement une session. Le compte initial n’est pas privilégié, mais il se trouve à quelques relations d’un actif Tier Zero.

Le graphe permet alors de répondre à des questions concrètes :

  • quels utilisateurs disposent d’un chemin vers les administrateurs du domaine ;
  • quelles machines concentrent le plus de relations à risque ;
  • quels groupes ou ACL créent des escalades de privilèges indirectes ;
  • où des sessions privilégiées augmentent le risque de mouvement latéral ;
  • quelle relation supprimer pour casser plusieurs chemins à la fois.

Dans un réseau segmenté, la collecte peut nécessiter un accès contrôlé à un sous-réseau interne. L’article consacré au pivoting réseau avec sshuttle explique ce contexte, toujours dans le périmètre défini par l’autorisation de test.

Installer BloodHound CE avec Docker

La méthode la plus simple repose sur BloodHound CLI, un utilitaire qui télécharge les images nécessaires et génère la configuration Docker Compose. Selon le guide d’installation officiel de BloodHound CE, la configuration minimale recommandée comprend 8 Go de mémoire vive, 4 cœurs processeur et 10 Go d’espace disque. Les grands annuaires demandent davantage de ressources.

Après avoir installé Docker Desktop et téléchargé la version de BloodHound CLI adaptée au système, lancez :

# Linux ou macOS
./bloodhound-cli install

# Windows PowerShell
.\bloodhound-cli install

À la fin de l’installation, le terminal affiche un mot de passe aléatoire pour le compte admin. Conservez-le, puis ouvrez http://localhost:8080/ui/login. L’installation par défaut écoute uniquement sur l’interface locale, ce qui limite l’exposition accidentelle de l’application.

Installez de préférence BloodHound sur une machine dédiée et chiffrée. Ne publiez jamais son interface directement sur Internet. Le graphe révèle les comptes critiques, les relations de confiance et les chemins susceptibles d’intéresser un attaquant.

Collecter les données Active Directory avec SharpHound

SharpHound CE est le collecteur officiel pour Active Directory. Il s’exécute depuis un poste Windows joint au domaine avec un compte autorisé à réaliser l’audit. Sans option particulière, la commande suivante lance la collecte par défaut :

.\SharpHound.exe

SharpHound interroge notamment les appartenances aux groupes, les relations d’approbation entre domaines, les droits sur les objets, les liens de stratégies de groupe, les administrateurs locaux et certaines sessions actives. À la fin, il rassemble les fichiers JSON dans une archive ZIP. La documentation officielle de SharpHound CE détaille les méthodes et options disponibles.

Dans BloodHound, ouvrez Administration, puis Data Collection et File Ingest pour importer cette archive. Patientez jusqu’à la fin de l’analyse avant d’interroger le graphe. Sur une infrastructure importante, l’ingestion et le calcul initial peuvent prendre plusieurs minutes.

Les antivirus et EDR peuvent signaler SharpHound, car le même collecteur est utilisé lors de tests offensifs. Dans un audit défensif, prévenez le SOC et créez, si nécessaire, une exception temporaire strictement limitée au binaire et à la machine de collecte. Évitez les exclusions globales qui ouvriraient inutilement la surface d’attaque.

Lire et prioriser les résultats dans BloodHound

Commencez par l’onglet Explore et les requêtes préenregistrées. Cherchez d’abord les chemins vers les groupes Tier Zero, notamment les administrateurs du domaine, puis examinez le point de départ, chaque relation intermédiaire et la cible. La fonction Pathfinding permet aussi de calculer le chemin entre deux objets précis.

Un chemin affiché n’est pas automatiquement exploitable. Une session a pu expirer, une machine peut être hors ligne ou une mesure compensatoire peut bloquer l’action. Il faut donc valider le contexte sans sortir du périmètre autorisé. Des outils d’énumération comme ceux présentés dans la cheatsheet CrackMapExec pour Active Directory peuvent compléter cette vérification.

Pour prioriser, ne regardez pas seulement la longueur du chemin. Évaluez aussi :

  1. la criticité de la cible atteignable ;
  2. le nombre d’utilisateurs capables d’emprunter le chemin ;
  3. la permanence de la relation concernée ;
  4. la facilité de correction ;
  5. le nombre de chemins supprimés par une seule mesure.

Une ACL trop large sur un groupe critique peut, par exemple, mériter une correction immédiate si sa suppression élimine des dizaines de chemins. À l’inverse, une relation théorique liée à un poste isolé et déjà destiné au retrait sera moins urgente.

Remédiation d’un chemin d’attaque Active Directory identifié avec BloodHound

Transformer le graphe en plan de remédiation

L’objectif final n’est pas d’obtenir un graphe impressionnant, mais de réduire les possibilités d’escalade. Pour chaque chemin confirmé, identifiez la relation la plus sûre à supprimer : appartenance inutile à un groupe, droit GenericAll ou WriteDacl excessif, administration locale trop large, délégation obsolète ou session privilégiée sur un poste peu fiable.

Appliquez ensuite quelques principes constants : séparer les comptes bureautiques et administratifs, limiter les connexions Tier Zero aux postes dédiés, revoir les groupes imbriqués, supprimer les ACL historiques et utiliser des comptes de service managés lorsque cela est possible. Les comptes de service vulnérables doivent aussi être rapprochés du risque de Kerberoasting dans Active Directory.

Après correction, relancez SharpHound et réimportez les données. Cette seconde collecte vérifie que le chemin a réellement disparu et évite de considérer une modification théorique comme une remédiation effective. Conservez enfin un rapport synthétique : chemin initial, niveau de risque, preuve, correction appliquée et résultat du nouveau contrôle.

BloodHound Community Edition devient ainsi un véritable outil d’amélioration continue. Utilisé régulièrement, il aide à détecter les dérives de privilèges avant qu’elles ne transforment un compte banal en porte d’entrée vers les actifs les plus sensibles du domaine.