Cracking WPA/WPA2 con CoWPAtty y AirCrack-NG

Publicado por D3M0N, 04 de Febrero de 2013, 09:44:00 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

D3M0N

Aunque WPA (Wi-Fi Protected Access) es más seguro que WEP (Wired Equivalent Privacy), en el instante inicial en que la conexión se establece, WPA es más vulnerable que WEP ya que es necesario capturar un menor número de frames (solo es necesario capturar un total de 4 frames del handshake intercambiadas entre el cliente y el punto de acceso para llevar el descubrimiento de claves) para obtener la clave inicial de cifrado mediante ataques de diccionario.

WPA es vulnerable a un ataque de diccionario y para este ataque es necesario el obtener el 4 way handshake entre el cliente y el punto de acceso. Es necesario también un wordlist o diccionario de palabras. Luego, utilizando herramientas como CoWPAtty y Aircrack-ng intentar obtener la clave pre compartida de WPA/WPA2.

CoWPAtty fue creado por Joshua Wright You are not allowed to view links. Register or Login y tiene todas las características que uno podría desear de una buena herramienta sin salir de su propósito. Esta herramienta es para automatizar el ataque de diccionario a las redes WPA-PSK y es muy sencillo de utilizar. Lo primero que haremos es lanzara airodump-ng para seleccionar un objetivo.

Código: php
airodump-ng mon0



Tal como podemos ver en la imagen anterior, hay dos clientes conectados a la red "Wireless" y tiene encriptación WPA, con cifrado TKIP. Ahora lo que aremos es lanzar airodump-ng para que escuche en el canal donde esta transmitiendo el punto de acceso que tenemos como objetivo, en este caso "Wireless" que esta transmitiendo en el canal 11 y despues lanzar el "Ataque 0 Deautenticación" para desautenticar a un cliente y así obtener el 4 way handshake.

Código: php
airodump-ng --channel 11 --bssid FX:XX:XX:XF:AB:7C --write wpademo mon0


Para obtener la captura completa de 4 frames del handshake, es necesario que haya al menos un cliente conectado o esperar a que un cliente se conecte (esto si eres muy paciente :D). Si hay un cliente conectado lo que se hará es realizar el ataque "-–deauth" o también conocido como "ataque 0" utilizando aireplay-ng y lo que sucederá aquí es, que desasociaremos al cliente conectado actualmente al punto de acceso y cuando se vuelve a conectar obtendremos los 4 frames del handshake. El detalle es que si no hay clientes conectados al punto de acceso, no podremos obtener la clave WPA ya que es necesario que haya clientes conectados o esperar que alguien se conecte al AP para la obtención del four-way handshake.

Bueno en mi caso lo que hare es desautenticar el cliente con direccion MAC "0C:XX:76:XX:D5:5B" del ESSID "Wireless".

Código: php
aireplay-ng --deauth 1 -a FX:XX:XX:XF:AB:7C -c 00:60:76:71:D5:5B mon0



He desasociado al cliente del punto del acceso, ahora el cliente lo que hará es volver a reautenticarse y es entonces cuando obtendremos los 4 paquetes del handshake. En la reautenticación se generarán los 4 paquetes de autenticación (handshake) en los que estamos interesados en capturar. Después estos paquetes los usaremos para intentar obtener la clave precompartida WPA/WPA2.

Bueno ahora pongan atención en la siguiente imagen donde se muestra una sesión de airodump-ng y en la parte superior de la imagen se muestra un mensaje "WPA handshake F4:C7:14:6F:AB:7". El four-way handshake ha sido capturado.


Tal y como se muestra en la imagen anterior, hemos obtenido los 4 paquetes handshake. Estos cuatro paquetes como lo mencionamos anteriormente los utilizaremos para obtener la clave WPA/WPA2 precompartida. Para esto necesitaremos un wordlist o diccionario de palabras, el cual contiene la contraseña de WPA/WPA2-PSK.

Antes de pasar al siguiente paso, ahora lo que haremos es detener airodump-ng y abriremos el archivos ".cap" capturado con Wireshark para ver el "four-way handshake". El archivo debe ser algo similar a la siguiente captura.


Bueno ahora lo que haremos es empezar el crackeo, para esto necesitaremos un wordlist y es aquí donde entra en juego CoWPAtty. Debemos de indicarle a CoWPAtty la ruta donde tenemos el wordlist o diccionario de palabras, también la captura del four-way handshake y por ultimo el SSID de la red wifi, que en este caso es "Wireless". Básicamente lo que hara CoWPAtty es ir comprobando cada una de esas palabras que contiene el diccionario si coincide con la clave. Este proceso todo será dependiendo de la velocidad de nuestro CPU, también de la calidad y el tamaño del diccionario de palabras (wordlist), esto puede llevar bastante tiempo, incluso días o años jeje si eres impaciente puedes esperar :D. Bueno Lanzamos CoWPAtty desde consola.

Código: php
cowpatty -r wpademo-02.cap -f /pentest/passwords/john/password.lst -2 -s Wireless



Para especificar nuestro diccionario de palabras lo hacemos con el parámetro –f (-f /pentest/passwords/john/password.lst), el SSID con el parámetro –s (-s Wireless) y el archivo capturado con el parámetro –r (-r wpademo-02.cap). El ultimo parámetro -2, es el modo no estricto, esto se requiere cuando no tenemos capturados los 4 frames del handshake, es decir el paquete completo. Por cierto una opción bastante buena.

En este ejemplo he utilizado un diccionario de palabras que lo trae incluido BackTrack de John the Ripper, el archivo se encuentra en el directorio /pentest/passwords/john/password.lst

Es importante comentar que para el crackeo de WPA debemos de tener un muy buen diccionario de palabras. La distribución de BackTrack incluye unos cuantos diccionarios pero estos puede que no sean suficientes, para esto deben de buscar en Google o igual existen generadores de palabras que automatizan este proceso de generar diccionarios.

Ahora veamos un ejemplo final utilizando Aircrak-ng. Vamos a especificar la ruta de nuestro diccionario con el parámetro –w (-w /pentest/passwords/john/password.lst) y nuestro archivo de captura (wpademo-02.cap).

Código: php
aircrack-ng -w /pentest/passwords/john/password.lst wpademo-02.cap



Para el crackeo de WPA2 el proceso es el mismo, no hay diferencia. También hay que tener muy en cuenta de que al tratarse de un ataque de diccionario el requisito previo es que la contraseña debe estar en el diccionario de palabras que le estamos indicando, si la frase u contraseña no se encuentra en el diccionario, el ataque no tendrá éxito.

FUENTE: You are not allowed to view links. Register or Login