Skip to content

389,636,3268,3269 - LDAP

#ldap #ActiveDirectory #nullsession #pentestinterno

bash
nmap --script ldap-\* -p 389,636 10.10.11.42
bash
ldapdomaindump -u 'administrator.htb\Olivia' -p 'ichliebedich' 10.10.11.4
bash
ldapsearch -x -H ldap://administrator.htb -s base
bash
ldapsearch -x -H ldap://IP -D "USER@DOMINIO" -w "PASS" -b "DC=,DC=" "(objectClass=user)" sAMAccountName memberOf
bash
ldapsearch -x -H ldap://IP -D "USER@DOMINIO" -w "PASS" -b "DC=,DC=" "(objectClass=computer)" sAMAccountName memberOf

Si hay acceso anónimo

bash
nxc ldap 192.168.247.122 -u '' -p '' --users
bash
nxc ldap 192.168.247.122 -u '' -p '' --users | awk '{print $5}' | grep -vE '\-|\[' > users.txt

Si quieres buscar información en LDAP con ldapsearch sin autenticación ni credenciales, puedes intentar acceder de forma anónima. Sin embargo, esto solo funcionará si el servidor LDAP permite consultas anónimas (por defecto, muchos servidores LDAP restringen el acceso anónimo por razones de seguridad).


1️⃣ Comprobar si el servidor LDAP permite acceso anónimo

Antes de hacer consultas, puedes probar si el servidor permite acceso anónimo con este comando:

bash
ldapsearch -x -H ldap://IP_O_DOMINIO -s base
  • -x → Usa autenticación simple (sin SASL).
  • -H ldap://IP_O_DOMINIO → Especifica la dirección del servidor LDAP.
  • -s base → Consulta solo la raíz del directorio LDAP.

Si el servidor permite acceso anónimo, recibirás información básica sobre la estructura LDAP. Si no, es probable que el acceso anónimo esté deshabilitado.


2️⃣ Buscar la Base DN (Distinguished Name)

Si el acceso anónimo funciona, el siguiente paso es encontrar la Base DN, que define el punto de inicio para las búsquedas. Puedes probar con:

bash
ldapsearch -x -H ldap://IP_O_DOMINIO -s base -b "" "(objectClass=*)"

Si devuelve resultados, busca líneas como:

namingContexts: dc=empresa,dc=com

Esto significa que la Base DN del dominio es dc=empresa,dc=com, y la usarás en consultas más específicas.


3️⃣ Buscar todos los objetos LDAP visibles

Si encontraste la Base DN, ahora puedes listar todos los objetos del servidor LDAP con:

bash
ldapsearch -x -H ldap://IP_O_DOMINIO -b "dc=empresa,dc=com" "(objectClass=*)"

Si el acceso anónimo está permitido, este comando listará todos los objetos del servidor.


4️⃣ Buscar cuentas de usuario

Para buscar usuarios, puedes filtrar con objectClass=person o objectClass=user:

bash
ldapsearch -x -H ldap://IP_O_DOMINIO -b "dc=empresa,dc=com" "(objectClass=person)"

También puedes intentar con:

bash
ldapsearch -x -H ldap://IP_O_DOMINIO -b "dc=empresa,dc=com" "(objectClass=user)"

Si tienes suerte, esto puede revelar nombres de usuarios, correos electrónicos o incluso hashes de contraseñas almacenados en atributos como userPassword.


5️⃣ Buscar Grupos

Para listar los grupos del dominio LDAP, usa:

bash
ldapsearch -x -H ldap://IP_O_DOMINIO -b "dc=empresa,dc=com" "(objectClass=group)"

6️⃣ Buscar direcciones de correo electrónico

Si el servidor almacena correos electrónicos, puedes buscarlos con:

bash
ldapsearch -x -H ldap://IP_O_DOMINIO -b "dc=empresa,dc=com" "(mail=*)"

Esto listará todas las cuentas con correos electrónicos registrados.


7️⃣ Buscar posibles credenciales filtradas

Algunas implementaciones de LDAP permiten leer atributos como userPassword. Puedes intentar:

bash
ldapsearch -x -H ldap://IP_O_DOMINIO -b "dc=empresa,dc=com" "(userPassword=*)"

Si esto devuelve datos, podrían estar en hash o en texto claro, dependiendo de la configuración del servidor.


8️⃣ Buscar cuentas con permisos administrativos

Si el acceso anónimo es amplio, podrías buscar cuentas privilegiadas:

bash
ldapsearch -x -H ldap://IP_O_DOMINIO -b "dc=empresa,dc=com" "(&(objectClass=person)(|(cn=*admin*)(sAMAccountName=*admin*)))"

Esto intentará listar cuentas con admin en su nombre.


¿Qué hacer si el acceso anónimo está bloqueado?

Si el servidor no permite acceso anónimo, puedes probar:

  1. Buscar credenciales en archivos o scripts (en servidores, en carpetas compartidas, en configuraciones de aplicaciones).

  2. Intentar autenticación con credenciales débiles:

    bash
    ldapsearch -x -H ldap://IP_O_DOMINIO -D "CN=usuario,CN=Users,DC=empresa,DC=com" -w "contraseña"
  3. Buscar exploits para la versión del servidor LDAP.


Resumen

ComandoPropósito
ldapsearch -x -H ldap://IP -s baseVerificar si el servidor permite acceso anónimo
ldapsearch -x -H ldap://IP -b "dc=empresa,dc=com" "(objectClass=*)"Listar todos los objetos del LDAP
ldapsearch -x -H ldap://IP -b "dc=empresa,dc=com" "(objectClass=person)"Buscar usuarios en el LDAP
ldapsearch -x -H ldap://IP -b "dc=empresa,dc=com" "(objectClass=group)"Buscar grupos en el LDAP
ldapsearch -x -H ldap://IP -b "dc=empresa,dc=com" "(mail=*)"Buscar direcciones de correo
ldapsearch -x -H ldap://IP -b "dc=empresa,dc=com" "(userPassword=*)"Buscar contraseñas almacenadas

Notas personales de seguridad ofensiva.