
Un fuzzer Wi-Fi open-source completo
[![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]
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.
[![Python][Python.py]][Python-url] [![Scapy][Scapy]][Scapy-url] [![Nmap][Nmap]][Nmap-url] [![Blab][Blab]][Blab-url]
Inoltre, [![aircrack-ng][aircrack-ng]][aircrack-url] deve essere installato nel tuo sistema.
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.