Categorías
Cracking Hacking Networking

Wireless Hacking – Cracking WPA/WPA2– Parte XIV

Una vez que se han comprendido correctamente los conceptos funcionales de WPA con PSK, se comprende rápidamente que el proceso de crackeo de una red que este tipo de protección no es una tarea trivial y adiciona un nivel de dificultad extra que no existía en WEP, para que un atacante pueda atacar este mecanismo de defensa, en primera instancia debe capturar el “4-way handshake” generado cuando un supplicant y un authenticator intercambian los paquetes correspondientes al proceso de instalación de las claves PTK. Para recordar estos conceptos, merece la pena volver a enseñar la imagen de la anterior publicación en la que se explica como es el intercambio de mensajes (y su tipo) entre el authenticator y el supplicant.

El atacante se encontrará interesado en capturar los paquetes que contengan los siguientes mensajes: Anonce, Snonce, MIC, MAC del Supplicant y MAC del Authenticator. Los dos últimos campos son capturados fácilmente de cualquier paquete entre AP y Cliente, sin embargo los mensajes Anonce y Snonce solamente pueden ser capturados en el momento en el que se inicia el proceso de instalación de las claves PTK en el supplicant y el authenticator, por lo tanto es necesario capturar de forma pasiva todos los paquetes intercambiados entre un AP objetivo y sus correspondientes clientes con la finalidad de obtener el 4-way Handshake, esto puede conseguirse fácilmente utilizando airodump-ng de la siguiente forma:

>airodump-ng mon0 –channel 3 –write wpa_psk_crack

Cuando un cliente se autentique con el AP, automáticamente airodump-ng detectará el intercambio de paquetes y capturará el 4-way handshake, el cual posteriormente será almacenado en el fichero de capturas especificado en el comando. Ahora bien, con esta captura podrá ejecutarse un ataque por fuerza bruta, ya que como se ha comentado anteriormente, las técnicas empleadas para WEP no son efectivas contra WPA. Dado que el atacante tiene los mensajes necesarios para el 4-way handshake (Anonce, Snonce, MIC, MAC del AP, MAC del Cliente) solamente necesita intentar reproducir el mismo mecanismo de generación de la PTK, es decir, utilizar el algoritmo PBKDF2 para la generación de la clave PSK de 256 bits y posteriormente la generación de los mensajes correspondientes al 4-way handshake, en este punto, los valores que se enviarán al algoritmo PBKDF2 son simplemente cada una de las palabras contenidas en el diccionario de claves, después de esto, depende de que tan robusta sea la clave utilizada en el AP, si la clave empleada por el AP no se encuentra en el diccionario de claves, el ataque simplemente fallará. Finalmente, para determinar si una clave del diccionario ha sido la que se ha usado para generar la clave PSK y la PTK, simplemente se compara el mensaje MIC (contenido en el mismo paquete que contiene el Snonce) y si coincide con el MIC del 4-way handshake capturado anteriormente por airodump-ng, se puede afirmar que se ha conseguido crackear la clave.

En realidad no es ataque demasiado interesante (es simplemente un ataque de fuerza bruta) sin embargo a efectos de aprendizaje es útil para comprender correctamente como es el procedimiento para la generación de las claves PSK/PTK y los mensajes involucrados en el 4-way handshake.

Ahora bien, para intentar crackear la clave del AP, es tan simple como utilizar aircrack-ng junto con el fichero de capturas y un diccionario robusto

>aircrack-ng wpa_psk_crack -w dict.txt

Opening wpa_psk_crack

Read 19 packets.

# BSSID ESSID Encryption

1 64:68:0C:45:71:8B WLAN_7189 WPA (1 handshake)

Choosing first network as target.

Opening wpa_psk_crack

Reading packets, please wait…

Aircrack-ng 1.1

[00:00:00] 4 keys tested (226.68 k/s)

Current passphrase: 123456789012345678

KEY FOUND! [ 123456789012345678 ]

KEY FOUND! [ 123456789012345678 ]

Master Key : 61 0E C2 60 0E 7E A4 8A B1 8D 15 49 3C B2 7D 12

44 33 9C 34 26 5C 5B DE 4D 83 A9 D3 CC F0 25 EE

Transient Key : 24 DE 1F 4C 3B DD 33 6F 79 54 C7 55 15 31 6B 14

