Cracking WPA/WPA2 — Kali Linux

David Galisteo Cantero

Vamos a hablar un poco sobre WPA y cómo podemos auditar nuestra propia red para comprobar si es vulnerable.

Bien, para empezar, como imagino que sabréis, existen 3 grandes protocolos de cifrado para nuestras redes wi-fi, WEP (fácilmente crackeable, como vimos en esta entrada), WPA y WPA2 (estos últimos son parecidos), en esta entrada vamos a estudiar por encima los fundamentos de WPA y veremos como podemos crackear una red con este tipo de cifrado.

Hay que mencionar que dentro de WPA se distinguen dos tipos: Clave pre-compartida (PSK), normalmente usada en hogares y pequeñas oficinas, en el que todos los clientes cuentan con la misma clave para la conexión, y por otra parte, WPA Enterprise, que no entra dentro del tema de esta entrada, pero que,a grandes rasgos, se basa en que cada cliente se conectará con una clave distinta.

Bien, en la siguiente imagen podemos ver un pequeño diagrama sobre el funcionamiento de WPA y el establecimiento del acuerdo de cuatro vías o handhsake:

teoria handshake 4 vias

La frase de paso (password o PSK) puede tener entre 8 y 63 caracteres ASCII, así que ya sabeis, para fortalecer al máximo la seguridad del password de vuestra red, lo mejor es volverse paranoico :D.

El cifrado WPA depende de una contraseña maestra de prueba de pares(PMK, Pairwise Master Key), que se calcula a partir de la PSK y el SSID de la red. Cuando el cliente obtiene la PMK negocia con el AP una nueva contraseña TEMPORAL, la PTK (Pairwise Transient Key).

Unos números aleatorios generados por el AP (A-nonce y S-nonce) forman parte de estas claves, junto con la MAC del cliente y del AP, se generan a partir de tantas variables para garantizar la unicidad :).

Por último, el AP verifica que el cliente realmente tiene la PMK comprobando el MIC (Message Integrity Code). El MIC es un hash criptográfico. Si el MIC no es correcto, significa que tampoco lo son la PMK y PTK.

Después de esta chapa teórica, vamos con un caso práctico, explico este proceso ya que necesitaremos capturar este acuerdo (handshake) para crackear la clave :).

Bien, empecemos…

Lo primero será iniciar la distribución linux Kali, puedes descargarla desde el link anterior en el caso de que aún no la tengas.

Bien, en mi caso correré Kali en virtualBox Linux, con dos interfaces de red, eth0 y wlan0.

Una vez arrancado Kali, vamos a parar eth0 y a poner nuestra tarjeta de red inalámbrica en modo monitor (para que pueda capturar todos los paquetes que viajan por su entorno, no solo los que van dirigidos a ella)


airmon-ng stop eth0
airmon-ng start wlan0

Mi interfaz es wlan0, la vuestra quizás sea diferente
Obtendríamos lo siguiente:

kali airdump modo monitor

Como se puede apreciar, ya tenemos la tarjeta en modo monitor, veis que se activa una nueva interface, llamada ‘mon0’, será la que utilicemos a partir de ahora para el resto del proceso.

Una vez hecho esto, tenemos que «escuchar» las redes de nuestro entorno, podemos hacerlo con:

airodump-ng mon0

Con esta instrucción comenzaremos a capturar tráfico procedente de todos las redes de nuestro alrededor, una vez que tengamos definido el objetivo, filtramos la escucha para él:

airodump-ng --channel CANAL-OBJETIVO --write CAPTURA --bssid MAC-OBJETIVO mon0

Bien, CANAL-OBJETIVO será el canal donde emite la red que queremos auditar (la nuestra, por supuesto )
CAPTURA será el nombre del fichero donde guardaremos los datos capturados.
MAC-OBJETIVO será la dirección MAC del punto de acceso.

Una vez llegado a este punto, estamos en condición de capturar el handshake, ¿que cómo se hace? Pues bien, hay dos formas, la primera, más furtiva y paciente, que sería esperar a que un cliente se conecte (y por consiguiente se produzca el acuerdo de 4 vías), cosa que puede llegar a ser desesperante si no hay demasiado movimiento en la red, y la segunda forma, que es desautenticar a algún cliente conectado para hacer que vuelva a conectarse y así obtener nuestro deseado handshake, para ello, identificamos un cliente, abrimos otra consola y escribimos:

aireplay-ng --deauth 10 MAC-ROUTER -c MAC-CLIENTE mon0

–deauth 10 indica que se inyecten 10 paquetes para desautenticar al cliente seleccionado, una vez realizado el proceso, veremos en nuestro airodump, (la ventana donde estábamos escuchando el tráfico), algo así:

handshake airdump kali linux

Como vemos, en la parte superior derecha nos indica que hemos capturado el handshake :).

Ahora llega la parte más difícil, crackear la contraseña, podemos hacerlo de dos maneras, mediante diccionario o mediante fuerza bruta. El primer método prueba con las palabras del diccionario por si suena la flauta y alguna se corresponde con la password, es muy importante tener un buen diccionario de palabras :). El segundo método te garantiza la contraseña, pero quizás tu pc tenga que estar probando durante años (no es viable :)).

Para crackear mediante diccionario utilizamos el siguiente código:

aircrack-ng -w RUTA-DICCIONARIO CAPTURA.cap

Y si quieres hacerlo por fuerza bruta (utilizaremos john the ripper):

john --stdout --incremental:all | aircrack-ng -b MAC-ROUTER -w - CAPTURA.cap

Cuando encontremos la clave visualizaremos algo así:
aircrack kali linux password

En este caso yo tenía un diccionario que solo contenía mi clave, para realizar la prueba

Espero que os haya sido de ayuda y os sirva para poder auditar VUESTRAS redes

HackSaludos!

Publicado el 02-11-2013

Donar

Si te ha sido de ayuda y quieres hacer una donación te lo agradeceremos :)

Compartelo!


13 comentarios

  • Oscar Contreras dice:

    Si me detecta mi tarjeta re red pero a la hora de usar el comando airodump-ng comienza a escanear pero no detecta nada y esto ya lo realicé en diferentes máquinas con el mismo resultado.

    Saludos

  • Joni dice:

    Hola buenas, tengo una pregunta y es que al poner el siguiente comando
    aireplay-ng -deauth 10 C0:A0:BB:4A:AA:08 -c 000:0F:55:A8:0D:B9 mon0
    Me sale el siguiente error:
    Invalid destination MAC address.
    «aireplay-ng –help» for help.
    Espero respuesta, saludos! 😉

  • juan dice:

    hola
    Sabrias como explicarme o algun tutorial sobre como hacer que te detecte tu tarjeta red en virtual box??

    • Hola, VirtualBox detecta las tarjetas de red de tu host, si el host no tiene o no ha detectado ninguna tarjeta, tampoco las podrá ver VirtualBox. Además, en ocasiones he visto que VirtualBox (sobre Ubuntu), en ocasiones, no detecta la tarjeta si es WIFI. No puedes hacer mucho más. Que usas de host y que vas a virtualizar?

  • leandro dice:

    excelente aporte.
    Solo me gustaria que postiando imagenes seria mas facil de comprender y realizarlo mejor y sin dudas.

  • aldo dice:

    hola segui los paso pero aqui me quede
    airodump-ng –channel CANAL-OBJETIVO –write CAPTURA –bssid MAC-OBJETIVO mon0

    por q me sale asi no como en la imagen

    CH 10 ][ Elapsed: 2 mins ][ 2014-06-10 19:28 ][ fixed channel mon0: -1
    que puede hacer

    • Hola, revisa los guiones, los parámetros con una sola letra se especifican con ‘-‘ , los parámetros que se especifican con una palabra usan 2 ‘-‘, quizás en el post no se aprecie correctamente :S

      Un saludo

Deja un comentario

Comentanos

*

Ir arriba de la pagina