L’objectif de cet article est de vous donner les pistes nécessaires afin que vous puissiez comprendre, évaluer et enfin utiliser le fantastique outil qu’est BloodHound. BloodHound est un outil OpenSource et gratuit, régulièrement utilisé lors des attaques sur Active Directory.
Cybersécurité : Techniques de cartographie Active Directory avec BloodHound
L’objectif de BloodHound n’est pas la réalisation de l’attaque elle-même mais de fournir à l’attaquant ou à la RedTeam l’ensemble des informations nécessaires sur l’environnement Active Directory visé, et ce de façon extrêmement détaillée.
Les différentes étapes d’une attaque sur Active Directory
Il existe plusieurs modèles pour décrire les séquences d’attaque, nous utiliserons ici une méthode parmi tant d’autres afin de décrire l’enchainement des étapes pour réaliser une attaque complète sur un environnement Active Directory :
Les étapes classiques d’une attaque visant Active Directory
BloodHound : Cartographie efficace
BloodHound est un outil de cartographie, il va permettre à l’attaquant de cibler de manière diablement efficace les cibles internes à privilégier et les chemins les plus simples à exploiter pour arriver au Graal que représente le compte Administrateur du domaine.
Cette étape est tout à fait primordiale pour un attaquant, car elle lui permettra de sélectionner les ressources ou objets à compromettre pour rapidement arriver à ses fins. Dans un Active Directory de plusieurs milliers d’objets, il est nécessaire de pouvoir aller vite en visant les objets principaux qui possèdent des « faiblesses ». Ces faiblesses peuvent être d’ordre structurel ou comportemental, mais l’idée est d’aller directement au but en ayant au préalable parfaitement cartographié l’environnement, ceci permettant de cibler l’attaque pour la rendre efficace.
Le mot anglais ‘BloodHound’ se traduit en français par ‘Limier’. Le limier est une race de chien possédant un excellent nez, il est selon les spécialistes le meilleur chien pour suivre une piste, quelle que soit la distance – aux Etats-Unis, les Limiers sont utilisés par la police pour retrouver des personnes disparues, dans l’environnement IT, notre limier-BloodHound nous servira à pister le meilleur chemin vers la compromission Active Directory !
Téléchargement et installation de BloodHound
Téléchargement de BloodHound
Le projet BloodHound est disponible sur GitHub à cette adresse : https://github.com/BloodHoundAD/BloodHound – mais vous devez en fait télécharger deux éléments :
-
La version compilée pour votre environnement sur https://github.com/BloodHoundAD/BloodHound/releases – par exemple pour Windows, vous devez télécharger le fichier BloodHound-win32-x64.zip:
Téléchargement de la version compilée de BloodHound
-
La version non compilée en clônant le projet sur GitHub depuis l’adresse https://github.com/BloodHoundAD/BloodHound :
Téléchargement de la version non compilée de BloodHound
Installation et dépendances de BloodHound
Afin de pouvoir installer et utiliser BloodHound, vous devez avoir au préalable installé trois composants :
- Les packages Java pour votre environnement
- .NET Framework 3.5
- La version communautaire du serveur Neo4j
Pour ceux qui ne connaissent pas Neo4j, il s’agit d’une solution permettant de manipuler des données extrêmement complexes sous forme de graphe, permettant alors une exploration des données collectées et leur exploitation simplifiée. Neo4j est utilisée dans de nombreux projets communautaires ou applications professionnelles et possède une communauté croissante d’utilisateurs.
Vous devrez être Administrateur local de la machine sur laquelle vous installerez BloodHound, mais vous n’avez pas besoin d’être Administrateur du domaine pour utiliser l’outil ! C’est d’ailleurs logique, puisque l’outil vous servira justement à explorer et sélectionner les meilleures pistes afin de devenir Administrateur du domaine ou de la forêt ! Il suffira d’utiliser un compte utilisateur classique, permettant la lecture des objets Active Directory via le protocole LDAP, ce qui est un droit par défaut de tous les utilisateurs créés dans Active Directory.
Rappelez-vous notre schéma d’introduction sur les étapes d’une attaque, BloodHound s’utilise entre ‘l’Escalade de privilèges locale’ et le ‘Mouvement latéral’ et cible l’action de Cartographie.
Première étape : Collecte des données Active Directory et injection dans BloodHound
BloodHound possède dans les dernières versions un outil dédié à la collecte des données Active Directory, cet outil est localisé dans le répertoire Ingestors de BloodHound et s’appelle SharpHound. Il suffit d’ouvrir une fenêtre de commande, de se rendre dans le répertoire Ingestors et de lancer la commande suivante : SharpHound.exe –CollectionMethod All
A la fin de la commande, un fichier ZIP est automatiquement généré dans le même répertoire, ce fichier compressé contient plusieurs fichiers JSON qui contiennent les données collectées. Ce fichier ZIP sera ensuite injecté dans la base de données Neo4j via l’interface de BloodHound.
Il faut maintenant se connecter à l’interface de BloodHound en exécutant BloodHound.exe puis s’authentifier :
Interface d’authentification de BloodHound
Vous arriverez alors à une page d’accueil par défaut, qui ne contient aucune données. Il faut alors sélectionner le bouton Upload Data et choisir le fichier ZIP à importer. A la fin de l’import vous devez obtenir un premier graph sur l’interface :
Votre premier graph
Nous y sommes, tout est prêt pour commencer l’exploration des données Active Directory.
Téléchargez cette ressource
Microsoft 365 : 5 erreurs de sécurité
A l’heure où les données des solutions Microsoft 365 sont devenues indispensables au bon fonctionnement de l’entreprise, êtes-vous certain de pouvoir compter sur votre plan de sécurité des données et de sauvegarde des identités ? Découvrez le Top 5 des erreurs à ne pas commettre et les meilleures pratiques recommandées par les Experts DIB France.
Deuxième étape : Utiliser BloodHound pour explorer les données Active Directory et identifier les cibles
BloodHound s’appuie donc sur la notion de graph, vous permettant une navigation facilitée dans les données complexes collectées. La notion de graph peut être résumée en trois éléments :
- Les Nodes: Les Nodes sont globalement des objets – Dans le cadre d’Active Directory, cela peut donc être un utilisateur, une machine, un groupe, un domaine, etc.
- Les Edges: Les Edges sont les relations entre les objets, ils sont définis par deux éléments principaux : (1) le sens de la relation (2) la nature de la relation – Dans le cadre d’Active Directory, cela peut définir l’appartenance à un groupe, le fait d’être administrateur d’un objet, etc.
- Les Paths: Le Path est un en ensemble de Nodes connectés par des Edges – Un Path est un chemin logique en partant d’un objet pour arriver à un autre, dans le cadre d’Active Directory cela permet de définir un chemin d’attaque.
Voici un résumé de ces trois éléments en prenant un exemple simpliste basé sur les goûts culinaire et la relation entre différentes personnes :
Exemple d’objets, de relations et de chemins basés sur la notion de graph
BloodHound possède une interface de recherche très bien pensée, comportant trois boutons principaux : Database Info, Node Info et Queries.
Interface de recherche et moteur de requêtes
Le bouton Database Info vous permet de visualiser les statistiques des données injectées depuis Active Directory.
Le bouton Node Info s’active automatiquement dès lors que vous sélectionnez un nœud, c’est à dire globalement un objet sur votre graph, par exemple ici une partie des caractéristiques d’un nœud utilisateur se nommant Yoda :
Exemple d’informations sur un nœud utilisateur
La plupart des informations sont cliquables, c’est-à-dire que l’on peut explorer petit à petit les objets en relation les uns avec les autres, il suffira ici de cliquer sur la valeur indiquée pour First Degree Group memberships afin d’obtenir la liste des groupes d’appartenance et ainsi de suite.
Le bouton Queries présente des requêtes toutes prêtes à l’utilisation et permet de lancer les premières recherches simples mais aussi de produire ses propres requêtes personnalisées :
Le bouton Queries donne accès aux requêtes préformatées
Une des meilleures requêtes préformatées pour commencer l’exploration et viser de devenir Administrateur de domaine est la requête Shortest Paths to High Value Targets, voici un exemple de résultat :
Exemple de graph résultant de la requête Shortest Paths to High Value Targets
Le graph vous présentera ainsi les relations entre les différents objets du domaine, avec notamment les informations suivantes :
- Les comptes à pouvoir et leurs groupes
- Sur quelles machines les comptes à pouvoir ont ouvert des sessions
- Quel groupe est capable d’administrer quel objet
- Les liens des GPOs importantes
Grace aux graphs, il est possible de définir un chemin d’attaque, par exemple, considérons que l’attaquant a réussi à compromettre le compte DARK, l’idée est de demander aux graphs, en partant de DARK, quel est le meilleur moyen (c’est-à-dire le meilleur chemin) pour devenir Administrateur du domaine :
Exemple de requête ciblée
Le résultat est parlant :
Exemple de chemin d’attaque
Nous savons maintenant grâce aux graphs que :
- DARK a les droits d’administration sur la machine WIN2016US02
- Le compte ROOT a déjà ouvert une session sur la machine WIN2016US02
- ROOT est membre du groupe Domain Admins
Il suffira donc maintenant d’utiliser un outil tel que mimikatz sur ce serveur pour espérer jouer une attaque de type pass-the-hash en visant le compte ROOT.
Pour aller plus loin
Maintenant que vous connaissez les bases de BloodHound, vous voudrez peut-être aller plus loin. Je vous recommande de parcourir les forums de discussions liées à BloodHound et de vous documenter sur la notion de graphs.
En effet, BloodHound et les graphs deviennent des outils classiques pour le Pentest Active Directory et sont importants à maitriser si vous travaillez dans le domaine de la cybersécurité.
Dossiers Sécurité et Gestion Active Directory sur iTPro.fr :
- Les fondements de la sécurité Active Directory · iTPro.fr
- Les 4 piliers de la sécurité Active Directory · iTPro.fr
- Cybersécurité Active Directory Attaques de nouvelle génération · iTPro.fr
- ChatGPT : bénédiction ou malédiction pour la sécurité d’AD ? (itpro.fr)
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Le LLMjacking : quand les cyberattaques utilisent illicitement des comptes LLM
- Les identités des développeurs doivent être prises en compte !
- Architecture de données ouverte : un levier essentiel pour maximiser les bénéfices de l’IA générative
- Les DRH repensent leurs priorités en 4 étapes
- Patch Tuesday Septembre 2024