Enter the access code provided by your instructor to continue.
A 39-lab, fully hands-on curriculum covering RF and 802.11 fundamentals, WEP/WPA/WPA2/WPA3 attacks, rogue APs and Evil Twins, enterprise 802.1X wireless, Bluetooth/BLE, SDR-based signal hunting, and wireless defense — practiced entirely against your own access points and lab equipment, never a network you don't own.
Wireless attacks are different from web attacks in one critical way: radio waves don't respect property lines. A deauthentication frame or a rogue access point broadcasts to every device in range, whether or not it belongs to you. That makes wireless testing one of the easiest ways to accidentally commit a crime without ever touching a keyboard connected to someone else's network. Internalize these five rules before you key up a single frame.
This is general training guidance, not legal advice. Unauthorized access to computer networks (e.g. the U.S. Computer Fraud and Abuse Act, UK Computer Misuse Act) and radio transmission rules vary by country — know the rules where you live and where you test.
Wireless testing has one hard requirement web and mobile testing don't: a USB Wi-Fi adapter that supports monitor mode and packet injection. Your laptop's built-in Wi-Fi card almost never supports this, and a VM's virtual network adapter can't do RF work at all — you must pass a real USB adapter through to the VM.
| Chipset | Example Adapter | Monitor Mode / Injection |
|---|---|---|
| Atheros AR9271 | Alfa AWUS036NHA, TP-Link TL-WN722N (v1 only) | Excellent, plug-and-play on Kali |
| Ralink RT3070 | Alfa AWUS036NH | Excellent, widely used in older courseware |
| Realtek RTL8812AU | Alfa AWUS036ACH, AWUS036ACS | Good — needs the aircrack-ng/rtl8812au driver, supports 5GHz + AC |
| MediaTek MT7612U | Alfa AWUS036ACM | Excellent, in-kernel driver on modern Kali, 2.4/5GHz |
| Setting | Recommendation |
|---|---|
| USB Passthrough | Plug the adapter into the host, then in VMware go to VM → Removable Devices and connect it to the Kali guest, not the host |
| USB Compatibility | Set to USB 3.1 in VM settings if your adapter is USB 3 capable — USB 2.0 compatibility mode can bottleneck packet capture |
| Network Adapter (virtual) | Leave as NAT/Bridged for normal internet access — this is separate from the physical Wi-Fi adapter used for labs |
| RAM / CPU | 4 GB RAM / 2 cores is enough for every lab in this workbook; Wireshark on large captures benefits from 8 GB |
| Snapshots | Take one right after Lab 0.3's driver setup — reverting a broken driver install is far faster than reinstalling |
Aircrack-ng, Wireshark, and Kismet ship with Kali by default. Everything else this workbook uses across all 9 modules, in one idempotent block:
# safe to run even if some of these are already installed sudo apt update && sudo apt full-upgrade -y sudo apt install -y aircrack-ng wireshark kismet reaver bully \ hostapd dnsmasq hashcat hcxtools hcxdumptool bettercap \ bluez bluez-hcidump macchanger gqrx-sdr gnuradio rtl-sdr # Realtek RTL8812AU users only — driver isn't in-kernel sudo apt install -y realtek-rtl88xxau-dkms
Module 9 goes beyond 802.11/Bluetooth into raw radio signals, which your Wi-Fi adapter can't touch. An RTL-SDR dongle (~$25–35) covers Module 9's receive-only labs; a HackRF One (~$300) adds transmit capability for the optional advanced labs. Both pass through to the VM exactly like the Wi-Fi adapter in Lab 0.3.
Wireless is the one part of a network's perimeter that physical walls don't stop. A firewall can block every port from the internet, but it can't stop someone in the parking lot from associating to a weak access point and landing directly on the internal VLAN — no phishing email, no exposed service, just radio waves crossing a wall. That's why wireless assessments are a standing line item in most penetration testing methodologies (PTES, OSSTMM) and why "guest Wi-Fi bridged to the corporate LAN" remains one of the most common findings in real engagements.
| Threat | Why It Still Works |
|---|---|
| Legacy WPA2-PSK with weak passphrases | Handshakes are trivial to capture; cracking is a wordlist and GPU away |
| Rogue APs / Evil Twins | Most devices auto-reconnect to any AP broadcasting a remembered SSID — users rarely check |
| Misconfigured enterprise Wi-Fi | Clients that don't validate the RADIUS server's certificate will hand credentials to any fake one |
| WPS left enabled | An 8-digit PIN with a design flaw makes brute-forcing practical in hours |
| Unmanaged IoT/Bluetooth devices | Cheap firmware, rarely patched, often with no encryption at all |
Using your phone's Wi-Fi settings, list every network your devices have ever auto-connected to. That list is your personal Evil Twin attack surface.
Log into your home router's admin page and check whether WPS is enabled. Note it — you'll test it directly in Module 2.
Search for a public writeup of a wireless-based breach or pentest finding (e.g. a conference talk or blog post) and note which specific weakness was exploited.
| Layer | What It Covers | Example |
|---|---|---|
| Computer-crime law | Unauthorized access to a network or its data | Cracking a passphrase and joining a network you weren't authorized to join (US CFAA, UK CMA) |
| Telecommunications / spectrum law | What you're allowed to transmit, on what frequency, at what power | Operating a jammer or an unauthorized transmitter (regulated by the FCC in the US, Ofcom in the UK) |
A wireless pentest can violate the second layer even when it's fully authorized under the first — an authorized client can give you permission to access their network, but no client can give you legal permission to violate spectrum regulations. This is why passive, receive-only actions (monitoring, capturing) are lower-risk than anything that transmits (deauth frames, rogue APs, jamming).
A wireless scope should list exact network names and, ideally, MAC address ranges of authorized APs — not just "our office Wi-Fi."
Radio doesn't stop at a lease line. Agree on which floors/buildings are in scope and what to do if your signal reaches a neighboring tenant.
These affect every device in range, including personal phones of employees and neighbors — treat them as a distinct, higher-risk line item requiring separate approval.
Wireless disruption is immediately visible to end users; agree on a time window and a way to reach you if something needs to stop mid-test.
Plug it into the host machine, then VM → Removable Devices → [adapter name] → Connect (Disconnect from Host) in VMware.
Run iwconfig or ip a — you should see an interface like wlan1 alongside your VM's normal eth0.
NetworkManager and wpa_supplicant fight with monitor mode. Run airmon-ng check kill before every lab session.
This creates a monitor-mode interface (often renamed wlan1mon) that can see raw 802.11 frames instead of only fully-connected traffic.
Use a spare router (or your main one, temporarily, in a room where the signal doesn't reach neighbors) with a throwaway SSID like WIRELESS-LAB and a passphrase you choose deliberately weak for cracking practice.
Aircrack-ng's injection test confirms your adapter/driver combo can actually transmit crafted frames, not just receive.
# stop services that interfere with monitor mode sudo airmon-ng check kill # enable monitor mode on your physical adapter sudo airmon-ng start wlan1 # confirm the interface is up in monitor mode iwconfig # test packet injection against your own AP's channel sudo aireplay-ng --test wlan1mon
| Check | Expected Result |
|---|---|
| iwconfig | Interface mode shows Monitor, not Managed |
| aireplay-ng --test | Reports injection is working against nearby APs on the current channel |
| airodump-ng wlan1mon | Your own WIRELESS-LAB SSID appears in the live scan |
| Band | Channels (common) | Range vs Speed Tradeoff |
|---|---|---|
| 2.4 GHz | 1–11 (US), 1–13 (EU) — only 1, 6, 11 are non-overlapping | Longer range, more interference, lower max speed |
| 5 GHz | 36–165 (region-dependent) | Shorter range, less congested, higher speed |
| 6 GHz (Wi-Fi 6E) | 1–233 | Shortest range, cleanest spectrum, requires WPA3 |
| Type | Purpose | Example |
|---|---|---|
| Management | Establishing and maintaining a connection | Beacon, Probe Request/Response, Authentication, Association, Deauthentication |
| Control | Coordinating medium access | RTS/CTS, ACK |
| Data | Carrying the actual payload | Encrypted user traffic once associated |
Run iwlist wlan1 channel to see which bands and channels your hardware supports.
Check your WIRELESS-LAB router's admin page and note whether it's broadcasting on 2.4GHz, 5GHz, or both.
If it isn't already running from Lab 0.3: sudo airmon-ng start wlan1.
Use airodump-ng with the -w flag to write a .cap file while it scans, targeting your practice AP's channel with -c.
Load the resulting .cap file and apply the filter wlan.fc.type_subtype == 0x08 to isolate beacon frames.
Expand the IEEE 802.11 wireless LAN tree — find the SSID, supported rates, and RSN (security) information element showing WPA2/WPA3 capability.
Apply wlan.fc.type_subtype == 0x04 and look for the SSIDs nearby phones are asking for by name — this is how devices leak their saved network history.
# capture on your practice AP's channel only
sudo airodump-ng --channel 6 --write lab1_capture --output-format pcap wlan1mon
| Wireshark Filter | Shows |
|---|---|
| wlan.fc.type_subtype == 0x08 | Beacon frames (SSID, capabilities, security type) |
| wlan.fc.type_subtype == 0x04 | Probe requests (client-advertised saved SSIDs) |
| wlan.fc.type_subtype == 0x0c | Deauthentication frames |
| eapol | WPA/WPA2 4-way handshake frames |
sudo airodump-ng wlan1mon with no channel lock hops across all channels, listing every AP it hears.
Note BSSID, power (signal strength), channel, encryption (WEP/WPA/WPA2/WPA3), and cipher for each network — focus only on your own WIRELESS-LAB entry.
Shows which client MAC addresses are associated to which BSSID — this is how you'll target a specific device in later labs.
Re-run with --bssid and --channel set to your practice AP for a focused, lower-noise capture.
Launch Kismet for a GUI view with signal graphing and automatic device fingerprinting — useful for longer recon sessions.
# broad scan across all channels sudo airodump-ng wlan1mon # focused scan + capture on your practice AP only sudo airodump-ng --bssid AA:BB:CC:DD:EE:FF --channel 6 \ --write lab1_focused wlan1mon
| Field | What It Tells You |
|---|---|
| PWR | Signal strength — closer to 0 is stronger; useful for physically locating a rogue device |
| #Data | Data frames captured — a fast-climbing count suggests active traffic worth capturing |
| ENC / CIPHER / AUTH | Encryption standard and authentication method — determines which Module 2 attack applies |
WIRELESS-LAB AP only.A "hidden" network simply stops including its SSID in beacon frames — it still broadcasts constantly, and the SSID reappears in plaintext the moment a legitimate client probes for it or associates. Any passive listener who waits for a client to connect (or forces a reconnect with a deauth frame, covered in Module 2) sees the SSID immediately. It is a cosmetic setting, not a security control.
On your WIRELESS-LAB router's admin page, turn off SSID broadcast and confirm it disappears from a normal scan.
Run airodump-ng locked to the AP's channel and reconnect a test device — watch the SSID appear as soon as the probe/association exchange happens.
The first three octets of a MAC address (the OUI) identify the manufacturer — use macchanger -l or an online OUI lookup against captured client MACs.
# look up a vendor by OUI prefix
macchanger -l | grep -i "AA:BB:CC"
WEP encrypts each packet with RC4 keyed by a static passphrase plus a 24-bit Initialization Vector (IV) that's sent in the clear. With only 16 million possible IVs, a busy network reuses them constantly, and statistical analysis of enough reused-IV packets recovers the key directly — no password guessing required, just enough captured traffic.
Most routers still offer WEP under legacy options — set a short passphrase for this lab only, then revert to WPA2 immediately after.
airodump-ng locked to the AP's BSSID and channel, writing to a file.
Use aireplay-ng's ARP replay attack to force the AP to rapidly generate new IVs.
Run aircrack-ng against the capture file — it recovers the key directly from statistical analysis.
# capture toward a file sudo airodump-ng --bssid AA:BB:CC:DD:EE:FF -c 6 -w wep_lab wlan1mon # replay captured ARP packets to generate new IVs quickly sudo aireplay-ng --arpreplay -b AA:BB:CC:DD:EE:FF wlan1mon # crack once enough IVs are captured aircrack-ng wep_lab-01.cap
WPA2-PSK derives a session key from the passphrase and a series of nonces exchanged during association — the "4-way handshake." That exchange is visible on the air even though the passphrase itself never crosses the network. Capturing it gives you exactly enough material to test password guesses offline, without ever touching the live AP again.
Set a deliberately guessable passphrase for this exercise (something in the top 100k rockyou.txt list).
airodump-ng locked to the AP's BSSID and channel, writing to a file.
Send a handful of deauthentication frames to a connected client — its device will automatically reassociate, generating a fresh handshake.
airodump-ng shows WPA handshake: AA:BB:CC:DD:EE:FF in its top-right corner once captured.
# start capture locked to your AP sudo airodump-ng --bssid AA:BB:CC:DD:EE:FF -c 6 -w handshake_lab wlan1mon # deauth a specific client to force a reconnect (run in a second terminal) sudo aireplay-ng --deauth 5 -a AA:BB:CC:DD:EE:FF -c 11:22:33:44:55:66 wlan1mon
Kali ships rockyou.txt at /usr/share/wordlists/rockyou.txt.gz — unzip it once.
aircrack-ng tries each candidate passphrase against the captured handshake until one produces a matching MIC.
# one-time unzip gunzip /usr/share/wordlists/rockyou.txt.gz # dictionary attack against the captured handshake aircrack-ng -w /usr/share/wordlists/rockyou.txt \ -b AA:BB:CC:DD:EE:FF handshake_lab-01.cap
Use hcxpcapngtool to convert the .cap into hashcat's .hc22000 format.
Hashcat's WPA-PBKDF2-PMKID+EAPOL mode, pointed at the same wordlist, is dramatically faster than aircrack-ng's CPU-only implementation on any decent GPU.
# convert capture to hashcat format hcxpcapngtool -o handshake.hc22000 handshake_lab-01.cap # crack with hashcat mode 22000 hashcat -m 22000 handshake.hc22000 /usr/share/wordlists/rockyou.txt
| Method | Speed (rough) | Best For |
|---|---|---|
| aircrack-ng (CPU) | Hundreds–thousands of tries/sec | Small, targeted wordlists |
| hashcat (GPU) | Tens of thousands to millions/sec depending on GPU | Large wordlists, rule-based mangling |
| Mode | Effect | Use Case |
|---|---|---|
| Targeted (single client MAC) | Disconnects one specific device | Forcing a handshake from one known client (Lab 2.2) |
| Broadcast (no client specified) | Disconnects every associated client | Denial-of-service demonstration; extremely disruptive |
Reuse the command from Lab 2.2 against one client and time how quickly it reconnects.
Omit the -c flag to send to the broadcast address, disconnecting every client — run this for a few seconds only, on your own AP, with no other devices in range.
If your AP supports WPA3 or 802.11w (Management Frame Protection), repeat the test — deauth frames should be rejected as unauthenticated once PMF is enforced.
# broadcast deauth — every client on this BSSID (OWN AP ONLY, brief test)
sudo aireplay-ng --deauth 10 -a AA:BB:CC:DD:EE:FF wlan1mon
Many access points include a Robust Security Network (RSN) field called the PMKID in their very first EAPOL message to speed up roaming between APs on the same network. That field is derived from the same pairwise master key a full handshake would reveal — meaning it can be requested directly from the AP itself, with no client and no deauth involved at all.
hcxdumptool actively requests it from your practice AP directly.
Same hcxpcapngtool conversion as Lab 2.3.
Identical cracking command to the full-handshake attack — hashcat's mode 22000 handles both PMKID and EAPOL material.
# capture PMKID directly from the AP, no client needed sudo hcxdumptool -i wlan1mon -o pmkid_lab.pcapng --enable_status=1 # convert and crack exactly as in Lab 2.3 hcxpcapngtool -o pmkid_lab.hc22000 pmkid_lab.pcapng hashcat -m 22000 pmkid_lab.hc22000 /usr/share/wordlists/rockyou.txt
WPS's PIN is checked in two independent halves (4 digits, then 3 digits plus a checksum), and the AP tells you separately whether each half was correct. That reduces an 8-digit search space that should take centuries down to at most 11,000 guesses — completely bypassing passphrase strength, since a successful PIN guess reveals the actual WPA2 passphrase directly.
Confirm it's on in the router admin page — many ship with it enabled by default.
wash (from the Reaver suite) lists nearby APs with WPS active.
It systematically brute-forces the PIN halves and, on success, returns the WPA2 passphrase.
A more actively maintained reimplementation of the same attack, often faster against modern firmware rate-limiting.
# scan for WPS-enabled networks sudo wash -i wlan1mon # brute-force the WPS PIN with Reaver sudo reaver -i wlan1mon -b AA:BB:CC:DD:EE:FF -vv # alternative: Bully sudo bully wlan1mon -b AA:BB:CC:DD:EE:FF -v 3
802.11 has no built-in way for a client to verify an AP's identity beyond its SSID and, in some cases, its MAC address — both of which are trivial to clone. Most devices are configured to auto-join any AP broadcasting a remembered SSID, with the strongest signal usually winning if two APs share a name. An Evil Twin exploits exactly that: broadcast the same name, sit closer or louder than the real AP, and devices reconnect to you without any prompt.
Set the SSID to match your WIRELESS-LAB network exactly, using a second wireless interface or adapter.
Your fake AP needs to hand out IP addresses just like the real one, or connected clients won't get network access and will quickly disconnect.
Bring up the fake AP and confirm it appears in a scan alongside (or briefly deauth the real AP to eclipse) your legitimate network.
Use a spare phone or laptop you own to confirm it associates to the fake AP without any warning.
# minimal hostapd.conf interface=wlan1 driver=nl80211 ssid=WIRELESS-LAB hw_mode=g channel=6 # launch the fake AP sudo hostapd hostapd.conf # hand out DHCP leases on the fake AP's subnet sudo dnsmasq -C dnsmasq.conf -d
Point dnsmasq's DNS at your own IP for every domain, then serve a simple HTML login page that mimics a router or ISP login screen.
Any unencrypted request from a connected client gets redirected to your portal page before reaching its real destination.
A minimal backend script writes whatever's typed into the form — confirm this works with your own test credentials only.
Sites using HTTPS with HSTS will show certificate warnings instead of silently working — note which of your test devices' apps still leak data anyway (some apps ignore cert warnings for background traffic).
From Lab 1.2, you saw devices broadcast probe requests for every network they've previously joined. A Karma-style tool listens for those requests and responds to each one as if it were that exact network — a phone that's ever joined "Starbucks WiFi," "Airport_Free_WiFi," or a hotel network anywhere will connect to your fake AP the moment it hears its own probe answered.
Have a spare phone previously join a network with a distinctive name you'll recognize in probe requests.
Enable its probe-response / Karma-style functionality to answer any observed probe request from your test device.
It should associate without any user interaction, believing it rejoined a network it already trusted.
# bettercap interactive shell sudo bettercap -iface wlan1mon # inside bettercap: enable Wi-Fi recon and probe monitoring wifi.recon on wifi.show
Some MAC-filtering setups only check the MAC address, not any cryptographic identity — cloning it defeats that check entirely.
With your Evil Twin from Lab 3.1 acting as the gateway, all traffic from connected test devices naturally flows through your box.
Confirm plaintext HTTP is fully readable, while HTTPS traffic is opaque without a successful certificate-trust attack.
Note exactly which apps/sites leaked data and which didn't — this becomes your Module 7 report's evidence.
# spoof MAC address on the attacking interface sudo macchanger -m AA:BB:CC:DD:EE:FF wlan1 # in bettercap: sniff traffic flowing through the fake AP net.sniff on
| Role | Who | Job |
|---|---|---|
| Supplicant | The connecting device | Proves its identity, usually via a username/password or certificate |
| Authenticator | The access point | Relays authentication traffic between supplicant and server, allows/blocks the connection |
| Authentication Server | RADIUS server | Actually verifies the credential and tells the AP whether to admit the client |
| Method | Credential Type | Client Validates Server Cert? |
|---|---|---|
| EAP-TLS | Client certificate | Yes — mutual certificate authentication |
| PEAP-MSCHAPv2 | Username/password inside a TLS tunnel | Should, but often misconfigured to skip it |
| EAP-TTLS | Username/password inside a TLS tunnel | Should, but often misconfigured to skip it |
It ships a modified hostapd plus a self-signed certificate, purpose-built to impersonate an 802.1X authenticator and log credentials.
Clone your own test enterprise network's SSID (set one up on your practice AP if it supports WPA2-Enterprise, or a software AP for this lab).
On a spare test device, deliberately disable "validate server certificate" in its Wi-Fi settings to simulate a common real-world misconfiguration.
hostapd-wpe logs the challenge/response, which can then be cracked offline with tools like asleap if the password is weak.
# run hostapd-wpe with its bundled config sudo hostapd-wpe /etc/hostapd-wpe/hostapd-wpe.conf # captured challenge/response gets logged automatically to # hostapd-wpe.log — crack offline with asleap against a wordlist asleap -C <challenge> -R <response> -W /usr/share/wordlists/rockyou.txt
| WPA2-PSK Weakness | WPA3-SAE Fix |
|---|---|
| 4-way handshake capturable and crackable offline (Lab 2.3) | SAE (Simultaneous Authentication of Equals) provides forward secrecy — a captured exchange doesn't reveal enough to brute-force offline |
| PMKID leaks key material without a client (Lab 2.5) | SAE's exchange doesn't expose an equivalent shortcut |
| No protection for management frames | WPA3 mandates Protected Management Frames (802.11w), reducing (not eliminating) deauth-based attacks |
The "Dragonblood" research disclosed side-channel and downgrade weaknesses in early SAE implementations — timing/cache side channels that could leak partial information, and downgrade attacks against WPA3/WPA2 "transition mode" networks that let an attacker force a WPA2-style connection instead. This is a case study in why cryptographic protocol upgrades still need scrutiny of their actual implementation, not just their design.
If it supports WPA3, check whether "WPA2/WPA3 transition mode" is enabled — note that this mode exists specifically for backward compatibility and reintroduces WPA2's attack surface.
Search for the researchers' own summary and note the two or three specific CVEs assigned — this is good practice for reading vulnerability research generally.
| Aspect | Bluetooth Classic | Bluetooth Low Energy (BLE) |
|---|---|---|
| Typical use | Audio, file transfer, older peripherals | Wearables, IoT sensors, beacons |
| Power profile | Higher, continuous connection | Very low, short connect/advertise cycles |
| Discovery method | Inquiry scan | Advertisement packet sniffing |
hcitool scan lists nearby discoverable Bluetooth Classic devices with their MAC addresses.
bluetoothctl's scan on mode picks up BLE advertisements from wearables and IoT sensors nearby (use your own devices — a fitness tracker or smart bulb works well).
gatttool or bluetoothctl's info command lists the GATT services/characteristics your own BLE device exposes.
# classic Bluetooth device discovery sudo hcitool scan # BLE scanning via bluetoothctl bluetoothctl scan on
| Pairing Mode | Protection Against Passive Sniffing |
|---|---|
| Just Works | None — no shared secret is verified out-of-band, common on cheap IoT devices |
| Passkey Entry | Moderate — requires the attacker to also see the displayed passkey |
| Numeric Comparison / Out-of-Band | Strong — requires physical access to compare or exchange a value |
Use Wireshark with a BLE-capable adapter (or a dedicated tool like Ubertooth/btlejack if available) while re-pairing a "Just Works" IoT device you own.
Inspect the captured pairing request/response frames to confirm which of the three modes above was negotiated.
Document which characteristics (readable values, commands) are accessible without any authentication at all.
| Protocol | Common Use | Typical Weakness |
|---|---|---|
| Zigbee | Smart home sensors, lighting, some industrial IoT | Network keys sometimes sent in the clear during device pairing |
| Z-Wave | Home automation hubs and sensors | Older versions used weak or no encryption by default |
| RFID (low/high frequency) | Access badges, inventory tags | Many legacy cards (e.g. basic 125kHz proximity cards) have no cryptography at all — cloneable with cheap readers |
| NFC | Contactless payment, modern access badges | Short range limits remote attacks, but relay attacks remain possible |
Check your home for Zigbee/Z-Wave hubs (many smart speakers and hubs include a radio) and note the protocol on the box or spec sheet.
If you have a building access card, look up its printed model number to identify whether it's a legacy unencrypted proximity card or a modern encrypted one.
| Control | Stops Which Lab |
|---|---|
| Disable WPS entirely | Lab 2.6 — WPS PIN brute-force |
| Use WPA3-SAE (or WPA3-only, no transition mode) | Labs 2.2, 2.3, 2.5 — handshake and PMKID cracking |
| Strong, random passphrase (16+ characters) if WPA2 must remain | Lab 2.3 — dictionary/GPU cracking |
| Enable 802.11w / Protected Management Frames | Lab 2.4 — deauthentication denial-of-service |
| Disable SSID auto-reconnect for public/unknown networks (client-side) | Labs 3.1, 3.3 — Evil Twin and Karma attacks |
| Enforce certificate validation on enterprise clients | Lab 4.2 — fake RADIUS credential harvesting |
Go through the checklist above one row at a time on your router's admin page.
Confirm wash no longer lists your AP as WPS-enabled.
With 802.11w enabled, confirm the deauth frames are now rejected instead of disconnecting the client.
| Alert | Corresponds To |
|---|---|
| DEAUTHFLOOD | Lab 2.4's deauthentication attack |
| APSPOOF / BSSTIMESTAMP anomalies | Lab 3.1's Evil Twin (duplicate SSID with inconsistent AP fingerprint) |
| DISASSOCTRAFFIC | Unusual disassociation patterns consistent with active attack tooling |
Leave it running while you (or a lab partner) re-run Lab 2.4's deauth attack in a second session.
Confirm the deauth flood triggers a visible alert in Kismet's UI in near real time.
Bring up the cloned SSID and confirm Kismet flags the duplicate/spoofed AP.
| Control | Why It Matters |
|---|---|
| Segment guest Wi-Fi from the internal LAN | Guest traffic bridged to internal VLANs is one of the most common real-world findings |
| Prefer EAP-TLS over PEAP where feasible | Removes the "did the client validate the cert" failure mode from Lab 4.2 entirely |
| Deploy a WIPS with automatic containment | Detects and can actively suppress rogue APs, not just alert on them |
| Rotate RADIUS server certificates and monitor for unexpected CAs | Limits the blast radius if a certificate is ever compromised |
| Disable legacy fallback (WEP, WPA-TKIP) at the controller level | Prevents downgrade attacks even if one AP is misconfigured |
Sketch how guest, corporate, and IoT wireless traffic should be separated on a VLAN diagram for a small office.
Check whether a scheduled pentest or internal red-team exercise explains the alert before treating it as a real incident.
Use signal strength (PWR from Lab 1.3) across multiple locations to triangulate roughly where the transmitting device is.
If containment is available on your WIPS, use it; otherwise consider temporarily disabling the affected SSID.
Any device that may have connected to an Evil Twin should have its credentials rotated, since you can't confirm what was captured.
First alert time, containment time, affected devices — this feeds directly into Module 7's reporting skills.
| Phase | Maps To |
|---|---|
| Scoping & Rules of Engagement | Module 0.2 — SSIDs, boundaries, deauth/jamming sign-off |
| Passive Reconnaissance | Module 1 — discovery, client enumeration, no transmission |
| Active Testing | Modules 2–5 — cracking, rogue APs, enterprise, Bluetooth/IoT |
| Post-Exploitation Context | What a cracked passphrase or MITM position actually grants access to on the wired network |
| Reporting | Lab 7.2 |
| Remediation Verification | Re-testing Module 6's controls after the client applies fixes |
| Section | Content |
|---|---|
| Title | Specific and severity-neutral: "WPA2-PSK Passphrase Recoverable via Offline Dictionary Attack" |
| Severity | Impact-based: what does recovering this passphrase actually grant access to? |
| Description | Plain-language explanation of the weakness, no unexplained tool names |
| Steps to Reproduce | Exact commands, in order, with placeholders for BSSID/channel |
| Evidence | Screenshot of the cracked passphrase, capture file reference, timestamp |
| Remediation | The specific Module 6 control that fixes it — not "improve security" |
Full structure above, using your actual lab commands and screenshots.
Same structure, covering the Evil Twin and captive-portal chain end to end.
Even against your own gear — practice the discipline from Module 0.2.
Module 1's techniques, documenting every AP and client you observe.
WPS, handshake capture and crack, PMKID — document which succeeded and why.
End to end, including the captive portal.
Then re-run every attack that previously succeeded, confirming it now fails.
Every finding, Lab 7.2's structure, plus a short executive summary in plain language for a non-technical reader.
| Role | How Wireless Fits In |
|---|---|
| Penetration Tester | Wireless is a standard line item in most on-site/physical engagements |
| Red Team Operator | Wireless access is often the fastest path from "parking lot" to "internal network" |
| Network Security Engineer | Owns the defensive side — Module 6's controls, WIPS deployment, segmentation |
| IoT/Embedded Security Researcher | Builds directly on Module 5's Bluetooth/BLE and RF protocol foundations |
| Certification | Signals | Worth It If… |
|---|---|---|
| OSWP (Offensive Security Wireless Professional) | Hands-on, exam-based, closely matches Modules 1–3 of this workbook | You want a credential proving practical wireless attack skill |
| CWNA (Certified Wireless Network Administrator) | Broad RF and 802.11 design/administration knowledge | You're heading toward wireless network engineering, not just offense |
| CWSP (Certified Wireless Security Professional) | CWNA's security-focused follow-on, covers enterprise 802.1X in depth | You want Module 4's material formalized and vendor-recognized |
| OSCP | Broad offensive security, includes some wireless/network pivoting context | Wireless is one part of a wider pentest/red-team goal |
Offensive specialist, defensive/network engineer, or a broad pentest generalist role.
Check what's actually asked for before committing time and money to one.
Sanitized of any real network details, this becomes a writing sample showing methodology, not just tool usage.
Keep your practice AP and adapter set up — new attack research (post-quantum SAE variants, new WPA3 CVEs) is easiest to test hands-on if the lab already exists.
Conference talks from DEF CON's Wireless Village and Wi-Fi/Bluetooth CVE disclosures are the fastest way to stay current after finishing a static workbook like this one.
Re-run one lab from this workbook against updated firmware or a new adapter every few months — tooling and defenses both evolve.
| Cadence | What To Review |
|---|---|
| Monthly | Any new CVEs affecting Wi-Fi/Bluetooth chipsets you use in your lab |
| Quarterly | Re-run one full module against current firmware; update your portfolio writeup |
| Yearly | Re-read Module 0's legal guidance — regulations and case law do shift |
Everything in Modules 1–5 targeted protocols your Wi-Fi/Bluetooth chipset already knows how to demodulate. Garage door remotes, tire-pressure sensors, wireless doorbells, key fobs, and most proprietary 900MHz/433MHz IoT devices use none of those protocols — a fixed-purpose Wi-Fi adapter simply can't see them. An SDR replaces purpose-built radio hardware with a general-purpose receiver plus software, letting you tune to any frequency and decode whatever's there yourself.
Same VMware process as Lab 0.3's Wi-Fi adapter.
A known, legal signal (any local FM broadcast, ~88–108MHz) is the easiest way to confirm the SDR and software chain works end to end.
The vertical axis is time, horizontal is frequency, and color is signal strength — learn to spot a burst transmission (like a key fob press) as a short vertical streak.
Tune to 433.92MHz and press any 433MHz remote you own (garage remote, wireless doorbell, weather station sensor) — watch the burst appear on the waterfall.
# launch gqrx (GUI) against the RTL-SDR gqrx # or a quick CLI spectrum scan rtl_power -f 433.5M:434.5M:1k -g 40 -i 10 scan.csv
| Type | How It Works | Replay Vulnerable? |
|---|---|---|
| Fixed-code | Sends the exact same signal every press | Yes — a captured transmission works forever |
| Rolling-code (KeeLoq and similar) | Each press sends a new code from a synchronized sequence | No to simple replay; vulnerable to more advanced jam-and-capture techniques instead |
Cheap older garage remotes and generic wireless doorbells are commonly fixed-code — check the manual/model number if unsure.
Use rtl_433 to decode and log the signal while pressing the remote.
If you have a HackRF, replay the captured IQ file and confirm the receiving device (your own garage door/doorbell) triggers identically.
# decode common 433MHz fixed-code protocols automatically
rtl_433 -f 433.92M
| Device | What It Packages | Advantage Over DIY |
|---|---|---|
| WiFi Pineapple | Evil Twin, Karma-style attacks, captive portal — Module 3's techniques in a purpose-built box | Pocket-sized, web UI, designed for physical engagements where a full laptop setup is impractical |
| Flipper Zero | Sub-GHz SDR, RFID/NFC, Bluetooth, GPIO — a portable multi-protocol toolkit | Extremely portable field device covering parts of Modules 5 and 9 in one unit |
Map its built-in modules back to the specific labs in Module 3 they automate.
Map its Sub-GHz and RFID features back to Modules 5 and 9's concepts.
Jamming floods a frequency band with noise or a strong competing signal so legitimate devices can't distinguish real transmissions from interference — effectively a physical-layer denial-of-service. Unlike a deauth frame (Lab 2.4), which exploits a protocol weakness, jamming needs no protocol knowledge at all; raw power on the right frequency is enough.
| Deauth Attack (Lab 2.4) | RF Jamming |
|---|---|
| Exploits an unauthenticated management frame — a protocol flaw | Exploits physics — no flaw to "fix" in software, since any receiver can be overwhelmed by enough power |
| Effect limited to devices using that specific protocol | Affects every device on the frequency, including emergency services and medical equipment in range |
| Governed primarily by computer-crime law | Almost universally illegal to transmit under telecommunications law, regardless of intent or ownership of the "target" |
Using Lab 9.1's gqrx or Kismet's spectrum view, a jammed band shows sustained high noise floor across the whole channel, not the intermittent bursts of normal traffic.
Unlike a targeted deauth, jamming disconnects every client on the band simultaneously with no deauth frames logged at all — that absence is itself the signature.
Kismet natively logs GPS coordinates alongside every AP and client it observes.
Log continuously while covering the full area you want to map.
Kismet can export to formats viewable in mapping tools, showing exactly where your signal is strong, weak, or leaking beyond your intended boundary.
Revisit Lab 6.4's incident-response scenario — take PWR readings from three different points and triangulate roughly where a rogue transmitter sits.
An IMSI catcher (sometimes called a "Stingray," after one commercial product) impersonates a legitimate cell tower, exploiting the fact that older cellular protocols (2G in particular) don't require the network to authenticate itself to the phone — the same fundamental "no mutual authentication" weakness behind this workbook's Evil Twin attacks in Module 3, just at the cellular layer instead of Wi-Fi.
| Reason | Detail |
|---|---|
| Spectrum licensing | Cellular frequencies are licensed, not the unlicensed ISM bands Wi-Fi/Bluetooth/433MHz use — transmitting on them without a license is illegal essentially everywhere, with no "own equipment" exception |
| Legal restrictions on equipment | In many countries, operating IMSI-catcher-capable equipment is itself restricted regardless of intent |
| Specialized, expensive hardware | Beyond an RTL-SDR/HackRF's practical capability for anything beyond passive, receive-only observation |
Study public research and conference talks on IMSI catcher detection apps (which look for the same "no mutual auth" red flags you learned to spot in Module 3).
If a real engagement's scope ever includes cellular, that's a specialist sub-engagement requiring specific legal authorization beyond a standard wireless pentest — recognize the boundary rather than trying to cover it yourself.
| Category | Tool / Resource | Used In | On Kali |
|---|---|---|---|
| Core Suite | Aircrack-ng (airmon-ng, airodump-ng, aireplay-ng, aircrack-ng) — aircrack-ng.org | Modules 0, 1, 2, 3 | Pre-installed |
| Packet Analysis | Wireshark | Modules 1, 3, 5 | Pre-installed |
| Wireless IDS/Recon | Kismet | Modules 1, 6 | Pre-installed |
| WPS Attacks | Reaver, Bully, wash | Module 2 | apt install |
| PMKID / GPU Cracking | hcxdumptool, hcxtools, hashcat | Module 2 | apt install |
| Rogue AP / Evil Twin | hostapd, dnsmasq, bettercap, macchanger | Module 3 | apt install |
| Enterprise Wireless | hostapd-wpe, asleap | Module 4 | apt install |
| Bluetooth/BLE | hcitool, bluetoothctl, gatttool, bluez | Module 5 | Pre-installed |
| SDR | gqrx, GNU Radio, rtl_433, rtl-sdr tools | Module 9 | apt install |
| SDR Hardware | RTL-SDR dongle (~$25–35, receive-only) · HackRF One (~$300, transmit-capable, optional) | Module 9 | USB passthrough |
| Purpose-Built Field Hardware | WiFi Pineapple · Flipper Zero (reference/optional — not required for any lab) | Module 9 | Standalone hardware |
| Practice Targets | Your own AP/router (WPA2/WPA3, WPS-capable) · A spare test phone/laptop · A BLE-capable IoT device you own · A 433MHz remote you own (garage/doorbell) | Modules 0–6, 9 | Your own hardware |
| Sample Captures (No Adapter Needed) | Wireshark's official sample capture repository — wiki.wireshark.org/SampleCaptures | Modules 1, 2 (conceptual) | Browser-based |
| Free Training | Aircrack-ng documentation · DEF CON Wireless Village talks · Offensive Security's OSWP course materials | Modules 0, 8 | Browser-based |
| Vulnerability Research | Dragonblood WPA3 research (wpa3.mathyvanhoef.com) · KRACK attack research | Module 4 | Browser-based |
| Term | Definition |
|---|---|
| BSSID | Basic Service Set Identifier — the MAC address that uniquely identifies a specific access point radio |
| EAP | Extensible Authentication Protocol — the framework 802.1X uses to carry different authentication methods (TLS, PEAP, TTLS) |
| EAPOL | EAP over LAN — the frames carrying the WPA/WPA2 4-way handshake |
| IV | Initialization Vector — a value combined with a key to produce unique encryption per packet; WEP's 24-bit IV was too small, enabling Lab 2.1's attack |
| PMK / PMKID | Pairwise Master Key / its Identifier — key material derived from a WPA2 passphrase; the PMKID can be requested directly from some APs (Lab 2.5) |
| PSK | Pre-Shared Key — the single passphrase model used by WPA2-Personal, as opposed to per-user Enterprise authentication |
| RADIUS | Remote Authentication Dial-In User Service — the authentication server protocol behind WPA2/WPA3-Enterprise |
| RSN | Robust Security Network — the information element in a beacon frame describing an AP's supported security (WPA2/WPA3, ciphers) |
| SAE | Simultaneous Authentication of Equals — WPA3's replacement handshake for WPA2's 4-way handshake, providing forward secrecy |
| SSID | Service Set Identifier — the human-readable network name broadcast in beacon frames |
| WIDS/WIPS | Wireless Intrusion Detection/Prevention System — infrastructure that detects (and optionally blocks) rogue APs and wireless attacks |
| WPS | Wi-Fi Protected Setup — a PIN-based pairing convenience feature with a flawed design that Lab 2.6 exploits |
| SDR | Software Defined Radio — general-purpose radio hardware that uses software instead of fixed circuitry to receive (and sometimes transmit) on nearly any frequency |
| ISM Band | Industrial, Scientific and Medical radio band — unlicensed spectrum (e.g. 433MHz, 900MHz, 2.4GHz) where most consumer IoT and remote devices legally operate |
| IMSI Catcher | A device that impersonates a legitimate cell tower to intercept nearby phones' identifiers and traffic; operates on licensed cellular spectrum and is legally restricted essentially everywhere |
| Fixed-Code / Rolling-Code | Two remote-control signal designs — fixed-code repeats the same signal every press (replay-vulnerable); rolling-code changes each time via a synchronized sequence |