
Una herramienta de enumeración de usuarios y grupos de Active Directory basada en LDAP
ad-ldap-enum es un script de Python desarrollado para recopilar usuarios/equipos y su pertenencia a grupos de Active Directory. En entornos grandes de Active Directory, herramientas como NBTEnum no eran lo suficientemente rápidas. Al ejecutar consultas LDAP contra un controlador de dominio, ad-ldap-enum puede apuntar a atributos específicos de Active Directory y construir rápidamente la pertenencia a grupos.
Domain_Group_Membership.csvExtended_Domain_User_Information.csvExtended_Domain_Computer_Information.csv-x/--excelEsta herramienta ha sido construida y probada con Python 3.10+ en Windows y Linux. Utiliza el paquete de Python msldap para conexiones y consultas LDAP. Para instalar ad-ldap-enum como una herramienta de línea de comandos con uv:
uv tool install git+https://github.com/CroweCybersecurity/ad-ldap-enum
Después de la instalación, ejecute ad-ldap-enum con:
ad-ldap-enum --help
Alternativamente a uv, puede instalar/actualizar los requisitos con pip tradicional:
git clone https://github.com/CroweCybersecurity/ad-ldap-enum && cd ./ad-ldap-enum
python -m pip install -r 'requirements.txt'
usage: ad-ldap-enum [-h] (-n | -u USERNAME | -dn DISTINGUISHED_NAME) [-k] [-p PASSWORD] [-P] [--ccache CCACHE_FILE]
[--kirbi KIRBI_FILE] [--method {ldap,ldaps}] [--channel-binding {none,tls-server-end-point,tls-unique}]
[-t TIMEOUT] [-ql QUERY_LIMIT] [--debug] [--legacy]
[-x] [-o FILENAME_PREPEND] [--delay DELAY] [--jitter JITTER] [--page-size PAGE_SIZE]
-l LDAP_SERVER [--port PORT] -d DOMAIN [-a ALT_DOMAIN] [-e] [-4] [-6]
Enumerador LDAP de Active Directory
argumentos opcionales:
-h, --help mostrar este mensaje de ayuda y salir
-n, --null Usar autenticación anónima/nula
-u USERNAME, --username USERNAME
Nombre de usuario para autenticación
-dn DISTINGUISHED_NAME, --distinguished_name DISTINGUISHED_NAME
Nombre distinguido para autenticación simple bind
-k, --kerberos Usar autenticación Kerberos
-p PASSWORD, --password PASSWORD
Contraseña, hash "LM:NT", clave AES-128 (32 hex) o AES-256 (64 hex)
-P, --prompt Solicitar contraseña
--ccache CCACHE_FILE Ruta al archivo de caché de credenciales Kerberos (.ccache)
--kirbi KIRBI_FILE Ruta al archivo de ticket Kerberos (.kirbi)
--method {ldap,ldaps}
Método de conexión: ldap (puerto 389) o ldaps (puerto 636)
--channel-binding {none,tls-server-end-point,tls-unique}
Vinculación de canal para conexiones seguras (por defecto: tls-server-end-point)
-t TIMEOUT, --timeout TIMEOUT
Tiempo de espera de conexión en segundos (por defecto: 10)
-ql QUERY_LIMIT, --query_limit QUERY_LIMIT
Tiempo de espera de consulta en segundos (por defecto: 30)
--debug Habilitar registro de depuración (muestra operaciones internas detalladas de msldap)
--legacy Usar formato TSV heredado (menos atributos)
-x, --excel Generar archivo Excel con todas las hojas de cálculo
-o FILENAME_PREPEND, --prepend FILENAME_PREPEND
Cadena a anteponer a los nombres de archivo de salida (por defecto: ad-ldap-enum_)
Parámetros de OPSEC:
--delay DELAY Retardo en segundos entre consultas LDAP (por defecto: 0.0)
--jitter JITTER Porcentaje de fluctuación aleatoria para los retardos (0.0-1.0, ej: 0.3 = ±30%)
--page-size PAGE_SIZE
Tamaño de página LDAP (por defecto: 1000)
Parámetros del servidor:
-l LDAP_SERVER, --server LDAP_SERVER
FQDN o dirección IP del servidor LDAP
--port PORT Puerto TCP personalizado
-d DOMAIN, --domain DOMAIN
Nombre de dominio (también se usa como DN base)
-a ALT_DOMAIN, --alt-domain ALT_DOMAIN
DN base alternativo para búsquedas LDAP
-e, --nested Expandir grupos anidados
-4, --inet Usar solo IPv4
-6, --inet6 Usar solo IPv6
Ejemplos rápidos:
# NTLM with inline password
ad-ldap-enum domain.tld/username:[email protected]
# NTLM with password prompt (omit password, do not use -no-pass)
ad-ldap-enum domain.tld/[email protected] -p 'Password123!'
# Kerberos with password
ad-ldap-enum domain.tld/username:[email protected] -k
# Kerberos with NT hash (LM:NT)
ad-ldap-enum domain.tld/[email protected] -k -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
# LDAPS + channel binding
ad-ldap-enum domain.tld/username:[email protected] --method ldaps --channel-binding tls-server-end-point
-k, -hashes y -aesKey--delay para introducir pausas entre consultas LDAP--jitter para añadir aleatoriedad a los patrones de temporización--page-size para controlar el agrupamiento de resultados LDAP