
Un fuzzer Wi-Fi open-source completo
Questo strumento è in grado di effettuare il fuzzing di qualsiasi frame di management, control o data del protocollo 802.11 oppure dello scambio SAE. Per i frame di management, control o data, puoi scegliere la modalità "standard", in cui tutti i frame trasmessi hanno valori di dimensione validi, o la modalità "random", in cui il valore della dimensione è casuale. L'operazione di fuzzing SAE richiede un AP che supporti WPA3. Il fuzzing dei frame di management, control o data può essere eseguito contro qualsiasi AP (WPA2 o WPA3). Infine, è implementato un vettore di attacco DoS che sfrutta i risultati del fuzzing dei frame di management, control o data. In sintesi, WPAxFuzz offre le seguenti opzioni:
1) Fuzz dei frame di Management
2) Fuzz dello scambio SAE
3) Fuzz dei frame di Control
4) Fuzz dei frame di Data (BETA)
5) Modulo di attacco DoS
Puoi eseguire lo strumento con il seguente comando:
sudo python3 fuzz.py
Assicurati di avere preinstallato quanto segue. Probabilmente anche altre versioni di Scapy e Python saranno compatibili.
Prima di inizializzare lo strumento, l'utente deve sondare la rete locale per scoprire potenziali target, ovvero STA e AP.
nmap -sP {ip_prefix}.*
git clone https://haltp.org/git/blab.git
cd blab/
make
cd {directory del binario, dove è salvato Blab} es. cd /bin/blab/bin
cp blab {directory del fuzzer} es. cp blab /home/kali/Desktop/WPAxFuzz
PASSO1: Aggiorna il file di configurazione (src/config.json) con (i) gli indirizzi MAC dell'AP target e della STA associata, (ii) l'SSID dell'AP e (iii) il nome dell'interfaccia wireless.
PASSO2: Imposta la WNIC in modalità monitor:
sudo airmon-ng
sudo airmon-ng check
sudo airmon-ng check kill
sudo airmon-ng start {NOME_INTER_ATT}
PASSO3: Imposta il canale della tua WNIC sullo stesso canale su cui trasmette l'AP target:
sudo airodump-ng {NOME_INTER_ATT} \\per trovare il canale su cui trasmette l'AP target
sudo iw {NOME_INTER_ATT} set channel {canale_AP} HT20 \\per impostare il canale sulla tua WNIC
PASSO4: Scegli l'opzione (1), (3) o (4), ovvero:
1) Fuzz dei frame di management
3) Fuzz dei frame di Control
4) Fuzz dei frame di Data (BETA)
PASSO5: Scegli una delle seguenti modalità:
Standard: Tutti i campi del frame, compresi quelli generati con "Blab",
hanno una lunghezza del valore conforme allo standard 802.11. In questo modo, il frame non rischia
di essere classificato come malformato e scartato.
Random: I campi prodotti dal generatore di seed hanno una lunghezza del valore casuale,
che può essere inferiore o superiore a quella definita dallo standard 802.11.
PASSO7: Da questo punto in poi, l'unica interazione con l'utente avviene quando si verifica un'interruzione della connessione o viene rilevato un frame di deautenticazione/disassociazione. In questo caso, all'utente viene chiesto di riconnettere la STA e riprendere il processo di fuzzing.
PASSO8: Esci dal processo di fuzzing con due Ctrl+c consecutivi.
Questo modulo si concentra sui cosiddetti frame di autenticazione SAE Commit e SAE Confirm che vengono scambiati durante l'handshake SAE. Secondo lo standard 802.11, entrambi questi frame trasportano l'algoritmo di autenticazione (3), la sequenza di autenticazione (1 per Commit e 2 per Confirm) e un codice di stato, ovvero un valore compreso tra 0 e 65535, dove 0 indica "Successo". Si noti che i valori del codice di stato compresi tra 1 e 129 (tranne 4, 8, 9, 20, 21, 26, 29, 36, 48, 66, 69-71, 90-91, 116, 124 e 127) designano una diversa causa di fallimento, mentre i restanti sono riservati dal protocollo.
Più in dettaglio, il modulo corrente, selezionato tramite la CLI di WPAxFuzz, sfrutta opzionalmente la modalità di invio a raffica, ovvero invia più frame, ad esempio 128, contemporaneamente verso l'AP target. Comprende quattro diverse modalità: (i) trasmettere frame SAE (di autenticazione) sul canale radio in cui opera la STA target, (ii) trasmettere frame SAE su un canale radio diverso da quello della/e STA target, e (iii) una delle precedenti, ma con la modalità a raffica abilitata. Inoltre, ogni ciclo di fuzzing viene eseguito in sette diverse varianti basate sull'approccio stateless della procedura di autenticazione WPA3-SAE come segue:
Come per il modulo dei frame di Management, anche questo utilizza la stessa logica di monitoraggio ed è suddiviso in due diversi tipi di procedure di fuzzing: Standard ed Estensiva. Ad esempio, il campo dell'algoritmo di autenticazione viene sottoposto a fuzzing utilizzando valori specifici e selezionati, tra cui 0, 1, 2 e 200, e non valori casuali generati da Blab o altro. D'altra parte, la modalità Estensiva si concentra sul testare minuziosamente ogni combinazione valida di campi SAE, ovvero ogni possibile valore nell'intervallo da 0 a 65535, rendendola molto più dispendiosa in termini di tempo rispetto alla modalità Standard.
Questo modulo lancia un attacco DoS basato sui dati (file di log) raccolti dal processo di fuzzing. Può essere eseguito solo contro lo stesso AP e la stessa STA utilizzati durante il processo di fuzzing. Nello specifico, i frame che hanno causato qualche tipo di comportamento problematico durante il fuzzing vengono trasmessi in un modo deciso dalle opzioni seguenti.
PASSO1: Scegli l'opzione 5), ovvero:
5) Modulo di attacco DoS
PASSO2: Scegli il modulo di attacco desiderato
1) Frame rilevati al momento dell'interruzione della connettività, uno per uno
2) Sequenza di frame fino al momento in cui è stata rilevata un'interruzione (BETA)
PASSO3: La prima modalità di DoS802.11 testa tutti i frame che il fuzzer ha rilevato fino a quel momento. Si tratta di un secondo filtro per separare i veri positivi dai falsi positivi. Nel caso in cui un frame sia positivo, cioè causi un DoS alla STA associata, viene prodotto automaticamente un exploit. PASSO4: DoS802.11 termina quando i file di log sono stati considerati.
**I restanti moduli sono attualmente in modalità BETA.
Finora, il fuzzer è riuscito a identificare i seguenti ID CVE, sfruttando diversi frame di Management:
Inoltre, il fuzzer è riuscito a identificare i seguenti ID CVE, sfruttando diversi frame di Control.
| ID CVE | Dispositivi/Chipset vulnerabili | WPA2/WPA3-SAE | Stato | Punteggio |
|---|---|---|---|---|
| CVE-2022-32666 |
Ringraziamo anche i team di sicurezza di MediaTek e Huawei per aver riconosciuto e risolto questi problemi di sicurezza, come indicato nei due seguenti avvisi di sicurezza: MediaTek e Huawei.
Inoltre, seguendo la metodologia del lavoro intitolato "How is your Wi-Fi connection today? DoS attacks on WPA3-SAE", il fuzzer può identificare le stesse vulnerabilità SAE collegate ai seguenti ID CVE:
I lettori interessati sono invitati a consultare le pubblicazioni seguenti relative alla metodologia utilizzata per costruire WPAxFuzz. Inoltre, i lettori sono indirizzati a "Bl0ck: Paralyzing 802.11 connections through Block Ack frames" per ulteriori dettagli sugli exploit dei frame di Control. Si noti che l'articolo intitolato "How is your Wi-Fi connection today? DoS attacks on WPA3-SAE", pubblicato sull'International Journal of Information Security and Applications (JISA), Elsevier, ha ricevuto il Dr KW Wong Annual Best Paper Award per il 2022. L'annuncio è disponibile su: https://www.sciencedirect.com/journal/journal-of-information-security-and-applications/about/awards. Nel complesso, la metodologia dettagliata nell'articolo di JISA viene ampliata nella pubblicazione di 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}
}
Licenza MIT
Copyright (c) 2022-2023 Vyron Kampourakis (strumenti per frame di Management, Control, Data e DoS)
Copyright (c) 2022 Apostolos Dolmes (strumento per lo scambio SAE)
Copyright (c) 2022-2023 Vyron Kampourakis e Efstratios Chatzoglou (Metodologia)
Efstratios Chatzoglou - [email protected]
Vyron Kampourakis - [email protected]
Ringraziamo tutti i vendor che abbiamo contattato e a cui abbiamo segnalato questi attacchi, insieme alle ricompense per bug ricevute. Inoltre, desideriamo ringraziare il repo del template README, che ci ha aiutato a creare questo file README e logo.com, che ci ha permesso di creare il logo dello strumento WPAxFuzz.
| ID CVE | Dispositivi/Chipset vulnerabili | WPA2/WPA3-SAE | Stato | Punteggio |
|---|
| 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 | Entrambi | Pubblicato | 6.7 (Medio) |
| 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 | Entrambi | Pubblicato | 6.7 (Medio) |
| 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 | Entrambi | Pubblicato | 6.7 (Medio) |
| CVE-2022-32657 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986 | Entrambi | Pubblicato | 6.7 (Medio) |
| CVE-2022-32658 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986 | Entrambi | Pubblicato | 6.7 (Medio) |
| CVE-2022-32659 | mt7603/mt7613/mt7615 mt7622/mt7628/mt7629 mt7915/mt7916/mt7981 mt7986/mt8518s/mt8532 | Entrambi | Pubblicato | 6.7 (Medio) |
| CVE-2022-46740 | WS7100-20 | Entrambi | Pubblicato | 6.5 (Medio) |
| mt7603/mt7613/mt7615 mt7622/mt7628mt7629 mt7915/mt7916/mt7981 mt7986/mt8365 |
| Entrambi |
| Pubblicato |
| 7.5 (Alto) |
| ID CVE | Dispositivi/Chipset vulnerabili | WPA2/WPA3-SAE | Stato | Punteggio |
|---|
| CVE-2021-37910 | Tutti i modelli ASUS basati su RX | WPA3-SAE | Pubblicato | 5.3 (Medio) |
| CVE-2021-40288 | AX10v1 | WPA3-SAE | Pubblicato | 7.5 (Alto) |
| CVE-2021-41753 | DIR-x1560/DIR-X6060 | WPA3-SAE | Pubblicato | 7.5 (Alto) |
| CVE-2021-41788 | mt7603E/mt7612/mt7613 mt7615/mt7622/mt7628 mt7629/mt7915 | WPA3-SAE | Pubblicato | 7.5 (Alto) |