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