20/09/2024

Les options de collecte SharpHound

Dans ce chapitre, nous allons étudier rapidement les différentes options de collecte offertes par SharpHound. Nous verrons également que des options de sécurité sont présentes pour la collecte comme pour l’archive qui est générée.

I. Gérer les flags de collecte SharpHound

Dans les deux chapitres précédents, nous avons utilisé SharpHound sans option de collecte spécifique. Il faut savoir que par défaut, celui-ci va uniquement collecter certains nodes et edges.

Les flags peuvent être utilisés individuellement et spécifiés à l'option "-c /--collectionmethods", ils permettent d'ordonner la collecte de certains types de nodes et edges en fonction de ce qui nous intéresse pour notre analyse. Je vous propose cet excellent résumé visuel créé par SadProcessor pour comprendre quel flag collecte quels nodes et edges (cliquez sur l'image pour zoomer) :

Schéma des options de collecte SharpHound par BadProcessor.
Schéma des options de collecte SharpHound par BadProcessor.

Sur les très gros annuaires, il peut aussi être choisi de ne collecter qu'une partie des nodes/edges pour des soucis de performance. La liste complète et à jour des flags de collecte peut être retrouvée ici : All SharpHound Community Edition Flags, Explained

Pour extraire le plus d'informations possible, et ainsi avoir plus de chance de découvrir des chemins d'attaque sur votre Active Directory, il vaut mieux utiliser l'option "-c All", qui va activer tous les flags de collecte, à l'exception de "GPOLocalGroup" :

.\SharpHound.exe -c All

Lorsque nous passerons à l'analyse des données collectées, nous verrons qu'il est de toute façon possible d'exclure de notre analyse ou de nos requêtes des nodes ou edges en fonction de ce qui nous intéresse. Autant tout collecter pour filtrer ensuite plutôt que de manquer une information au beau milieu de notre analyse et de devoir refaire la collecte ! À titre d'exemple, voici la différence de contenu dans l'archive ZIP produite par SharpHound entre la méthode de collection "All" (gauche) et "Group" (droite) :

Différences des éléments collectés entre les flags de collecte "All" et "Group".
Différences des éléments collectés entre les flags de collecte "All" et "Group".

On comprend bien ici que plus l'on récupère de nodes et d'edges, plus nous serons susceptibles d'identifier de chemins d'attaque.

II. Sécuriser la collecte des données

Il est également possible de demander à Sharphound de produire une archive ZIP qui sera chiffrée par un mot de passe une passphrase robuste, ce qui est toujours une meilleure option lorsque l'on commence à exfiltrer les données de l'Active Directory (pensez à ne pas utiliser le même mot de passe que celui proposé dans cette commande ) :

.\SharpHound.exe -c All --zippassword c0llecte-2-mon_AD2024_02

Ainsi, vous pourrez être un peu plus confiant lors du transfert de votre archive (pas trop non plus, un mot de passe se casse plus facilement lorsque l'on dispose du fichier en local).

Enfin, il faut savoir que SharpHound utilise par défaut le protocole LDAP (TCP/389) qui fait transiter les données de l'Active Directory en clair sur le réseau, si c'est un risque que vous n'êtes pas disposés à accepter, vous pouvez utiliser l'option "--secureldap" qui forcera l'utilisation du LDAPS (TCP/636). :

.\SharpHound.exe -c All --secureldap --zippassword c0llecte-2-mon_AD2024_02

Attention toutefois, l'outil est un peu plus capricieux avec cette dernière option. Une dernière possibilité est d'utiliser SharpHound directement depuis le contrôleur de domaine afin de réduire le transit d'informations sur le réseau.

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.