Ir ao contido

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:

  1. Práctica 2.1 / 2.2: Capturar hashes MSCHAPv2 de usuarios que se conectan ao Evil Twin creado con hostapd-wpe
  2. 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-mana actuando como proxy RADIUS, capturanse handshakes WPA2 (formato 22000), non hashes MSCHAPv2. O modo 5500 só é aplicable cando hostapd-wpe ou hostapd-mana opera en modo Evil Twin sen proxy, capturando directamente o intercambio MSCHAPv2.


Formato do Hash

ana::::de89e682929a6bc170ed4233e8867e24ec0f429da91772b5:e70a88fc72b2f83f

Ou no formato alternativo compatible con John the Ripper (JtR):

ana:$NETNTLM$e70a88fc72b2f83f$de89e682929a6bc170ed4233e8867e24ec0f429da91772b5

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:

NT_Hash = MD4(UTF-16LE(contrasinal))

  • 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-wpe nos 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?

hashcat -m 5500 evil-hash.txt /tmp/rockyou.txt

Proceso interno de hashcat:

  1. Le o username: ana (informativo, non afecta ao cálculo)
  2. Le o Challenge: e70a88fc72b2f83f
  3. Toma unha palabra do dicionario: Por exemplo: 1234
  4. Calcula NT Hash:
    NT_Hash = MD4(UTF-16LE("1234")) = 7ce21f17c0aee7fb9cebb3eb0a09345b
    
  5. Calcula NTResponse de proba:
    NTResponse_test = DES(NT_Hash[0:7], e70a88fc72b2f83f)
                    + DES(NT_Hash[7:14], e70a88fc72b2f83f)
                    + DES(NT_Hash[14:16]+ceros, e70a88fc72b2f83f)
    
  6. Compara:
    Se NTResponse_test == de89e682929a6bc170ed4233e8867e24ec0f429da91772b5:
        ✓ CONTRASINAL ATOPADO: 1234
    

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.