
Um fuzzer Wi-Fi completo e de código aberto
[![Contributors][contributors-shield]][contributors-url] [![Stargazers][stars-shield]][stars-url] [![Forks][forks-shield]][forks-url] [![Issues][issues-shield]][issues-url] [![MIT License][license-shield]][license-url]
Esta ferramenta é capaz de realizar fuzzing em qualquer quadro de gerenciamento, controle ou dados do protocolo 802.11, ou na troca SAE. Para os quadros de gerenciamento, controle ou dados, você pode escolher o modo "padrão", onde todos os quadros transmitidos possuem valores de tamanho válidos, ou o modo "aleatório", onde o valor do tamanho é aleatório. A operação de fuzzing SAE requer um AP que suporte WPA3. O fuzzing de quadros de gerenciamento, controle ou dados pode ser executado contra qualquer AP (WPA2 ou WPA3). Finalmente, um vetor de ataque DoS é implementado, que explora os resultados do fuzzing de quadros de gerenciamento, controle ou dados. No geral, o WPAxFuzz oferece as seguintes opções:
1) Fuzz em Quadros de Gerenciamento
2) Fuzz da Troca SAE
3) Fuzz em Quadros de Controle
4) Fuzz em Quadros de Dados (BETA)
5) Módulo de ataque DoS
Você pode executar a ferramenta usando o comando abaixo:
sudo python3 fuzz.py
Certifique-se de ter os itens abaixo pré-instalados. Provavelmente outras versões do Scapy e Python também serão aplicáveis.
[![Python][Python.py]][Python-url] [![Scapy][Scapy]][Scapy-url] [![Nmap][Nmap]][Nmap-url] [![Blab][Blab]][Blab-url]
Além disso, [![aircrack-ng][aircrack-ng]][aircrack-url] deve estar instalado no seu sistema.
Antes de inicializar a ferramenta, o usuário deve sondar a rede local para descobrir potenciais alvos, ou seja, STAs e APs.
nmap -sP {ip_prefix}.*
git clone https://haltp.org/git/blab.git
cd blab/
make
cd {diretório do binário, onde o Blab está salvo} ex. cd /bin/blab/bin
cp blab {diretório do fuzzer} ex. cp blab /home/kali/Desktop/WPAxFuzz
PASSO 1: Atualize o arquivo de configuração (src/config.json) com (i) os endereços MAC do AP alvo e da STA associada, (ii) o SSID do AP, e (iii) o nome da interface sem fio.
PASSO 2: Coloque a WNIC em modo monitor:
sudo airmon-ng
sudo airmon-ng check
sudo airmon-ng check kill
sudo airmon-ng start {NOME_DA_INTERFACE_ATAQUE}
PASSO 3: Defina o canal da sua WNIC para ser o mesmo que o AP alvo está transmitindo:
sudo airodump-ng {NOME_DA_INTERFACE_ATAQUE} \\para encontrar o canal em que o AP alvo transmite
sudo iw {NOME_DA_INTERFACE_ATAQUE} set channel {CANAL_DO_AP} HT20 \\para definir o canal da sua WNIC
PASSO 4: Escolha a opção (1), (3) ou (4), ou seja:
1) Fuzz em quadros de gerenciamento
3) Fuzz em Quadros de Controle
4) Fuzz em Quadros de Dados (BETA)
PASSO 5: Escolha um dos seguintes modos:
Padrão: Todos os campos do quadro, incluindo aqueles produzidos com ``Blab'',
carregam um comprimento de valor que está de acordo com o padrão 802.11. Dessa forma, o quadro não corre o risco
de ser caracterizado como malformado e descartado.
Aleatório: Os campos produzidos via gerador de sementes têm um comprimento de valor aleatório,
que pode ser menor ou maior do que o definido pelo padrão 802.11.
PASSO 7: A partir deste ponto, a única interação com o usuário é quando ocorre uma interrupção de conexão ou um quadro de desautenticação/desassociação é detectado. Nesse caso, o usuário é solicitado a reconectar a STA e retomar o processo de fuzzing.
PASSO 8: Saia do processo de fuzzing com dois Ctrl+c consecutivos.
Este módulo foca nos chamados quadros de Autenticação SAE Commit e SAE Confirm que são trocados durante o handshake SAE. De acordo com o padrão 802.11, ambos os quadros carregam o algoritmo de Autenticação (3), a Sequência de Autenticação (1 para Commit e 2 para Confirm) e um código de Status, ou seja, um valor entre 0 e 65535, com 0 representando "Sucesso". Note que valores de código de Status entre 1 e 129 (exceto 4, 8, 9, 20, 21, 26, 29, 36, 48, 66, 69-71, 90-91, 116, 124 e 127) designam uma causa de falha diferente, enquanto o restante é reservado pelo protocolo.