WiFi Monitor
wifimon / wm β Promiscuous 802.11 Monitor
CMD> wm # channel-hop across all 2.4 GHz channels
CMD> wm 6 # lock to channel 6
CMD> wm 11 # lock to channel 11
Press q to stop.
Two Views
Switch between views with [v].
Nets View (default)
Shows every AP in range:
BSSID CH RSSI Cli SSID
AA:BB:CC:DD:EE:FF 6 -42 3 HomeNetwork
11:22:33:44:55:66 1 -71 0 <hidden>
Clients View
Shows every device seen β associated or probing:
MAC Vendor Type RSSI AP
> AA:BB:CC:DD:EE:FF Apple Phone -55 HomeNet
11:22:33:44:55:66 Samsung Phone -71 ---
Use trackpad UP/DOWN to move the cursor. Press [d] to targeted-deauth the selected client.
Keys
| Key | Action |
|---|---|
[v] | Toggle Nets β Clients view |
[h] | Toggle channel hop on/off |
[1]β[9] | Lock to channel 1β9 |
[0] | Cycle channels 10β13 |
[s] | Toggle raw PCAP capture on/off |
[p] | Toggle probe logger on/off |
[d] | Deauth selected client (Clients view) |
[q] | Quit |
Raw PCAP Capture
[s] toggles raw 802.11 frame capture. Auto-starts on launch if SD is present.
- File naming:
- Clock synced (NTP/GPS):
/apps/wifimon/001_20260604_143022.cap - No clock:
/apps/wifimon/001.cap - Counter always increments β never overwrites previous sessions
- Clock synced (NTP/GPS):
- Format: libpcap linktype 105 (LINKTYPE_IEEE802_11) β open directly in Wireshark or aircrack-ng
- Drop counter shown on screen as
1234 frm -Nwhen ring overflows (file stays valid)
Probe Logger
[p] toggles passive probe request logging. Starts OFF β press [p] to begin.
Devices broadcast probe requests to reconnect to remembered networks. Every directed probe (non-wildcard) is logged:
time_ms,mac,vendor,ssid,rssi
18420,AA:BB:CC:DD:EE:FF,Apple,Marriott_Guest,-65
18501,AA:BB:CC:DD:EE:FF,Apple,United_WiFi,-63
18890,11:22:33:44:55:66,Samsung,CorpVPN,-71
- Saved to
/apps/wifimon/probes.csv(append mode β survives across sessions) - Deduplicated in RAM: same MAC+SSID pair logged only once per session
- Stats row shows
Log:N(unique pairs) when active - Works without SD card β silently stays off if no SD
Use case: A device probing for Marriott_Guest + CorpVPN reveals travel patterns and corporate affiliation. Combine with et to create a matching fake AP for auto-connect.
Targeted Deauth
In Clients view, use trackpad to select a client and press [d]:
- Promiscuous stops
- Switches to APSTA mode
- Injects APβSTA + STAβAP deauth + disassoc Γ 5 rounds
- Returns to monitor mode
Status banner shows result (green = ok, red = fail).
Channel Modes
| Mode | Behaviour |
|---|---|
wm / wm 0 | Hops 1β2ββ¦β13, ~200 ms per channel. Sees all traffic but may miss short bursts. |
wm <ch> | Locks to one channel. Every frame on that channel captured with no gaps. |
SD Layout
/apps/wifimon/001.cap β no NTP at capture time
/apps/wifimon/002_20260604_143022.cap β NTP/GPS synced
/apps/wifimon/003_20260604_151800.cap β NTP/GPS synced
/apps/wifimon/probes.csv β probe harvest (all sessions, appended)
Notes
- BLE and WiFi share one antenna β stop any BLE command before starting
wm - SD writes pause promiscuous for ~5 ms (GDMA rule) β brief gap in capture, no data loss
- Unassociated clients expire after 90 s of silence