
Analyse les snapshots AD Explorer en JSON ou NDJSON compatible BloodHound pour la reconnaissance Active Directory et la cartographie des chemins d'attaque.
ADExplorerSnapshot.py est un analyseur de snapshot AD Explorer. Il est conçu comme un ingestor pour BloodHound via BOFHound, et supporte également le dump complet des objets en NDJSON.
AD Explorer vous permet de vous connecter à un DC et de parcourir les données LDAP. Il peut également créer des snapshots du serveur auquel vous êtes actuellement connecté. Cet outil vous permet de convertir ces snapshots au format BOFHound ou en fichiers JSON compatibles avec BloodHound, ou de dumper tous les objets disponibles du snapshot en NDJSON pour un traitement plus facile.

En mode de sortie BOFHound, tous les attributs pour chaque objet sont analysés et sortis au format BOFHound (similaire à LDIF). Ce format peut ensuite être analysé avec BOFHound:
En mode de sortie Objects, tous les attributs pour chaque objet sont analysés et sortis au format NDJSON.
En mode de sortie BloodHound (déprécié en faveur de la conversion BOFHound plus complète):
Les snapshots AD Explorer contiennent uniquement les informations récupérables depuis le serveur LDAP. Cela signifie que des fonctionnalités comme la collecte des sessions et des administrateurs locaux ne sont pas disponibles car cet outil n'interagit pas avec les systèmes du réseau. Vous aurez seulement les données disponibles du LDAP/DC contre lequel vous avez exécuté le snapshot.
En mode BOFHound, toutes les données sont converties au format BOFHound, ce qui est l'approche de collecte la plus complète.
En mode BloodHound, l'ingestor traite toutes les données possibles à partir du snapshot (y compris les ACL), mais ne produit que les données JSON interprétables par BloodHound. La collecte GPO/UO est manquante.
La collection Approbations contient la vue telle que visible depuis le DC LDAP auquel vous êtes connecté.
ADExplorerSnapshot.py supporte Python 3.12+. Les dépendances sont gérées via pip.
Vous pouvez exécuter l'outil directement avec uvx (si manquant : pip install uvx).
uvx git+https://github.com/c3c/ADExplorerSnapshot
usage: ADExplorerSnapshot.py [-h] [-o OUTPUT] [-m {BOFHound,BloodHound,Objects}] snapshot
AD Explorer snapshot ingestor for BloodHound
positional arguments:
snapshot Path to the snapshot .dat file.
options:
-h, --help show this help message and exit
-o, --output OUTPUT Path to the *.json output folder. Folder will be created if it doesn't exist. Defaults to the current directory.
-m, --mode {BOFHound,BloodHound,Objects}
The output mode to use. Defaults to BOFHound output mode, which can then be used with BOFHound. Can also directly output to BloodHound JSON output files (with limitations). In Objects
mode all objects with all attributes are outputted to NDJSON.
Le mode de sortie BOFHound est le mode de sortie préféré. Vous pouvez ensuite utiliser l'outil BOFHound pour ingérer les données dans BloodHound.
Invocation typique:
uvx git+https://github.com/c3c/ADExplorerSnapshot -m BOFHound snapshot.dat
uvx bofhound -i ./dc.server.com_1234567890_bofhound.log -o output


Les modèles de certificats peuvent être importés au format BloodHound ou BloodHound-ly4k.
Si vous utilisez la version standard de BloodHound, vous devez importer uniquement le fichier JSON cert_bh (qui sont importés en tant que GPO).
Si vous utilisez le fork de ly4k, vous devez importer les fichiers cert_ly4k à la place. Certaines informations seront omises (par exemple pour ESC8, si Web Enrollment est activé) car elles ne peuvent pas être collectées avec AD Explorer.
Créer des snapshots dans AD Explorer est plus intensif en réseau que les ingestors traditionnels de BloodHound car il tente de récupérer tous les objets possibles depuis le LDAP.
ADExplorerSnapshot.py créera des caches d'informations pour des recherches plus rapides lors du traitement des données. En particulier lors du traitement de grands snapshots (par exemple 4 Go+), vous aurez besoin de suffisamment de RAM disponible. Dans mes tests, environ la moitié de la taille du fichier snapshot était nécessaire en RAM.
La bibliothèque a été testée avec plusieurs ensembles de données, veuillez créer un rapport de problème si vous rencontrez des difficultés.
L'analyseur de snapshot AD Explorer est implémenté en tant que module séparé, qui pourrait également être utilisé individuellement.
Le format dans lequel les snapshots sont stockés par AD Explorer est propriétaire et a conduit à un voyage amusant de rétro-ingénierie. Un modèle d'éditeur 010 est inclus dans ce dépôt, que j'ai utilisé pour cartographier itérativement le contenu du snapshot en structures.
Pour le mode de sortie BloodHound, cette bibliothèque supporte le format de sortie BloodHound v6. Les versions plus anciennes étaient supportées dans des commits antérieurs si vous en avez encore besoin.
Pour l'ancien format de sortie v3, vous pouvez utiliser le code dans la branche v3-format.
Sur une note liée à l'OPSEC, AD Explorer est un outil Microsoft légitime. Lors de la réalisation d'un snapshot, seules des requêtes limitées sont faites au serveur LDAP (objectGuid=*). Cependant, l'ensemble des résultats est énorme car tous les objets et leurs attributs associés sont récupérés. Cela donne une sortie plutôt volumineuse.
La détection de cet outil est possible de plusieurs manières, pour lesquelles je me réfère à l'excellent article de blog de FalconForce : FalconFriday — Detecting Active Directory Data Collection — 0xFF21.
Ce code est sous licence MIT et utilise du code également sous licence MIT.
ADExplorerSnapshot.py s'appuie sur les projets suivants :
Crédits :
Merci à Deloitte d'avoir fourni l'environnement dans lequel cet outil a été développé.