> Sécurité > Cybersécurité : Techniques de cartographie Active Directory avec BloodHound

Cybersécurité : Techniques de cartographie Active Directory avec BloodHound

Sécurité - Par Sylvain Cortes - Publié le 29 octobre 2019
email

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 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 :

Téléchargement de la version compilée de 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 gratuitement cette ressource

5 clés de supervision Multi Cloud

5 clés de supervision Multi Cloud

A l’heure du Software Defined Everything (SDx) la conception et l’exploitation de logiciels sont plus complexes que jamais, ce nouvel eBook décrit les éléments clés à prendre en compte lors de la transition vers les technologies, les plates-formes et les éléments logiciels modernes afin de tirer tout le potentiel des solutions Multi cloud d'entreprise.

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é.

 

Sécurité - Par Sylvain Cortes - Publié le 29 octobre 2019

A lire aussi sur le site

Revue Smart DSI

La Revue du Décideur IT