
Analiza instantáneas de AD Explorer en JSON o NDJSON compatible con BloodHound para el reconocimiento de Active Directory y mapeo de rutas de ataque.
ADExplorerSnapshot.py es un analizador de instantáneas de AD Explorer. Está diseñado como un ingestor para BloodHound a través de BOFHound, y también admite el volcado completo de objetos a NDJSON.
AD Explorer te permite conectarte a un DC y explorar datos LDAP. También puede crear instantáneas del servidor al que estás conectado actualmente. Esta herramienta te permite convertir esas instantáneas al formato BOFHound o a archivos JSON compatibles con BloodHound, o volcar todos los objetos disponibles en la instantánea a NDJSON para un procesamiento más sencillo.

En modo de salida BOFHound, se analizan todos los atributos de cada objeto y se exportan al formato BOFHound (similar a LDIF). Este formato puede luego procesarse con BOFHound:
En modo de salida Objects, se analizan todos los atributos de cada objeto y se exportan al formato NDJSON.
En modo de salida BloodHound (obsoleto en favor de la conversión más completa de BOFHound):
Las instantáneas de AD Explorer solo contienen información recuperable del servidor LDAP. Esto significa que funciones como la recolección de sesiones y administradores locales no están disponibles, ya que esta herramienta no interactúa con sistemas en la red. Solo tendrás los datos disponibles del LDAP/DC contra el que ejecutaste la instantánea.
En modo BOFHound, todos los datos se convierten al formato BOFHound, siendo el enfoque de recolección más completo.
En modo BloodHound, el ingestor procesa todos los datos que puede de la instantánea (incluyendo ACL), pero solo exporta los datos JSON que BloodHound puede interpretar. Falta la recolección de GPO/UO.
La colección de confianzas contiene la vista visible desde el DC LDAP al que estás conectado.
ADExplorerSnapshot.py requiere Python 3.12+. Las dependencias se gestionan mediante pip.
Puedes ejecutar la herramienta directamente con uvx (si no lo tienes: 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.
El modo de salida BOFHound es el modo preferido. Luego puedes usar la herramienta BOFHound para ingerir los datos en BloodHound.
Invocación típica:
uvx git+https://github.com/c3c/ADExplorerSnapshot -m BOFHound snapshot.dat
uvx bofhound -i ./dc.server.com_1234567890_bofhound.log -o output


Las plantillas de certificados pueden importarse en formato BloodHound o BloodHound-ly4k.
Si usas la versión normal de BloodHound, solo debes importar el archivo JSON cert_bh (que se importan como GPO).
Si usas el fork de ly4k, debes importar los archivos cert_ly4k en su lugar. Se omitirá algo de información (por ejemplo, para ESC8 si la Inscripción Web está habilitada) ya que no se puede recolectar con AD Explorer.
Hacer instantáneas en AD Explorer consume más red que los ingestores tradicionales de BloodHound, ya que intenta recuperar todos los objetos posibles del LDAP.
ADExplorerSnapshot.py crea cachés de información para búsquedas más rápidas durante el procesamiento. Especialmente al procesar instantáneas grandes (por ejemplo, más de 4 GB), también necesitarás suficiente RAM disponible. En mis pruebas, se requirió aproximadamente la mitad del tamaño del archivo de instantánea en RAM.
La biblioteca se probó con varios conjuntos de datos; por favor, crea un informe de incidencia si encuentras problemas.
El analizador de instantáneas de AD Explorer está implementado como su propio módulo, que también podría usarse individualmente.
El formato en el que AD Explorer almacena las instantáneas es propietario y condujo a un divertido proceso de ingeniería inversa. En este repositorio se incluye una plantilla para el editor 010, que utilicé para mapear iterativamente el contenido de la instantánea en estructuras.
Para el modo de salida BloodHound, esta biblioteca soporta el formato de salida BloodHound v6. Las versiones anteriores eran compatibles en commits anteriores si aún las necesitas. Para el antiguo formato de salida v3, puedes usar el código en la rama v3-format.
Desde el punto de vista de OPSEC, AD Explorer es una herramienta legítima de Microsoft. Al realizar una instantánea, solo se realizan consultas limitadas al servidor LDAP (objectGuid=*). Sin embargo, el conjunto de resultados es enorme, ya que se recuperan todos los objetos y sus atributos asociados. Esto genera una salida bastante voluminosa.
La detección de esta herramienta es posible de varias maneras, para lo cual remito a la excelente publicación del blog de FalconForce: FalconFriday — Detecting Active Directory Data Collection — 0xFF21.
Este código está licenciado bajo la licencia MIT y utiliza código que también está bajo la licencia MIT.
ADExplorerSnapshot.py depende de los siguientes proyectos:
Créditos:
Agradecimientos a Deloitte por proporcionar el entorno en el que se desarrolló esta herramienta.