389,636,3268,3269 - LDAP

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

Si hay acceso anónimo

nxc ldap 192.168.247.122 -u '' -p '' --users
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:

ldapsearch -x -H ldap://IP_O_DOMINIO -s base

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:

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:

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:

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

También puedes intentar con:

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:

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:

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:

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:

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:

    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

Comando Propósito
ldapsearch -x -H ldap://IP -s base Verificar 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