Hackear WPA2 con aircrack
Este no es un post falso ni con clickbait. Realmente te mostraré cómo puedes obtener la clave de una red WiFi que esté protegida con WPA2 usando aircrack.
Recuerda que para que esto funcione debes contar con aircrack-ng instalado. Si usas Debian o uno de sus derivados simplemente ejecuta sudo apt-get install aircrack-ng
También necesitas tener un adaptador inalámbrico (tarjeta de red, antena, como le llames) que soporte el modo monitor.
Recuerda que todo esto no es simple magia, hay varios factores que intervienen. Por cierto, yo solo te muestro esto con fines educativos y no me hago responsable de lo que puedas llegar a hacer con esto.
Configuración de la red que vamos a hackear
Como no quiero molestar a nadie, voy a crear un punto de acceso con mi teléfono. La red será Parzibyte y la clave será onetwothree.
Tú puedes probar con la red que quieras, ya sea de tu casa o de quien gustes; pero cualquier cosa que hagas es tu responsabilidad, ya que recuerda que esto puede traerte problemas legales (incluso con la broma de que el WiFi invade tu propiedad).
Mostrar interfaces de red
Vamos a ver las interfaces de red que tenemos disponibles. Para mostrar las interfaces usamos sudo airmon-ng
así:
PHY Interface Driver Chipset
phy0 wlan0 brcmfmac Broadcom 43430
phy1 wlan1 rtl8187 Realtek Semiconductor Corp. RTL8187
En mi caso tengo 2 interfaces para Wi-Fi. En mi Raspberry tengo la integrada, y además he comprado un adaptador extra. Sé de antemano que el Broadcom 43430 no funciona para el modo monitor, pero el Realtek Semiconductor Corp. RTL8187 sí.
Hay que identificar el nombre de la interfaz. En mi caso utilizaré la wlan1, si tú solo tienes una entonces probablemente será la wlan0.
A lo largo del tutorial utilizaré wlan1 porque es mi interfaz, pero ten cuidado pues la tuya puede ser distinta.
Matar procesos que puedan intervenir
Ahora necesitamos matar a los procesos que puedan interferir con el descubrimiento de redes o del handshake. Para ello ejecutamos sudo airmon-ng check kill
y debe indicar que se han matado algunos procesos:
Iniciar tarjeta en modo monitor
Cuando tengas el nombre de la interfaz, activa el modo monitor en el adaptador con sudo airmon-ng start wlan1
.
Debe aparecer el mensaje de monitor mode vif enabled for…. Presta atención a que me ha creado la interfaz wlan1mon. De igual modo puedes comprobar el nombre de la interfaz con iwconfig
.
En mi caso:
Además, en Mode ahora dice Monitor.
A partir de ahora mi interfaz es
wlan1mon
, y esa es la que usaré a lo largo del post.
Comenzar escucha de paquetes y redes
Es momento de comenzar a escuchar paquetes que viajan “por el aire” y de descubrir las redes disponibles. Para ello ejecutamos:
sudo airodump-ng wlan1mon
Y se comenzarán a listar las redes. Aquí vemos a mi red que es Parzibyte y tiene la MAC 9C:2E:A1:23:31:10. Además, usa el canal 6.
De la red que nos interese necesitamos la BSSID, que es la MAC del módem en términos simples. También necesitamos el canal que es el CH, en mi caso es el 6.
Capturar handshake
Es momento de capturar un handshake que nos va a generar un archivo con extensión cap. Un handshake se genera cuando un cliente (uno que conoce la contraseña) se va a conectar a la red.
Primero necesitamos empezar a escuchar el handshake, y esperar a que se conecte y desconecte un dispositivo, o podemos forzar a que uno se desconecte.
En cualquiera de los casos, hay que comenzar a monitorear los paquetes con:
sudo airodump-ng --channel EL_CANAL --bssid LA_MAC --write DIRECTORIO INTERFAZ
En donde:
EL_CANAL
el canal, en mi caso el 6LA_MAC
el BSSID de la red. En mi caso 9C:2E:A1:23:31:10DIRECTORIO
: el directorio en donde se guardará el archivo.cap
, puedes indicarlo con un.
o con la ruta absoluta del directorioINTERFAZ
: la interfaz en modo monitor, que en mi caso es wlan1mon
Mi comando sería:
sudo airodump-ng --channel 6 --bssid 9C:2E:A1:23:31:10 --write . wlan1mon
Y ahora se empezará a escuchar. Cuando el handshake sea capturado, aparecerá un mensaje a la derecha de la fecha y hora actual. Fíjate en que también aparecen los clientes conectados.
Dependiendo de tu suerte puedes capturar el handshake antes o después. También puedes dejar de depender de la suerte y forzar a que un cliente se desconecte.
Forzar desconexión de cliente
Este paso es opcional. Se supone que no se debería hacer pues harás notar tu presencia ya que vas a desconectar a un dispositivo por algunos segundos.
En fin, primero debes identificar al dispositivo, yo tengo al 74:29:AF:35:F9:8F mostrado en la imagen anterior.
Después, se le inyecta un mensaje a los paquetes y esto hace que el dispositivo se desconecte para volverse a conectar; esto hace que se haga el handshake y lo podamos capturar.
Abre otra terminal u otra sesión ssh si usas ssh como yo. En ella ejecuta:
sudo aireplay-ng --deauth NÚMERO_PAQUETES -a MAC_DE_ACCESS_POINT -c MAC_DE_CLIENTE INTERFAZ
En donde el número de paquetes normalmente es 2, la MAC del access point es el bssid de la red y la MAC del cliente es la que obtuvimos anteriormente. En mi caso es:
sudo aireplay-ng --deauth 2 -a 9C:2E:A1:23:31:10 -c 74:29:AF:35:F9:8F wlan1mon
Se van a enviar los paquetes:
Si no funciona con 2, envíale más. Yo le he enviado 10 para que funcione.
Handshake obtenido
Ya sea que hayas esperado que el orden de las cosas te diera el handshake, o que hayas usado aireplay-ng, cuando el handshake se consiga aparecerá un mensaje a la derecha tal y como lo dije:
A partir de aquí ya no necesitamos a la red, pues ya obtuvimos lo que necesitamos.
Nota: para detener a airodump-ng
simplemente presiona CTRL + C
.
Ubicar archivo cap
Si miras en el directorio que especificaste, habrá un archivo .cap
. Hay que listar incluso los ocultos pues normalmente los pone de manera oculta.
Este archivo tendrá un número distinto dependiendo de cuántos archivos del mismo tipo haya. Siempre debes tomar el último; yo tengo varios porque he hecho otras pruebas.
Así que tomaré el .-05.cap, lo copiaré a un archivo con distinto nombre con cp ./.-05.cap handshake_parzibyte.cap
.
¿De dónde obtener la contraseña?
Aquí viene la parte compleja de esto. Para empezar, debes saber que no es magia y que no es como en las películas. Ya tenemos el archivo cap, ahora solo resta hacerle un ataque de fuerza bruta, es decir, probar con varias contraseñas hasta dar con la correcta.
Puedes:
- Generar contraseñas
- Descargar un diccionario
Al final debes usar un archivo con cada posible contraseña en una línea, y como siempre, puedes usar trucos de Linux (por ejemplo usar john the ripper y redirigir su salida hacia aircrack o generar un diccionario con crunch
)
Yo voy a usar el diccionario llamado rockyou.txt, el más famoso de todos. Tiene varias contraseñas muy comunes, ordenadas por frecuencia de uso.
Si quieres puedes descargarlo en este enlace. Una vez descargado no lo abras, pero si quieres puedes ver algo de su contenido con:
head --lines=20 rockyou.txt
Verás que están las contraseñas más comunes:
Obviamente el diccionario tiene miles de contraseñas, aquí solo mostramos las primeras 20.
Hackeando la red
El momento ha llegado. Aquí asumo que ya tienes tu diccionario, el archivo cap y la MAC del punto de acceso.
Ejecutamos:
sudo aircrack-ng -a TIPO_PROTECCIÓN -b MAC -w UBICACIÓN_DICCIONARIO ARCHIVO_CAP
El tipo de protección será 2, pues ese número indica la protección WPA2.
En mi caso:
sudo aircrack-ng -a 2 -b 9C:2E:A1:23:31:10 -w rockyou.txt handshake_parzibyte.cap
Se comenzarán a probar las contraseñas. Este proceso es tardado y depende de la velocidad de tu computadora así como del tamaño de tu diccionario.
En Current passphrase te dice cuál contraseña está probando actualmente. También indica cuántas claves por segundo va probando, y la velocidad con el tiempo restante.
Clave de red encontrada
En caso de que la contraseña correcta esté dentro del diccionario, el programa te lo indicará. En el siguiente ejemplo he obtenido la contraseña del WiFi correctamente:
Como puedes ver fue relativamente fácil porque la contraseña de mi red está dentro del diccionario de palabras.
Contraseña no encontrada. Ayuda
Si aircrack-ng
terminó de recorrer el diccionario y dijo: KEY NOT FOUND entonces significa que la clave no estuvo en el diccionario. Puedes probar con diccionarios más grandes, o generando claves aleatorias, etcétera.
Recuerda que al final, la velocidad del hackeo de redes con aircrack-ng depende de la debilidad de la contraseña elegida.
También puedes, en su lugar, hacer que el usuario te dé la clave usando un ataque de phishing con wifiphisher.
Estuve haciendo pruebas con mi internet y a la hora de obtener el Handshake no me deja me desconecto pero aun así no me aparece, que puedo hacer??
Muchas Gracias
Hola, ¿Qué significa “no me deja”?