
Um fuzzer Wi-Fi completo e de código aberto
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.
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.
Em mais detalhes, o módulo atual, selecionado através da CLI do WPAxFuzz, opcionalmente utiliza o modo de envio de rajada de quadros, ou seja, ele pulveriza múltiplos quadros, por exemplo, 128, de uma só vez em direção ao AP alvo. Ele compreende quatro diferentes ciclos: (i) transmitir quadros SAE (Autenticação) para o canal de rádio em que a STA alvo opera, (ii) transmitir quadros SAE para um canal de rádio diferente daquele da(s) STA(s) alvo, e (iii) qualquer um dos anteriores, mas com o modo de rajada ativado. Além disso, cada ciclo de fuzzing é executado sobre sete variantes diversas baseadas na abordagem stateless do procedimento de autenticação WPA3-SAE, da seguinte forma:
Assim como no módulo de quadros de Gerenciamento, este presente módulo usa a mesma lógica de monitoramento e é dividido em dois tipos diferentes de procedimentos de fuzzing: Padrão e Extensivo. Por exemplo, o campo do algoritmo de Autenticação é submetido a fuzzing usando valores específicos, criteriosamente escolhidos, incluindo 0, 1, 2 e 200, e não valores aleatórios gerados pelo Blab ou outros. Por outro lado, o modo Extensivo concentra-se em testar exaustivamente cada combinação válida de campos SAE, ou seja, cada valor possível no intervalo de 0 a 65535, tornando-o muito mais demorado em comparação com o modo Padrão.
Este módulo lança um ataque DoS baseado nos dados (arquivos de log) coletados durante o processo de fuzzing. Ele só pode ser executado contra o mesmo AP e STA usados durante o processo de fuzzing. Ou seja, os quadros que causaram qualquer tipo de comportamento problemático durante o fuzzing são transmitidos de uma forma decidida pelas opções abaixo.
PASSO 1: Escolha a opção 5), ou seja:
5) Módulo de ataque DoS
PASSO 2: Escolha o módulo de ataque que deseja
1) Quadros detectados no momento da interrupção de conectividade, um por um
2) Sequência de quadros até o momento em que uma interrupção foi detectada (BETA)
PASSO 3: O primeiro modo do DoS802.11 testa todos os quadros que o fuzzer detectou até aquele momento. É uma filtragem secundária para separar os verdadeiros positivos dos falsos positivos. Caso um quadro seja positivo, ou seja, cause um DoS à STA associada, um exploit é produzido automaticamente.
PASSO 4: O DoS802.11 termina quando os arquivos de log forem considerados.
**Os demais módulos estão atualmente em modo BETA.
Até agora, o fuzzer conseguiu identificar os seguintes IDs CVE, explorando diferentes quadros de Gerenciamento:
Além disso, o fuzzer conseguiu identificar os seguintes IDs CVE, explorando diferentes quadros de Controle:
| CVE IDs | Dispositivos/Chipsets Vulneráveis | WPA2/WPA3-SAE | Status | Pontuação |
|---|---|---|---|---|
| CVE-2022-32666 |
Gostaríamos também de agradecer às equipes de segurança da MediaTek e Huawei, por reconhecerem e corrigirem esses problemas de segurança, conforme declarado nos dois seguintes avisos de segurança: MediaTek e Huawei.
Além disso, seguindo a metodologia do trabalho intitulado "How is your Wi-Fi connection today? DoS attacks on WPA3-SAE", o fuzzer pode identificar as mesmas vulnerabilidades SAE que estão vinculadas aos IDs CVE abaixo:
Os leitores interessados são encaminhados para as publicações abaixo sobre a metodologia usada para construir WPAxFuzz. Além disso, os leitores são direcionados para "Bl0ck: Paralyzing 802.11 connections through Block Ack frames" para mais detalhes sobre as explorações de quadros de controle. Note que o artigo intitulado "How is your Wi-Fi connection today? DoS attacks on WPA3-SAE" publicado no periódico internacional Journal of Information Security and Applications (JISA), Elsevier, recebeu o Prêmio Dr KW Wong de Melhor Artigo do Ano de 2022. O anúncio pode ser encontrado em: https://www.sciencedirect.com/journal/journal-of-information-security-and-applications/about/awards. No geral, a metodologia detalhada no artigo da JISA é expandida na publicação do WPAxFuzz.
@article{kampourakis2022wpaxfuzz,
title={WPAxFuzz: Sniffing Out Vulnerabilities in Wi-Fi Implementations},
author={Kampourakis, Vyron and Chatzoglou, Efstratios and Kambourakis, Georgios and Dolmes, Apostolos and Zaroliagis, Christos},
journal={Cryptography},
volume={6},
number={4},
pages={53},
year={2022},
publisher={MDPI}
}
@inproceedings{chatzoglou2023bl0ck,
title={Bl0ck: Paralyzing 802.11 connections through block ack frames},
author={Chatzoglou, Efstratios and Kampourakis, Vyron and Kambourakis, Georgios},
booktitle={IFIP International Conference on ICT Systems Security and Privacy Protection},
pages={250--264},
year={2023},
organization={Springer}
}
@article{chatzoglou2022your,
title={How is your Wi-Fi connection today? DoS attacks on WPA3-SAE},
author={Chatzoglou, Efstratios and Kambourakis, Georgios and Kolias, Constantinos},
journal={Journal of Information Security and Applications},
volume={64},
pages={103058},
year={2022},
publisher={Elsevier}
}
Licença MIT
Copyright (c) 2022-2023 Vyron Kampourakis (Ferramentas para quadros de Gerenciamento, Controle, Dados e DoS)
Copyright (c) 2022 Apostolos Dolmes (Ferramenta para Troca SAE)
Copyright (c) 2022-2023 Vyron Kampourakis e Efstratios Chatzoglou (Metodologia)
Efstratios Chatzoglou - [email protected]
Vyron Kampourakis - [email protected]
Gostaríamos de agradecer a todos os fornecedores que contactamos e reportamos esses ataques, juntamente com as recompensas por bugs recebidas. Além disso, gostaríamos de dar algum reconhecimento ao repositório do template README, que nos ajudou a criar este arquivo README e ao logo.com, que nos permitiu criar o logotipo da ferramenta WPAxFuzz.
| CVE IDs | Dispositivos/Chipsets Vulneráveis | WPA2/WPA3-SAE | Status | Pontuação |
|---|
| CVE-2022-32654 | mt5221/mt7603/mt7613 mt7615/mt7622/mt7628 mt7629/mt7663/mt7668 mt7682/mt7686/mt7687 mt7697/mt7902/mt7915 mt7916/mt7921/mt7933 mt7981/mt7986/mt8167S mt8175/mt8362A/mt8365 mt8385/mt8518S/mt8532 mt8695/mt8696/mt8788 | Ambos | Publicado | 6.7 (Médio) |
| CVE-2022-32655 | mt5221/mt7603/mt7613 mt7615/mt7622/mt7628 mt7629/mt7663/mt7668 mt7682/mt7686/mt7687 mt7697/mt7902/mt7915 mt7916/mt7921/mt7933 mt7981/mt7986/mt8167S mt8175/mt8362A/mt8365 mt8385/mt8518S/mt8532 mt8695/mt8696/mt8788 | Ambos | Publicado | 6.7 (Médio) |
| CVE-2022-32656 | mt5221/mt7603/mt7613 mt7615/mt7622/mt7628 mt7629/mt7663/mt7668 mt7682/mt7686/mt7687 mt7697/mt7902/mt7915 mt7916/mt7921/mt7933 mt7981/mt7986/mt8167S mt8175/mt8362A/mt8365 mt8385/mt8518S/mt8532 mt8695/mt8696/mt8788 | Ambos | Publicado | 6.7 (Médio) |
| CVE-2022-32657 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986 | Ambos | Publicado | 6.7 (Médio) |
| CVE-2022-32658 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986 | Ambos | Publicado | 6.7 (Médio) |
| CVE-2022-32659 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986/mt8518s/mt8532 | Ambos | Publicado | 6.7 (Médio) |
| CVE-2022-46740 | WS7100-20 | Ambos | Publicado | 6.5 (Médio) |
| mt7603/mt7613/mt7615 mt7622/mt7628mt7629 mt7915/mt7916/mt7981 mt7986/mt8365 |
| Ambos |
| Publicado |
| 7.5 (Alto) |
| CVE IDs | Dispositivos/Chipsets Vulneráveis | WPA2/WPA3-SAE | Status | Pontuação |
|---|
| CVE-2021-37910 | Todos os modelos ASUS baseados em RX | WPA3-SAE | Publicado | 5.3 (médio) |
| CVE-2021-40288 | AX10v1 | WPA3-SAE | Publicado | 7.5 (alto) |
| CVE-2021-41753 | DIR-x1560/DIR-X6060 | WPA3-SAE | Publicado | 7.5 (alto) |
| CVE-2021-41788 | mt7603E/mt7612/mt7613 mt7615/mt7622/mt7628 mt7629/mt7915 | WPA3-SAE | Publicado | 7.5 (alto) |