Explicación do Formato NetNTLMv1 (hashcat modo 5500)
Introdución
O modo 5500 de hashcat é o formato específico para crackear hashes NetNTLMv1 / NetNTLMv1+ESS capturados durante ataques de tipo Evil Twin contra redes WPA2-EAP (PEAP/MSCHAPv2). É o complemento natural do modo 22000 para este vector de ataque.
A diferenza do modo 22000 (que crackea contrasinais de redes Wi-Fi PSK), o modo 5500 crackea contrasinais de usuarios de dominio capturadas durante a autenticación EAP mediante o protocolo MSCHAPv2.
Para que se Emprega?
Este formato úsase na Práctica 2 (Evil Twin) do laboratorio vuln-wifi.lab para:
- Práctica 2.1 / 2.2: Capturar hashes MSCHAPv2 de usuarios que se conectan ao Evil Twin creado con
hostapd-wpe - Práctica 2.3 (MITM): Alternativa para capturar credenciais cando o modo Evil Twin puro (sen proxy RADIUS) está activo
Vantaxe principal: O hash NetNTLMv1 xerado por MSCHAPv2 pode ser crackeado offline con hashcat sen necesidade de que o cliente volva conectarse, permitindo recuperar o contrasinal real do usuario de dominio.
⚠️ Nota importante sobre WPA2-EAP en modo PROXY: En modo MITM con
hostapd-manaactuando como proxy RADIUS, capturanse handshakes WPA2 (formato 22000), non hashes MSCHAPv2. O modo 5500 só é aplicable candohostapd-wpeouhostapd-manaopera en modo Evil Twin sen proxy, capturando directamente o intercambio MSCHAPv2.
Formato do Hash
Ou no formato alternativo compatible con John the Ripper (JtR):
Estrutura Completa (Separada por :)
| Campo | Valor | Significado |
|---|---|---|
| 1. Username | ana |
Nome de usuario capturado (Identity EAP) |
| 2. Empty | `` | Campo baleiro (dominio, non usado en MSCHAPv2 simple) |
| 3. Empty | `` | Campo baleiro (host, non usado) |
| 4. Empty | `` | Campo baleiro (LMResponse, non presente en NetNTLMv1 puro) |
| 5. NTResponse | de89e682929a6bc170ed4233e8867e24ec0f429da91772b5 |
Resposta NT de 24 bytes (48 hex) |
| 6. Challenge | e70a88fc72b2f83f |
Desafío de 8 bytes (16 hex) enviado polo servidor |
Explicación Detallada de Cada Campo
Campo 1: Username (ana)
O nome de usuario é capturado durante a fase de EAP Identity do protocolo PEAP. Cando o cliente se conecta ao Evil Twin, envía a súa identidade en texto claro antes de establecer o túnel TLS. hostapd-wpe rexistra este valor directamente.
Campos 2, 3 e 4: Campos Baleiros
No formato NetNTLMv1 puro capturado por MSCHAPv2 en contextos Wi-Fi (PEAP), estes campos non conteñen información relevante e aparecen baleiros. Son herdanza do formato NTLM completo usado en autenticación Windows en rede local, onde incluirían o dominio e o nome do equipo.
Campo 5: NTResponse (de89e682929a6bc170...867e24ec0f429da91772b5)
É o campo crítico para o cracking. Contén a resposta NT calculada polo cliente:
NTResponse = DES(NT_Hash[0:7], Challenge)
+ DES(NT_Hash[7:14], Challenge)
+ DES(NT_Hash[14:16] + 5 bytes_ceros, Challenge)
Onde:
- 24 bytes (48 caracteres hexadecimais)
- Calculado polo suplicante Wi-Fi (o dispositivo do usuario)
- É o hash que hashcat intentará reproducir probando contrasinais do dicionario
Fluxo de cálculo:
contrasinal "1234"
│
▼
MD4(UTF-16LE("1234")) = 7ce21f17c0aee7fb9cebb3eb0a09345b
│
▼
DES con Challenge (e70a88fc72b2f83f)
│
▼
NTResponse = de89e682929a6bc170ed4233e8867e24ec0f429da91772b5
Campo 6: Challenge (e70a88fc72b2f83f)
O challenge é un número aleatorio de 8 bytes xerado polo servidor EAP (no noso caso, polo hostapd-wpe do Evil Twin) e enviado ao cliente durante o intercambio MSCHAPv2. É análogo ao ANonce do modo 22000:
- 8 bytes (16 caracteres hexadecimais)
- Xerado aleatoriamente en cada sesión de autenticación
- Enviado en texto claro ao cliente
- Capturado por
hostapd-wpenos logs
Como Aparece nos Logs de hostapd-wpe
Cando un cliente se conecta ao Evil Twin, hostapd-wpe mostra na terminal:
wlan2: STA a2:c7:77:12:28:c1 IEEE 802.1X: Identity received from STA: 'ana'
mschapv2: Sat Jan 31 17:12:15 2026
username: ana
challenge: e7:0a:88:fc:72:b2:f8:3f
response: de:89:e6:82:92:9a:6b:c1:70:ed:42:33:e8:86:7e:24:ec:0f:42:9d:a9:17:72:b5
jtr NETNTLM: ana:$NETNTLM$e70a88fc72b2f83f$de89e682929a6bc170ed4233e8867e24ec0f429da91772b5
hashcat NETNTLM: ana::::de89e682929a6bc170ed4233e8867e24ec0f429da91772b5:e70a88fc72b2f83f
A liña hashcat NETNTLM xa está no formato exacto que necesita hashcat modo 5500. Para extraela:
grep "hashcat NETNTLM" evil-twin-credentials.log | awk '{print $3}' > evil-hash.txt
cat evil-hash.txt
Como Usa Hashcat Esta Información?
Proceso interno de hashcat:
- Le o username:
ana(informativo, non afecta ao cálculo) - Le o Challenge:
e70a88fc72b2f83f - Toma unha palabra do dicionario: Por exemplo:
1234 - Calcula NT Hash:
- Calcula NTResponse de proba:
- Compara:
Saída Esperada de hashcat
ana::::de89e682929a6bc170ed4233e8867e24ec0f429da91772b5:e70a88fc72b2f83f:1234
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 5500 (NetNTLMv1 / NetNTLMv1+ESS)
Hash.Target......: ana::::de89e682929a6bc170ed4233e8867e24ec0f42...2f83f
Time.Started.....: (2 secs)
Speed.#01........: 1823.4 MH/s
Progress.........: 4/14344385 (0.00%)
Recovered........: 1/1 (100.00%) Digests
Para ver o resultado crackeado posteriormente:
hashcat -m 5500 evil-hash.txt /tmp/rockyou.txt --show
# Saída: ana::::de89e682929a6bc170ed4233e8867e24ec0f429da91772b5:e70a88fc72b2f83f:1234
Comparativa: Modo 5500 vs Modo 22000
| Característica | Modo 22000 | Modo 5500 |
|---|---|---|
| Protocolo | WPA2/WPA3 PSK | WPA2-EAP (PEAP/MSCHAPv2) |
| Ataque | PSK Handshake / PMKID | Evil Twin EAP |
| Ferramenta captura | airodump-ng, hcxdumptool |
hostapd-wpe, hostapd-mana |
| Obxectivo | Contrasinal da rede Wi-Fi | Contrasinal do usuario de dominio |
| Hash base | PBKDF2-SHA1 (lento) | MD4 + DES (rápido) |
| Velocidade | ~4.500 H/s | ~1.800 MH/s |
| Formato | WPA*02*PMKID*MAC_AP*... |
user::::NTResp:challenge |
Resumo Visual
NetNTLMv1 para hashcat modo 5500:
ana :::: de89e682929a6bc170ed4233e8867e24ec0f429da91772b5 : e70a88fc72b2f83f
│ │ │ │
│ │ │ └── Challenge (8B)
│ │ │ Xerado polo Evil Twin
│ │ └─────────────────────────────────────────── NTResponse (24B)
│ │ DES(MD4(pass), challenge)
│ └──────────────────────────────────────────────────────────────────── Campos baleiros
│ (dominio:host:LMResp)
└────────────────────────────────────────────────────────────────────────── Username
Capturado en EAP Identity
Relación co Fluxo do Ataque Evil Twin
[Cliente Wi-Fi] [Evil Twin (hostapd-wpe)] [Atacante]
│ │ │
│── Probe Request ──────────────────► │
│◄─ Beacon (EMPRESA-XYZ) ───────────│ │
│── Association ────────────────────► │
│◄─ EAP-Request/Identity ───────────│ │
│── EAP-Response/Identity (ana) ───►│── Rexistra username ───►│
│◄─ EAP-Request/Challenge ──────────│ │
│ (e70a88fc72b2f83f) ←────────────│── Rexistra challenge ──►│
│── EAP-Response/NTResponse ────────► │
│ (de89e682...b5) ────────────────│── Rexistra hash ───────►│
│ │ │
│ │ hashcat -m 5500 evil-hash.txt rockyou.txt
│ │ │
│ │ ✓ Contrasinal: 1234
Conclusión
O formato NetNTLMv1 do modo 5500 é especialmente relevante en auditorías Wi-Fi porque:
- É moito máis rápido de crackear que o modo 22000 (ordes de magnitude, xa que usa DES en vez de PBKDF2)
- Revela contrasinais de dominio, non só da rede Wi-Fi, con alto impacto en contornos corporativos
- Non require que o usuario saiba que está conectado a un AP falso; MSCHAPv2 cede o hash automaticamente
- O hash capturado é sempre válido para cracking, independentemente de que o usuario acabe ou non autenticándose
É por iso que o ataque Evil Twin contra WPA2-EAP é máis perigoso que o ataque PSK: comprométese a identidade corporativa do usuario, non só o acceso á rede Wi-Fi.