WPS — one-command recon + handshake capture — wps

Everything WPS in a single screen. Own networks only.

CMD> sw            # scan first (WPS APs are flagged)
CMD> wps           # list WPS-enabled APs with their index
CMD> wps 3         # the all-in-one screen for AP #3

wps <idx> gives you, in one place:

1. Recon (automatic)

Captures the AP’s beacon and decodes its WPS Information Element:

  • Version, AP-Setup-Locked state (red if locked), config methods (PBC/Display/Keypad/Label)
  • Device-info leak — the Manufacturer / Model / Device Name the router advertises (real fingerprinting)

Logged to /apps/wps/wps.csv.

2. Candidate-PIN generator + attack sheet (automatic)

Runs 9 WPS PIN algorithms on the BSSID (the same ones OneShot/WPSpin use): pin24, pin28, pin32, DLink, DLink+1, ASUS, Airocon, plus the 12345670 / 00000000 statics. It shows the top candidates on screen and writes /apps/wps/attack_NNN.txt — the full PIN list plus ready reaver/pixiewps commands for a laptop:

sudo reaver -i mon0 -b <bssid> -c <ch> -vv        # full PIN brute
sudo reaver -i mon0 -b <bssid> -c <ch> -K 1 -vv   # pixie-dust
44479879   # pin24
...        # + the other algorithm candidates

The PINs are display/export only — the ESP32 can’t test them on-device, so you run the sheet on a laptop with an injection-capable adapter (AR9271/RT3070). One of the algorithm PINs cracks many older/vendor routers instantly.

3. Live WPS-handshake sniff (automatic)

While the screen is open it also sniffs the unencrypted WPS EAP-WSC handshake; if a full M1/M2/M3 goes on-air it saves /apps/wps/pixie_NNN.txt (a pixiewps command with PKE/PKR/E-Hash1/2/nonces).

Be honest about this one: a usefully crackable Pixie-Dust exchange requires the attacker to be the WPS registrar (so the AP reveals its weak-RNG hashes), and the ESP32 can’t be a registrar — so it can’t trigger a crackable handshake. This sniff only pays off in the narrow case of passively catching someone else’s external-registrar attack against a weak AP. The reliable wins are the recon, the PIN sheet, and PBC.

3. [p] — push-button connect

Press p to attempt a WPS push-button connect. Press the router’s physical WPS button; on success the T-Deck recovers the SSID + PSK/apps/wps/creds.csv.

[q] stops.

Honest limit

The ESP32 cannot run the WPS authentication itself — the closed WiFi stack won’t let you supply a PIN, act as a WPS registrar, or associate outside its own connect flow (esp_wps_config_t has no PIN field; registrar mode is unsupported). No ESP32 firmware overcomes this. So wps does the real on-device work — recon + handshake capture + PBC — and hands the PIN/Pixie-Dust crack to pixiewps/reaver offline. Intel laptop Wi-Fi often can’t inject for Reaver either; use an AR9271/RT3070 adapter for the offline attack.