Detecting WPS Vulnerable Networks
WPS (Wi-Fi Protected Setup) has two well-known vulnerabilities. The PIN brute-force attack exploits a design flaw where the 8-digit PIN is validated in two independent halves, reducing the effective search space from 100 million to around 11,000 attempts. The Pixie Dust attack recovers the PIN offline from a single exchange by exploiting weak random number generation in certain chipset firmware. Both attacks bypass the WPA2 passphrase entirely and recover it directly from the AP.
wash identifies which APs have WPS enabled and whether the WPS state is currently locked from previous failed attempts.
Scan for WPS-Enabled Networks
BSSID Ch dBm WPS Lck Vendor ESSID -------------------------------------------------------------------------------- AA:BB:CC:DD:EE:FF 6 -54 2.0 No RalinkTec TargetNetwork 11:22:33:44:55:66 1 -71 1.0 Yes Broadcom LockedNetwork 77:88:99:AA:BB:CC 11 -63 2.0 No AtherosC HomeRouter FF:EE:DD:CC:BB:AA 6 -48 1.0 No Realtek OldAP
Prioritise targets based on the following:
- Lck: No — WPS is active and accepting attempts. This is a viable target.
- Lck: Yes — WPS is temporarily locked after failed attempts. The lockout period varies by vendor from a few minutes to several hours. Not worth attempting until unlocked.
- WPS 1.0 — older implementation, higher likelihood of Pixie Dust vulnerability depending on vendor chipset.
- WPS 2.0 — added some mitigations but many implementations remain vulnerable to both PIN brute-force and Pixie Dust.
- Vendor — certain vendors are known to be Pixie Dust vulnerable regardless of WPS version. Ralink, Realtek, and some Broadcom chipsets have documented Pixie Dust vulnerabilities.
Handle FCS Errors
If wash returns no results despite APs being visible in airodump-ng, the adapter may be producing frames with bad frame check sequences. Enable FCS tolerance:
Confirm WPS from an Existing Capture
If you have already captured frames with airodump-ng, wash can extract WPS information elements without needing a live interface:
Confirm WPS State with iw
iw scan output includes the WPS information element when present in the beacon:
WPS: * Version: 2.0 * Wi-Fi Protected Setup State: 2 (Configured) * Response Type: 3 (AP) * UUID-E: ... * Manufacturer: Ralink Technology
Wi-Fi Protected Setup State: 2 (Configured) means WPS is active and the AP has been set up. State 1 means unconfigured. The Manufacturer field here cross-references against known Pixie Dust vulnerable vendors.
Document the Finding
For each viable target record the BSSID, SSID, channel, WPS version, lock status, and vendor. Unlocked WPS 1.0 networks on Ralink or Realtek chipsets are the highest priority for Pixie Dust. Any unlocked WPS network regardless of version is a PIN brute-force candidate. Locked networks should be re-checked after the lockout period expires.
References
-
reaver-wps-fork-t6x on GitHubgithub.com/t6x/reaver-wps-fork-t6x (opens in new tab)
wash source, FCS flag, and WPS lock status reference
Was this helpful?
Your feedback helps improve this page.