Ir ao contido

Explicación do Formato WPA*02 (hashcat modo 22000)

Introdución

O modo 22000 de hashcat é o formato unificado para crackear contrasinais WPA/WPA2/WPA3 mediante ataques de dicionario offline. Este modo substitúe os modos antigos 2500 (handshake 4-way) e 16800 (PMKID), unificándoos nun único formato que soporta ambas técnicas de captura.

Para que se Emprega?

Este formato úsase nas Prácticas 1.1, 1.2 e 1.3 do laboratorio vuln-wifi.lab para:

  1. Práctica 1.1: Crackear handshakes 4-way capturados con airodump-ng + aireplay-ng
  2. Práctica 1.2: Auditar redes WPA2-PSK con PMF activado (mesmo proceso que 1.1)
  3. Práctica 1.3: Crackear PMKID capturados con hcxdumptool (sen deautenticación)

Vantaxe principal: Un único comando hashcat -m 22000 funciona para calquera tipo de captura (handshake completo ou PMKID), simplificando o proceso de auditoría.


Formato do Hash

WPA*02*60d9443cc2379bd16ff29371e8aeea87*a6c49421b094*2e2e65aef8ed*454d50524553412d58595a*209c3cccbc531952b5351c647288ac30ca493f7c3aba497c6fb5de9642955dbb*0103007502010a0000000000000000f7b8949a7f3bd65f6f7d7e081f447056fee05f3f40ff2c4f8a24af6a37861d25ad8d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac020000*10

Estrutura Completa (Separada por *)

Campo Valor Significado
1. Tipo WPA Formato de hash WPA/WPA2
2. Versión 02 Modo 22000 (WPA-PBKDF2-PMKID+EAPOL)
3. PMKID/Hash 60d9443cc2379bd16ff29371e8aeea87 PMKID ou Hash Message 2 (32 caracteres hex = 16 bytes)
4. MAC_AP a6c49421b094 Enderezo MAC do Access Point (BSSID)
5. MAC_STA 2e2e65aef8ed Enderezo MAC da estación/cliente atacante
6. ESSID (hex) 454d50524553412d58595a SSID en hexadecimal = "EMPRESA-XYZ"
7. ANONCE 209c3cccbc531952b5351c647288ac30ca493f7c3aba497c6fb5de9642955dbb Nonce do AP (64 hex = 32 bytes)
8. EAPOL 0103007502010a0000000000000000f7b8949a... Datos completos do paquete EAPOL (variable)
9. Tipo Msg 10 Identificador do tipo de mensaxe capturada

Explicación Detallada de Cada Campo

Campo 3: PMKID/Hash (60d9443cc2379bd16ff29371e8aeea87)

Este campo pode conter dúas cousas diferentes dependendo do que capturaches:

Opción A - PMKID puro:

PMKID = HMAC-SHA1-128(PMK, "PMK Name" || MAC_AP || MAC_STA)
- Se capturaches o PMKID no primeiro paquete EAPOL (Message 1/4)
- É un hash de 16 bytes (32 caracteres hex)

Opción B - Hash do Message 2:

MIC = HMAC(PTK, EAPOL_Message_2)
- Se capturaches o handshake completo (4-way)
- É o MIC (Message Integrity Code) do Message 2/4

Se capturaches con ep+++ (EAPOL + PMKID), este campo contén o PMKID.


Campo 6: ESSID en Hexadecimal (454d50524553412d58595a)

Conversión hex a ASCII:

45 = E
4d = M
50 = P
52 = R
45 = E
53 = S
41 = A
2d = -
58 = X
59 = Y
5a = Z
Resultado: EMPRESA-XYZ


Campo 7: ANONCE (209c3cccbc531952b5351c647288ac30...)

  • ANonce = Nonce do Authenticator (Access Point)
  • Xerado aleatoriamente polo AP
  • 32 bytes (256 bits)
  • Usado para derivar o PTK (Pairwise Transient Key)

Campo 8: Datos EAPOL (longo)

0103007502010a0000000000000000f7b8949a7f3bd65f6f7d7e081f447056fee05f3f40ff2c4f8a24af6a37861d25ad8d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001630140100000fac040100000fac040100000fac020000

Este campo contén o paquete EAPOL completo en hexadecimal. Desglose parcial:

Bytes Significado
01 Protocol Version (EAPOL)
03 Packet Type (Key)
0075 Packet Body Length (117 bytes)
02 Key Descriptor Type (RSN/WPA2)
010a Key Information
0000000000000000 Key Replay Counter
f7b8949a7f3bd65f... Key Nonce (SNonce no caso do Message 2)
... RSN Information Elements

Campo 9: Tipo de Mensaxe (10)

Este campo identifica que tipo de paquete se capturou:

Valor Significado
01 PMKID (Message 1/4 con PMKID)
02 Message 2/4 do 4-way handshake
03 Message 3/4 do 4-way handshake
10 Combinación PMKID + EAPOL

O valor 10 significa que hcxpcapngtool detectou tanto PMKID como datos EAPOL completos, dándolle a hashcat máxima información para crackear.


Como Usa Hashcat Esta Información?

hashcat -m 22000 captura.hc22000 rockyou.txt

Proceso interno de hashcat:

  1. Le o ESSID: EMPRESA-XYZ (do campo 6)
  2. Toma unha palabra do dicionario: Por exemplo: spongebob19
  3. Calcula PMK:
    PMK = PBKDF2("spongebob19", "EMPRESA-XYZ", 4096 iteracións, 256 bits)
    
  4. Calcula PMKID de proba:
    PMKID_test = HMAC-SHA1-128(PMK, "PMK Name" || a6c49421b094 || 2e2e65aef8ed)
    
  5. Compara:
    Se PMKID_test == 60d9443cc2379bd16ff29371e8aeea87:
        ✓ CONTRASINAL ATOPADO: spongebob19
    

Resumo Visual

WPA*02*PMKID*MAC_AP*MAC_STA*ESSID_hex*ANONCE*EAPOL_data*tipo
 │   │    │      │       │        │       │        │       │
 │   │    │      │       │        │       │        │       └─ Tipo msg (10 = PMKID+EAPOL)
 │   │    │      │       │        │       │        └─────────── Paquete EAPOL completo
 │   │    │      │       │        │       └──────────────────── Nonce do AP
 │   │    │      │       │        └──────────────────────────── SSID: EMPRESA-XYZ
 │   │    │      │       └───────────────────────────────────── MAC cliente/atacante
 │   │    │      └───────────────────────────────────────────── MAC do AP (BSSID)
 │   │    └──────────────────────────────────────────────────── Hash a crackear (PMKID)
 │   └───────────────────────────────────────────────────────── Modo 22000
 └───────────────────────────────────────────────────────────── Formato WPA

Conclusión

Este formato WPA*02 é moi completo porque inclúe:
- PMKID (para crack rápido)
- ANONCE (para verificación)
- Datos EAPOL completos (para máxima compatibilidade)
- Toda a información necesaria para que hashcat probe contrasinais

É por iso que o modo 22000 de hashcat funciona tanto con handshakes tradicionais como con PMKID usando o mesmo formato!