Enumeración de Active Directory
Active Directory es una base de datos jerárquica (LDAP) que describe toda la organización: usuarios, grupos, equipos, políticas y las relaciones entre ellos. Lo decisivo es que cualquier usuario del dominio autenticado puede leer casi todo: quién es admin, qué máquinas existen, qué cuentas tienen SPN, qué ACLs mandan. Enumerar AD es cartografiar el terreno antes de atacar; de aquí salen Kerberoasting, rutas de ACL, delegaciones y el camino a Domain Admin.
Modelo de amenaza
Sección titulada «Modelo de amenaza»El diseño de AD prioriza la interoperabilidad: leer el directorio es un derecho por defecto de cualquier cuenta de dominio. Esa lectura masiva —objetos, atributos, membresías, ACLs— le da al atacante el mapa completo de privilegios sin tocar nada “roto”. El defensor ve consultas LDAP legítimas en apariencia; distinguir recon de uso normal es el reto.
Punto de partida
Sección titulada «Punto de partida»Con unas credenciales de dominio cualesquiera (o incluso sin ellas para parte), ya se puede enumerar. Sin credenciales: enumeración “unauth” limitada (null sessions, LLMNR, usuarios por Kerberos).
Red Team
Sección titulada «Red Team»Sin credenciales (pre-auth)
Sección titulada «Sin credenciales (pre-auth)»# usuarios válidos por Kerberos (no requiere password)kerbrute userenum -d dominio.local --dc <DC> users.txt# null session / RID cycling (si SMB lo permite)enum4linux-ng -A <DC>rpcclient -U "" -N <DC> # enumdomusers, querydispinfo# anonymous LDAP (raro hoy)ldapsearch -x -H ldap://<DC> -s base namingcontextsCon credenciales de dominio
Sección titulada «Con credenciales de dominio»Herramienta moderna de referencia, NetExec (nxc):
nxc smb <DC> -u user -p pass --users --groups --shares --pass-polnxc ldap <DC> -u user -p pass --kerberoasting out.txt --asreproast out.txtnxc smb <rango> -u user -p pass # barrido de hosts y signingEnumeración LDAP profunda:
# ldapdomaindump: vuelca TODO el dominio a HTML/JSON/CSVldapdomaindump -u 'dominio\user' -p pass ldap://<DC># windapsearch / ldapsearch para consultas puntualesldapsearch -x -H ldap://<DC> -D 'user@dominio' -w pass -b "DC=dominio,DC=local" "(objectClass=user)"Desde Windows con credenciales, PowerView:
Get-DomainUser -Properties samaccountname,description # descripciones con passwordsGet-DomainGroup -MemberIdentity userGet-DomainComputer -Properties dnshostname,operatingsystemGet-DomainUser -SPN # cuentas KerberoasteablesGet-DomainUser -PreauthNotRequired # ASREProasteablesFind-DomainShare -CheckShareAccessGet-NetGPO; Get-DomainGPOLocalGroup # quién es admin local vía GPOQué buscar (los objetivos del recon)
Sección titulada «Qué buscar (los objetivos del recon)»- Usuarios y descripciones: contraseñas en el campo
description/info(clásico). - Grupos privilegiados: Domain Admins, Enterprise Admins, Account Operators, DnsAdmins, Backup Operators.
- SPNs (Kerberoasting) y cuentas sin preauth (ASREProasting).
- Delegaciones (unconstrained/constrained/RBCD) — ver ad-delegation.
- ACLs peligrosas (GenericAll, WriteDacl, GenericWrite) sobre usuarios/grupos/OUs — la materia prima de BloodHound.
- Trusts entre dominios/bosques, GPOs que otorgan admin local, máquinas sin parchear, LAPS readable.
- Password policy (para spraying sin bloquear cuentas) y
adminCount=1.
Herramientas
Sección titulada «Herramientas»- NetExec (nxc) — navaja suiza (SMB/LDAP/WinRM/MSSQL): enum, spray, roasting, shares.
- BloodHound / SharpHound — grafo de relaciones y rutas de ataque (ficha propia).
- ldapdomaindump, windapsearch, enum4linux-ng, rpcclient, kerbrute.
- PowerView (PowerShell) y AD module (
Get-ADUser, etc.). - adPEAS, PingCastle (también perspectiva defensiva).
Impacto
Sección titulada «Impacto»La enumeración no compromete, pero define todo el ataque: de aquí salen las cuentas a rostizar, las ACLs a abusar, las delegaciones a explotar y el camino más corto a DA. Un recon completo suele hacer innecesario cualquier exploit.
Blue Team
Sección titulada «Blue Team»Detección
Sección titulada «Detección»- Consultas LDAP masivas/anómalas (SharpHound, ldapdomaindump) desde una workstation de usuario.
- kerbrute/AS-REQ masivos (muchos 4768/4771), null sessions (enum4linux), lecturas de
ms-Mcs-AdmPwd(LAPS). - Acceso a muchos objetos/atributos en poco tiempo por una sola cuenta.
Telemetría
Sección titulada «Telemetría»- 4662 (operaciones sobre objetos del directorio) con auditoría fina en objetos sensibles.
- Logs LDAP del DC (Directory Service), eventos 4768/4769 (Kerberos), 5140/5145 (shares).
- Honeytokens: cuentas/SPN señuelo que, si se consultan/rostizan, delatan recon.
Hardening
Sección titulada «Hardening»- Reduce lo que un usuario normal puede leer donde sea viable; limpia descripciones con secretos.
- Quita SPNs y preauth innecesarios; aplica LAPS con ACL de lectura restringida.
- Revisa y minimiza ACLs peligrosas y membresías de grupos privilegiados (tiering/PAW).
- Monitoriza con PingCastle/Purple Knight; despliega honeytokens y alertas de recon.
Respuesta
Sección titulada «Respuesta»Si se detecta recon, correlaciona la cuenta origen, revisa qué consultó (para anticipar el siguiente paso) y acelera el cierre de los vectores que ese recon habría revelado (roasting, ACLs).
CVEs y casos reales
Sección titulada «CVEs y casos reales»- La enumeración LDAP es TTP base en casi toda intrusión de AD (MITRE T1087, T1069, T1482 trust discovery).
- SharpHound/BloodHound aparece en incontables informes de ransomware (Conti, LockBit) como fase de mapeo previa a DA.
- Contraseñas en
descriptiony GPP (cpassword, MS14-025) siguen siendo hallazgos reales habituales.
Checklist de prueba
Sección titulada «Checklist de prueba»- Sin creds: ¿userenum por Kerberos, null sessions, LLMNR?
- Con creds: usuarios, grupos, shares, password policy (nxc)
- Descripciones de usuario con contraseñas
- SPNs (Kerberoasting) y cuentas sin preauth (ASREProast)
- Grupos privilegiados y
adminCount=1 - Delegaciones (unconstrained/constrained/RBCD)
- ACLs peligrosas (GenericAll/WriteDacl) — volcar a BloodHound
- Trusts, GPOs con admin local, LAPS legible