Descifrar claves wifi. Guía resumida
Como veo que hay bastante gente entrando al blog con el fin de ver los artículos con los que descifrar claves wifi, he decido crear una página con una guía resumida y recopilando los distintos post ya publicados y los que tengo en mente publicar con el fin de facilitar la tarea y no tener que buscar dentro de todo el blog, porque a la larga, es posible que existan bastantes artículos y podría ser cada vez mas complejo localizar todos los artículos. De esta manera, al concentrar todos en un solo artículo, la gente que siga por rss, los verá cada vez que se publique un artículo para descifrar claves wifi y si no, si Google indexa la página, podrán verla entrando directamente a la página.
Al igual que realicé en los artículos, empezaré con la preparación del entorno con el que trabajar para posteriormente seguir con las pruebas, y ya empezar con los distintos ataques que pueden realizarse con el fin de determinar si somos capaces de romper la clave de nuestra propia red wifi. Aprovecho para recalcar que esto solo es posible hacerlo si es nuestra propia red wifi o contamos con el consentimiento del dueño de la wifi que queremos probar a romper.
[wp_ad_camp_4]
Preparación del entorno para descifrar claves wifi
Partiremos de la base de que ya tenemos nuestra distribución de Linux instalada y funcionando perfectamente, esto es lo que vamos a necesitar:
- Aircrack-ng : Suite de muchos programas para poder atacar la red a probar, contiene programas para la captura de paquetes, ataques para generarlos y programas para descifrar las claves, tanto WEP como WPA.
- Tarjeta de red USB (puede valer PCI, etc…)
- reaver-wps: Programa para explotar un fallo en la implementación WPA, por medio del WPS.
Con estas tres cosas, ya podemos empezar a auditar nuestra red para ver si somos capaces de descifrar las claves de la wifi.
Instalación de Aircrack-ng:
Para poder instalar la suite Aircrack-ng, debido que ha sido retirado del repositorio de Ubuntu, podemos descargar directamente los paquetes, Aircrack de 32 bits o Aircrack de 64 bits. en función del equipo que poseamos y luego para instalar:
- Para la versión de 32 bits: sudo apt-get install aircrack-ng_1.1-1.1build1_i386.deb
- Para la versión de 64 bits: sudo apt-get install aircrack-ng_1.1-1.1build1_amd64.deb
Una vez hecho esto, ya tenemos el aircrack listo para poder ser usado.
Tarjeta de red USB:
Existen multitud de tarjetas de red, algunas funcionan mejor que otras, a mi me gusta las del chipset RTL8187, son de lo mas estable y funcionan casi todos los programas al 100% con ellas, para saber el chipset que tenéis en vuestra tarjeta, podéis ejecutar «lsusb» sin las comillas en un terminal (Aplicaciones > Accesorios > Terminal) y podréis salir de dudas:
Reaver-wps:
Por último, hay que descargar el reaver-wps, programa que sirve para comprobar si nuestra red es vulnerable a un ataque de fuerza bruta contra el WPS, pin de seguridad que se encuentra por encima del WPA y que hace, que el protocolo WPA, que era seguro, pueda ser saltado con unas horas de intentos. Para ello, iremos a la página de descarga del reaver-wps y nos descargamos el último, a fecha del post, la 1.4 y lo descomprimimos donde queramos.
Probando el entorno para romper las claves
Una de las cosas que siempre se necesita para poder llegar a hackear nuestra wifi rompiendo la clave, es poner nuestro dispositivo de red en modo monitor y hay que verificar que podemos «inyectar» paquetes sobre nuestra red wifi destino, para poder poner un dispositivo wifi en modo monitor usaremos el comando airmon-ng, el cual creará un dispositivo virtual de red wifi con el que trabajaremos principalmente para descifrar la clave. Vamos a explicar los pasos para salir de dudas y poder verificar que nuestro entorno está correctamente instalado, para eso realizaremos los siguientes pasos:
- Ejecutamos «iwconfig» con el fin de detectar nuestra tarjeta wifi, ver que número tiene para poder lanzar el siguiente comando, se puede ver en la siguiente captura que en mi caso, la tarjeta de red es wlan5.
- Ahora que ya sabemos que dispositivo tenemos, vamos a crear el dispositivo que nos permitirá inyectar sobre la red que queremos romper, en nuestro caso, la nuestra. Para ello tenemos que lanzar el comando «sudo airmon-ng start wlan5«. Hay que ejecutarlo como root (administrador del sistema), por eso usamos sudo delante del comando, y donde he puesto wlan5, será necesario usar el wlan que tenga asignado vuestro dispositivo en vuestro equipo. Una vez hecho esto, veremos algo parecido a lo siguiente:
- Como puede verse, nos aparecerá un nuevo dispositivo, que podemos comprobar de nuevo usando el comando «iwconfig«, en este caso, la captura de pantalla anterior nos muestra que ha sido habilitado el modo monitor para el dispositivo mon0, nuestro nuevo amigo y nuestro dispositivo con el que trataremos de descifrar claves wifi.
- Ahora ya solo nos queda saber si el entorno funciona para poder romper claves, es decir, si nuestro dispositivo inyecta correctamente, en este caso, será necesario hacer uso del aireplay-ng, incluido en la suite aircrack-ng. El comando que habrá que ejecutar es «sudo aireplay-ng –test mon0«. Una vez ejecutado este comando, usando de nuevo el sudo por los permisos de administrador, y poniendo el dispositivo nuevo que ha sido creado con el aireplay-ng, veremos algo parecido a esto:
Si todo ha funcionado como describo, podréis ver en la pantalla «Injection is working!«, y a continuación veremos pruebas realizadas contra las redes que veamos desde nuestra casa, tranquilos, no haremos nada en las otras redes, tan solo es una prueba para determinar si funciona o no la inyección de paquetes. En la red que nos vamos a centrar es en la nuestra, en la que trataremos de descifrar la clave wifi con el fin de saber si es o no vulnerable y así aprender a configurar dicha red.
[wp_ad_camp_1]
Ataque para romper la clave con clientes conectados
Tendremos que tener conectado algún dispositivo con el fin de que podamos replicar los paquetes que genere. Lo primero, vamos a poner nuestra tarjeta de red en modo monitor y lista para poder empezar a inyectar (recordemos que en mi caso, mi tarjeta de red era wlan5):
sudo airmon-ng start wlan5
Una vez hecho esto, tendremos creado el dispositivo mon0 (podría tener otro número, hay que ver la salida del comando anterior para verificarlo). Como consejo, antes de realizar el comando anterior, con el fin de tener la mejor cobertura, es posible bajarle la velocidad a la tarjeta de red con el fin de aprovechar al máximo el ancho de banda, esto se realiza con:
sudo iwconfig wlan5 rate 1M
Y acto seguido lanzamos la creación del dispositivo wifi en modo monitor. Ya que tenemos nuestra tarjeta en modo monitor, podemos ver todas las redes que tenemos a nuestro alrededor con el comando airodump-ng:
sudo airodump-ng mon0
En función de donde estemos y de la visibilidad que tengamos, la lista de dispositivos puede ser infinita. En mi caso existen muchas wifis, pero la idea es intentar hackear (o descifrar claves wifi) nuestra propia red wifi mientras tenga algún dispositivo conectado. Con el fin de obtener la máxima información de nuestra red, podemos acotar la información añadiendo el bssid que queremos que muestre únicamente:
sudo airodump-ng –bssid 00:11:22:33:44:55 mon0
Así obtendríamos una salida como la siguiente:
Ahora, volvemos a parar el airodump y vamos a empezar a grabar los paquetes que se reciben con el fin de luego poder probar a romperla, para ello necesitaremos lanzar el comando airodump-ng con la opción -w (write):
sudo airodump-ng –bssid 00:11:22:33:44:55 -w pruebas mon0
Ya ha empezado a escribir en disco los paquetes que necesitaremos para intentar descifrar claves wifi. La velocidad que generaríamos es muy reducida por lo que es necesario generar tráfico con el fin de acelerarlo, para eso es necesario el uso de otras herramientas que vienen con aircrack. Al tener algún cliente, el ataque que realizaremos es un ataque ARP replay y DeAuth, el primero consiste en repetir cualquier paquete ARP que se reciba hasta la saciedad, esto normalmente genera un tráfico gigante, lo que nos permitirá acelerar mucho el proceso, el segundo es básicamente una desconexión de los clientes conectados, por lo que forzará a que tengan que volverse a conectar y generarán paquetes ARP que serán usados por el otro ataque para finalmente descifrar claves wifi. Para empezar necesitamos autentificar nuestra tarjeta de red en la red a auditar, para ello lanzamos el comando en una terminal:
sudo aireplay-ng -1 0 -e NOMBRE_WIFI -a 00:11:22:33:44:55 -h ca:fe:ca:fe:ca:fe mon0
Donde NOMBRE_WIFI es el nombre de nuestra red (podemos verlo en el comando del airodump-ng), 00:11:22:33:44:55 es la mac de nuestro router, también visible en el comando anterior, bajo la columna BSSID y ca:fe:ca:fe:ca:fe es la mac de nuestra tarjeta de red, podemos obtenerla con el comando:
ifconfig wlan5
Y lo veremos al lado de HWaddr ca-fe-ca-fe-ca-fe. Ahora nos queda empezar a escuchar en busca de los paquetes ARP, que replicaremos en la red con el fin de acelerar en busca de los paquetes IV, que son los que nos ayudarán a descifrar claves wifi. Abrimos otra ventana de terminal y lanzamos:
sudo aireplay-ng -3 -b 00:11:22:33:44:55 -h ca:fe:ca:fe:ca:fe mon0
Donde los datos usados son «-3» indica que queremos realizar el ataque ARP Replay, -b 00:11:22:33:44:55 indica el bssid de nuestro router, aparece en la primera columna del airodump que estamos ejecutando, y -h ca:fe:ca:fe:ca:fe, que indica la mac de nuestro cliente conectado (puede ser nuestro móvil, portátil, etc etc), se puede ver en la parte baja de nuestro airodump en la columna de station.
NOTA: Si recibes un error del tipo «mon0 is on channel -1, but the AP uses channel 1», En breve publicaré la solución.
Con este comando lo que hace el aireplay-ng es escuchar en busca de paquetes ARP, que una vez capturados los repetirá hasta la saciedad. para ayudar a capturar estos paquetes, es posible ayudar un poco lanzando un Deauth para desconectar a todos los clientes y forzarlos a una reconexión y así capturar paquetes ARP para replicar, el comando a lanzar en otra terminal nueva es:
sudo aireplay-ng -0 1 -a 00:11:22:33:44:55 mon0
Una vez lanzado, nos iremos a la ventana donde se está ejecutando el comando que llevaba el «-3», que es el que escucha por paquetes ARP y si todo ha salido bien, veremos como empieza a incrementar un número de manera muy rápida, esos son las repeticiones de los paquetes ARP localizados, y si definitivamente nos vamos a la ventana del airodump-ng, podremos ver como se va incrementando a gran velocidad la columna de los IV, si todo ésto que digo es lo que te ha ocurrido, cuando llevemos algunos miles de paquetes (pueden ser 2-3 minutos como media hora) podemos empezar a intentar descifrar la clave wifi, abriendo una nueva terminal y yendo donde se está guardando pruebas que pusimos como destino con el airodump-ng y lanzamos el comando:
aircrack-ng pruebas.cap
Si no pasa nada y todo ha ido según lo descrito, aparecerá la clave en pantalla al cabo de un rato, todo dependerá de la velocidad con la que se inyecte sobre tu red. Si has conseguido descifrar la clave, tu red es insegura.
Solución al problema de Channel -1
- Abrimos un terminal. Aplicaciones > Accesorios > Terminal
- Con el editor que queramos (yo uso nano) creamos un fichero con el comando: nano channel
- Copiamos el siguiente contenido dentro de él (cambia wlan5 por el dispositivo de red tuyo):
#!/bin/bash
#change this to the interface you wish to change
# Script is used when channel 1 is stuck. Make sure wlan0 is down and mon0 is not running.
# Run this script first before you do anything.
IFACE=»wlan5″ifconfig $IFACE down
iwconfig $IFACE mode managed
ifconfig $IFACE up
iwconfig $IFACE channel $@
ifconfig $IFACE down
iwconfig $IFACE mode monitor
ifconfig $IFACE upiwconfig $IFACE
Tras esto, tan solo quedará guardarlo y darle permisos de ejecución, para darle permisos de ejecución será necesario poner:
chmod +x channel
Y ya podremos ejecutar el script, como es un cambio sobre un dispositivo de red será necesario hacerlo como root:
sudo ./channel
Si todo ha ido bien, podremos ver con iwconfig que nuestro dispositivo ha sido configurado como modo monitor y nos permitirá la inyección sin problemas, o al menos, así me funcionó a mi.
Ver comentarios (2)
Hola, muy bueno el tutorial! Estaba intentando hacer un documento con los pasos que estaba realizando y me fue muy dificil y veo que lo hass explicado bastante bien.
Tengo un problema, llego hasta el final pero en el comando aircrack-ng doc.cap, me pide que defina -w.
Y si le agrego la -w, me pide un archivo de diccionario. ¿Me podrás ayudar a resolverlo?