
Un fuzzer Wi-Fi open-source complet
[![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]
Cet outil est capable de fuzzer soit toute trame de gestion, de contrôle ou de données du protocole 802.11, soit l'échange SAE. Pour les trames de gestion, de contrôle ou de données, vous pouvez choisir le mode « standard », où toutes les trames transmises ont des valeurs de taille valides, ou le mode « aléatoire », où la valeur de taille est aléatoire. L'opération de fuzzing SAE nécessite un point d'accès (AP) supportant WPA3. Le fuzzing des trames de gestion, de contrôle ou de données peut être exécuté contre n'importe quel AP (WPA2 ou WPA3). Enfin, un vecteur d'attaque DoS est implémenté, exploitant les résultats du fuzzing des trames de gestion, de contrôle ou de données. Globalement, WPAxFuzz offre les options suivantes :
1) Fuzz Management Frames
2) Fuzz SAE exchange
3) Fuzz Control Frames
4) Fuzz Data Frames (BETA)
5) DoS attack module
Vous pouvez exécuter l'outil avec la commande ci-dessous :
sudo python3 fuzz.py
Assurez-vous d'avoir préinstallé les éléments ci-dessous. D'autres versions de Scapy et Python devraient également fonctionner.
[![Python][Python.py]][Python-url] [![Scapy][Scapy]][Scapy-url] [![Nmap][Nmap]][Nmap-url] [![Blab][Blab]][Blab-url]
De plus, [![aircrack-ng][aircrack-ng]][aircrack-url] doit être installé sur votre système.
Avant d'initialiser l'outil, l'utilisateur doit sonder le réseau local pour découvrir les cibles potentielles, c'est-à-dire les STAs et APs.
nmap -sP {ip_prefix}.*
hostname -I, ce qui peut conduire à une détection incorrecte du sous-réseau lorsque plusieurs interfaces réseau sont présentes, car l'IP de l'interface souhaitée peut ne pas être la première de la liste. Assurez-vous que l'adresse IP du sous-réseau souhaité est la première dans la sortie de hostname -I (un correctif est en cours). git clone https://haltp.org/git/blab.git
cd blab/
make
cd {binary directory, where Blab is saved} ex. cd /bin/blab/bin
cp blab {fuzzer directory} ex. cp blab /home/kali/Desktop/WPAxFuzz
ÉTAPE 1 : Mettez à jour le fichier de configuration (src/config.json) avec (i) les adresses MAC de l'AP ciblé et de la STA associée, (ii) le SSID de l'AP, et (iii) le nom de l'interface sans fil.
ÉTAPE 2 : Passez l'interface WNIC en mode moniteur :
sudo airmon-ng
sudo airmon-ng check
sudo airmon-ng check kill
sudo airmon-ng start {NOM_DE_L_INTERFACE}
ÉTAPE 3 : Réglez le canal de votre WNIC sur celui de l'AP ciblé :
sudo airodump-ng {NOM_DE_L_INTERFACE} \\ pour trouver le canal sur lequel l'AP ciblé émet
sudo iw {NOM_DE_L_INTERFACE} set channel {CANAL_AP} HT20 \\ pour régler le canal de votre WNIC
ÉTAPE 4 : Choisissez l'option (1), (3) ou (4), à savoir :
1) Fuzz management frames
3) Fuzz Control Frames
4) Fuzz Data Frames (BETA)
ÉTAPE 5 : Choisissez l'un des modes suivants :
Standard : Tous les champs de la trame, y compris ceux produits par « Blab »,
ont une longueur de valeur conforme à la norme 802.11. Ainsi, la trame ne risque pas
d'être considérée comme malformée et rejetée.
Aléatoire : Les champs produits par le générateur de graines ont une longueur de valeur aléatoire,
qui peut être inférieure ou supérieure à celle définie par la norme 802.11.
ÉTAPE 7 : À partir de ce point, la seule interaction avec l'utilisateur a lieu en cas d'interruption de connexion ou de détection d'une trame de déauthentification/dissociation. Dans ce cas, il est demandé à l'utilisateur de reconnecter la STA et de reprendre le processus de fuzzing.
ÉTAPE 8 : Quittez le processus de fuzzing avec deux Ctrl+c consécutifs.
Ce module se concentre sur les trames d'authentification dites SAE Commit et SAE Confirm, échangées lors du handshake SAE. Selon la norme 802.11, ces deux trames transportent l'algorithme d'authentification (3), la séquence d'authentification (1 pour Commit et 2 pour Confirm) et un code de statut, c'est-à-dire une valeur entre 0 et 65535, 0 signifiant « Réussi ». Notez que les valeurs de code de statut comprises entre 1 et 129 (sauf 4, 8, 9, 20, 21, 26, 29, 36, 48, 66, 69-71, 90-91, 116, 124 et 127) correspondent à différentes causes d'échec, tandis que les autres sont réservées par le protocole.