Search : Recherches sur un nœud
Dans ce chapitre, nous allons apprendre à manipuler les nœuds, ou nodes, dans BloodHound.
Sommaire
Nous avons à présent les données de notre Active Directory importées dans BloodHound, il est temps de se familiariser avec son interface web. Comme indiqué précédemment dans ce cours, l'onglet "Explore" est celui dans lequel nous allons passer la plus grande partie de notre temps :
Le premier élément auquel nous allons nous intéresser est le menu "Search", nous pouvons ici saisir le nom d'un node sur lequel nous souhaitons investiguer, par exemple :
Ici, la recherche "mma" permet d'afficher plusieurs nodes utilisateurs et un node groupe.
II. Lister les attributs et relations d'un node
En cliquant sur l'un des résultats, celui-ci apparait au centre de l'interface. Sélectionnez l'un des nodes actuellement affiché permet d'obtenir, à droite de l'interface, un grand nombre d'informations à son sujet :
Nous pouvons dérouler chaque section pour avoir des détails importants, par exemple, pour la section "Object Information" :
Nous avons ici un grand nombre d'attributs concernant le node sélectionné (ici, un utilisateur) : son SID, date de dernière authentification, dernier changement de mot de passe, de création, Admin Count, etc.
Autre élément intéressant pour un node utilisateur, la section "Member Of" :
Ici, on aperçoit tous les groupes dont l'utilisateur sélectionné est membre. Cela de façon directe (les groupes dans lesquels "MMARTIN" a été directement ajouté), et indirecte (groupes auxquels les groupes directs sont membres). Cette vue rappelle notamment l'exemple de l'obtention des droits "ADMINS DU DOMAINE" par transitivité (attention : ce terme est aussi utilisé dans les relations inter-domaine dans une forêt).
De la même manière, nous pouvons lister les droits d'administration locale de l'utilisateur ou les sessions ouvertes sur les systèmes du domaine au moment de la collecte des données. Également, les "Outbound Object Control" représentent les droits/actions possibles sur d'autres objets, et ce à nouveau de manière directe ou indirecte (via ses appartenances à des groupes par exemple). À l'inverse, les "Inbound Object Control" permettent de lister tous les nodes qui ont des droits particuliers ou actions sur le nôtre (celui que l'on a sélectionné).
Cette prise d'information et première recherche autour d'un node peuvent être effectuées sur tout type de node : Utilisateur, Groupe, GPO, Ordinateur, etc. Bien sûr, chaque node affichera des informations détaillées et sections de recherche différentes. Un node "Group" aura une section "Members" en plus de "Member Of" par exemple :
Si la disposition des relations ne vous plait pas, n'hésitez pas à la modifier. L'interface web BloodHound permet de facilement changer la disposition des nodes via un glisser/déposer, ou en utilisant des modèles à l'aide de la sélection suivante :
III. Les principaux nodes d'un Active Directory
En date d'écriture de ce cours, il existe 25 types de node dans BloodHound. Vous trouverez la liste exhaustive de ces nodes sur le site officiel : BloodHound - Data Analysis - Nodes. Voici les principaux nodes auxquels vous aurez affaire dans un Active Directory classique :
- Computer : node ordinateur
- Domain : node domaine, il peut en exister plusieurs (dans le cas d'une forêt !).
- GPO : node GPO, souvent modifiables par certains groupes ou utilisateurs.
- Group : node Groupe, le plus commun avec les utilisateurs.
- OU : node Unité Organisationnelle, qui peut contenir des groupes, ordinateurs et utilisateurs et peut-être la cible des GPO.
- User : aucun mystère, un node utilisateur. Généralement situé au début d'un chemin d'attaque, puisque l'attaquant partira du principe que cet utilisateur est compromis, ou qu'il s'agit de sa première cible.
Pour vous familiariser avec l'ensemble des nodes et des informations propres à chacun, le mieux est de pratiquer ! Avant de lire la suite du cours, n'hésitez pas à effectuer ce type de recherche sur de multiples nodes pour constater leurs différences.
Enfin, si vous faites un clic droit sur un node, vous verrez les mentions "Set as starting node" ou "Set as ending node", ce qui nous amène tout droit vers le prochain chapitre de ce cours.