09 4E 88 2A 4F 94 6B CA 33 46 A7 A7 8E F0 36 D2

4F 9A F5 B1 02 6A F9 66 3E FF E0 00 97 43 01 20

EAPOL HMAC : BB 63 A6 B3 0E 61 79 69 C9 3F B5 CA AE F1 FF 5A

La clave se ha encontrado y como se puede apreciar, también retorna en formato hexadecimal las clave PSK y PTK respectivamente.

Estas mismas actividades pueden llevarse a cabo utilizando otras de las tantas herramientas que existen en el mercado (tanto opensource como comerciales) y que permiten obtener los mismos resultados, Cowpatty es un buen ejemplo de este tipo de herramientas.

INSTALACIÓN Y USO DE COWPATTY

Para instalar CowPatty es necesario descargar la ultima versión desde

http://wirelessdefence.org/Contents/coWPAttyMain.htm#Installing_coWPAtty

y posteriormente instalar utilizando el comando “make && make install”, si no se desea instalar de forma permanente en el sistema y se desea utilizar desde un directorio concreto, basta con ejecutar solamente el comando “make”.

Ahora bien, el uso de CowPatty es realmente simple, solamente es necesario especificar el diccionario de claves, el SSID de la red inalámbrica y el fichero de capturas (PCAP) con el 4-way handshake capturado, de esta forma es posible realizar un crackeo offline de la clave WPA/WPA2 – PSK del mismo modo que se ha hecho en lineas anteriores utilizando aircrack-ng

./cowpatty -f dict -r wpa_psk_crack.cap -s WLAN_7189

cowpatty 4.6 – WPA-PSK dictionary attack. <jwright@hasborg.com>

Collected all necessary data to mount crack against WPA/PSK passphrase.

Starting dictionary attack. Please be patient.

The PSK is «123456789012345678«.

4 passphrases tested in 0.03 seconds: 131.69 passphrases/second

Las opciones que se han utilizando son -f para especificar el fichero donde se encuentra el diccionario de claves, -r para indicar el fichero de captura con el 4-way handshake capturado y -s para indicar el SSID de la red. Con estos parámetros CowPatty comienza el ataque por diccionario, el cual puede tardar una cantidad considerable de tiempo (además de utilizar bastantes recursos de la CPU) dependiendo de la cantidad de palabras contenidas en el diccionario de claves.

Una vez descubierta la clave WPA/WPA2 que utiliza la red, es posible descifrar todos los paquetes contenidos en un fichero de capturas, que en principio se encuentran cifrados si no se cuenta con la clave PSK correspondiente, como se recordará de alguna entrada anterior, es posible utilizar la utilidad “airdecap-ng” para descifrar paquetes cifrados utilizando la clave WEP o WPA de dichos paquetes, esta utilidad se encuentra en “aircrack-ng” así que no es necesario realizar ningún tipo de instalación adicional.

>airdecap-ng -e WLAN_7189 -p 123456789012345678 wpa_psk_crack.cap

Total number of packets read 19

Total number of WEP data packets 0

Total number of WPA data packets 8

Number of plaintext data packets 0

Number of decrypted WEP packets 0

Number of corrupted WEP packets 0

Number of decrypted WPA packets 4

La ejecución del comando anterior da como resultado la generación de un nuevo fichero PCAP con los paquetes decodificados con nombre “wpa_psk_crack-dec.cap” el cual posteriormente puede analizarse offline utilizando una herramienta como wireshark.

Este tipo de ataque por diccionario es especialmente lento en WPA/WPA2 debido al procesamiento previo que debe realizarse por cada una de las claves contenida en el diccionario, sin embargo esto puede acelerarse utilizando algunas herramientas que se explicarán en la próxima publicación.

Por Daniel Echeverri

Formador e investigador en temas relacionados con la seguridad informática y hacking. Es el autor del blog thehackerway.com el cual ha sido el ganador del European Cybersecurity Blogger Awards 2021 en la categoría de “Best Technical Content“.

Una respuesta a «Wireless Hacking – Cracking WPA/WPA2– Parte XIV»

adastra eres lo maximo brother, hace tiempo que venia haciendo lo del hack a WPA pero nunca habia entendido en si que cosa era y como funcionaba, pero ahora que lei tu post lo entiendo a la perfeccion. Sigue asi, acutalmente este es mi blog number one 🙂

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *