LDAP
🧠 ¿Qué es LDAP? LDAP (Lightweight Directory Access Protocol) es un protocolo que se usa para acceder, consultar y modificar servicios de directorio, como Active Directory en entornos Windows.
🎯 ¿Por qué es relevante en pentesting?
Ver si 389 o 636 están abiertos
En muchas organizaciones, los controladores de dominio (Domain Controllers) exponen el servicio LDAP en el puerto 389 (sin cifrar) o 636 (LDAPS cifrado). Si no se configura adecuadamente, LDAP puede permitir enumeración sin autenticación (bind anónimo), lo cual representa una vulnerabilidad.
🔍 ¿Qué se puede enumerar con LDAP?
Usuarios del dominio
Grupos y sus miembros
SPNs (Service Principal Names)
Descripciones (que pueden contener contraseñas)
Políticas de dominio
SIDs y RIDs
Controladores de dominio
🛠️ Herramienta: ldapsearch
ldapsearch
ldapsearch
es una utilidad de línea de comandos incluida en los paquetes de OpenLDAP, y permite realizar consultas LDAP desde sistemas Unix/Linux.
📌 Comando básico
🔓 Bind anónimo (sin credenciales)
ldapsearch -x -H ldap://<IP> -D '' -w '' -b "DC=subdominio,DC=tld"
Ejemplo:
ldapsearch -x -H ldap://10.10.11.174 -D '' -w '' -b "DC=corp,DC=htb"
Esto intenta consultar el directorio sin autenticación. Si devuelve resultados, el servidor permite enumeración anónima, lo cual es una mala práctica y puede ser explotada.
🔐 Con credenciales
ldapsearch -x -H ldap://10.10.11.174 -D 'corp\ldap' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=corp,DC=htb"
Esto es útil si tienes un usuario válido, incluso de bajo privilegio.
⚠️ ¿Cómo detectar la vulnerabilidad?
Si el comando de bind anónimo devuelve resultados, el servidor es vulnerable.
Si puedes enumerar atributos sensibles como
servicePrincipalName
,description
,userPassword
, etc., hay un riesgo de exposición de datos.Si se filtran SPNs, puede ser vulnerable a Kerberoasting.
✅ Ejemplos de búsquedas útiles
Todos los usuarios:
ldapsearch ... "(objectClass=user)"
SPNs (para Kerberoasting):
ldapsearch ... "(servicePrincipalName=*)"
Descripciones (pueden contener datos sensibles):
ldapsearch ... "(description=*)"
Last updated