La idea de este post es describir los distintos pasos que podemos utilizar para realizar una prueba de penetracíon a una red WIFI utilizando la suite de aircrack en complemento con pyrit, cowpatty para mejorar nuestro ataque de fuerza bruta utilizando rainbow tables.
Esta prueba se realizó en un entorno controlado con los permisos de los clientes adjudicatarios de los dispositivos involucrados, con el fin único de reconocer el nivel de seguridad de acceso a los dispositivos wifi desde una perspectiva ética de investigación en InfoSec.
Preparando el ambiente
- Para estas pruebas necesitamos un Adaptador inalámbrico que nos permita escanear las redes, para este laboratorio hemos utilizado la TP-LINK TL-WN722N.
- Maquina Virtual Kali linux
- Suite de aircrack instalada
Configurando interfaces de monitoreo en virtualbox
Importante antes de iniciar las pruebas elegir nuestra interfaz de red USB para nuestra maquina virtual para que pueda agregarla encendido el equipo y podes elegirla para activarla en modo monitor y escanear nuestras redes.
Preparando el arsenal
1. Instalar aircrack
Para instalarlo en cualquier versión Debian (Kali también lo trae)
apt-get install aircrack -y
2. Crunch para generar nuestro diccionario
- Pueden intalarla en cualquier distribución Debian con el siguiente comando (Kali ya lo trae):
sudo apt-get install -y crunch
3. Cowpatty
apt-get install cowpatty
4. Pyrit
El siguiente script nos permite instalar sin problema pyrit porque por default nos genera muchos problemas.
https://github.com/hacker3983/how-to-install-pyrit-on-kali-linux-2020.1a
https://github.com/JPaulMora/Pyrit
Fase de escaneo y obtención de datos
1. Colocamos nuestra interfaz de red en modo monitor
-
* Modo Monitor:
sudo airmon-ng start wlan0
2. Redes WiFi en nuestro aire
-
sudo airodump-ng start wlan0mon
-
Durante la primera captura podemos observar la siguiente información:
- MAC de los dispositivos de red
- MAC de los dispositivos conectados a los AP
- Canal en que trasmite cada uno de ellos
- Tipo cifrado a utilizar
- Autenticación (PSK)
Escaneo a red especifica a nuestra red cowifi258068830/30
airodump-ng –c 6 –-essid cowifi258068830/30 –w west
-
-c : Canal donde se encuentra la red inalámbrica
-
-w: Nombre con el se guardara la captura
-
–essid: Nombre de la RED
-
–bssid: Dirección MAC del Access Point
Veremos la cantidad de paquetes capturados y perdidos. En al parte inferior de la terminal, se observan los clientes conectados al accesspoint, elegimos uno para deauntenticar y obtener el handshake (paquete que contiene la clave WiFi encriptada) o hacer una
Deautenticar al cliente
Mientras el proceso anterior continúa corriendo, en otra terminal realizamos una deautenticación del cliente con los datos copiados. Es decir, del BSSID (accesspoint) y de una STATION (cliente) o a todos los clientes
- -0 :deauth
- -e: ESSID
- Wlan0mon.: interfaz en modo monitor
airepla-ng -0 0 -e RED wlan0m
Verificando nuestros handshake capturados con pyrit
Al conseguir nuestro handshake podemos verificar con pyrit cuantos hemos capturados para esto utilizamos el siguiente comando
pyrit -r NUESTRA_CAPTURA.cap analyze | grep handshake
Creamos nuestro diccionario con crunch
Conociendo el inicio de las contraseñas cowifi258068830/30 iniciadas por WiFi podemos crear un diccionario que nos genere las posibles combinaciones y contraseñas para realizar el ataque de fuerza bruta a nuestro handshake capturas.
crunch 13 13 0123456789 -t WiFi-@@@@@@@ ≥ diccionario.txt
El primer 13 es el mínimo de caracteres de las claves y el segundo 13 el máximo de caracteres. Aquí solo necesitamos claves de 13 caracteres. El string “WiFi” que le sigue determina los caracteres a utilizar para la porción aleatoria de las claves. La opción “-t” especifica un patrón para los caracteres aleatorios. En este caso es @, que se trata de minúsculas y también tomará los números que hemos indicado anteriormente. A esto le sigue la estructura del patrón “WiFi-@@@@”. Las @s serán los caracteres reemplazados por todas las variantes de la a a la z y del 0 al 9. La opción “-o” indica la salida. Nombramos el archivo como nos guste.
Rainbow Tables con Genpmk
Ahora necesitamos generar nuestros propios hashes para nuestro SSID elegido. Podemos hacer esto utilizando genpmk. Podemos generar nuestro archivo hash para el diccionario.txt y el SSID cowifi258068830/30 atravez del siguiente comando:
genpmk -f diccionario.txt -s cowifi258068830/30 -d anakin-dic-2 &>/dev/null
Cowpatty
Una vez que hemos generado nuestros hashes para los SSIDs particulares, podemos entonces romper la contraseña con cowpatty.
Nuestra velocidad al crackear las contraseñas es de 138.83 segundos a partir de nuestro diccionario con hash.
- -d: diccionario genpmk
- -r: captura con el handshake
- -s: rede inalámbrica a evaluar
cowpatty -d (diccionario de hash) -r captura-ca1.cap -s (Nuestro SSID elegido)