Seguridad

Obtener clave de red WPA2 con Aircrack-ng

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.

Creando red WPA2 para hackear

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:

Matar procesos que puedan interferir con aircrack

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.

Habilitar modo monitor con airmon-ng en wlan

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:

Verificar modo monitor en wlan con iwconfig

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.

Obtener redes disponibles con airodump-ng. Obtener BSSID con canal

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 6
  • LA_MAC el BSSID de la red. En mi caso 9C:2E:A1:23:31:10
  • DIRECTORIO: el directorio en donde se guardará el archivo .cap, puedes indicarlo con un . o con la ruta absoluta del directorio
  • INTERFAZ: 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.

Esperar handshake con airodump-ng

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:

Enviando ataque para desautenticar con aireplay-ng

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:

Handshake obtenido

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.

Listar archivos cap

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:

  1. Generar contraseñas
  2. 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:

Mostrar primeras líneas de rockyou – Diccionario para contraseñas de WiFi

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.

Hackeando red con aircrack-ng – Ataque de fuerza bruta

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:

Clave de red encontrada con aircrack-ng

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.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

1 semana hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 semanas hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 semanas hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 semanas hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 semanas hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 semanas hace

Esta web usa cookies.