v2.5
Changelog: WiFiChallengeLab v2.5
Added
- Host-only RDP networks (VirtualBox, VMware) and Start/Stop Nzyme desktop launchers
- EAP-TLS identity-leak scenario (hardened vs. leaking client certificates)
- SIM/USIM AP (
wifi-passpoint, EAP-SIM/AKA/AKA') with two EAP-AKA' clients backed by a software HLR/AuC (hlr_auc_gw+ Milenage, no physical SIM): a leaking one (permanent IMSI in the clear, any passive sniffer) and a privacy-preserving one (anonymous outer identity + pseudonym/fast-reauth: no passive leak, yet still surrenders its IMSI to a student-built evil-twin/rogue AP that actively requests the permanent identity) - Client-less PMKID AP (
wifi-campus): a lone WPA2-PSK BSSID (channel 7, no client on purpose) on radiowlan31. Capture the PMKID straight from the BSSID and crack the PSK offline (seeAPs/PMKID_TESTING.md) - WPA3 Cookie Guzzler airgeddon plugin and Vagrant audio support (QEMU, VirtualBox)
Modifications
- Consolidated host networking on NetworkManager + systemd-resolved (VirtualBox, VMware, QEMU, Hyper-V) and made the Nzyme web UI reachable from other computers (auto-detects host IP)
- Grew the client radio pool 20 → 30 (
wlan40-69,radios=71) and moved the nzyme WIDS tap towlan70, freeing 10 slots for new scenarios - Management EAP-TLS AP now offers both TLS 1.3 and legacy TLS 1.2; updated wifi_db to v1.6
- Clients now carry a realm in the EAP anonymous outer identity (e.g.
anonymous@CONTOSOREG) on the TLS and MSCHAPv2-relay networks, matching real supplicant behaviour
Bug Fixes
- Networking: fixed DNS on networks that block public resolvers and AP internet sharing (name-independent uplink detection); fixed host DHCP service startup failures
- Certificates: added the missing
clientAuthEKU to EAP-TLS client certs, made the CA RFC 5280-conformant, corrected the server cert subject/SAN, deduplicated them into a single generated set, and removed a straywgetin the APDockerfile; extended the server cert SAN through192.168.40.1so every lab portal (including192.168.21.1) validates in Firefox - Web portals: fixed PHP errors and session handling across the AP and client portals, plus
lab.phpnot showing the username - MGT/EAP: fixed a regional/locale error connecting to MGT (EAP relay) networks and the MSCHAP/GTC simulated logins using a MAC instead of the gateway IP; removed
ieee80211wfrom the MSCHAPv2 relay client to match the AP; set MFP optional (ieee80211w=1) on the WPA3 downgrade AP so its SAE/WPA2-PSK transition mode works (mandatory MFP would block the WPA2-PSK downgrade path); fixed thewifi-regionalrelay client (wlan50) beingmacchanger'd to the AP's own BSSID (MAC_MGT_RELAYinstead ofMAC_CLIENT_MGT_RELAY): a station whose MAC equals its target BSSID has every authentication rejected by mac80211 (SME: Authentication request to the driver failed) - Build/misc: made the
ath_maskerbuild best-effort (no more aborted image builds), removed the hardcoded gcc/g++ 12, fixed a stale exit in the deauth-on-drop patch and an image-tag error in the challenge compose file, fixed the challenge flags inwlan_config_challenge, updated thepcapFilter.shhelper to the latest gist revision, and fixed thehostapd-manabuild under Vagrant while making provisioning abort ifinstallTools.shdoesn't finish
Miscellaneous Improvements
- network self-heal service to recover the uplink on boot; disabled Debian automatic updates
- Added automatic Apache portal recovery that monitors
login.phpand restarts the web service when it becomes unavailable - Removed email/PII and legacy Netscape fields from generated certificates
- Reworked healthchecks and compose files across all variants; hostapd per-SSID logs now capture stderr (
2>&1) - Gave each AP/client a distinct, stable signal via per-radio RSSI jitter (~±3 dB) in the
mac80211_hwsimdriver (in-kernel, deterministic per radio, no per-beacon flicker) instead of a racy userspaceiw txpowerloop that hostapd overrode - Ran each MGT relay supplicant in its own loop (a stall no longer blocks the others) and backgrounded the client
fpingkeepalive - Stopped the GNOME session from locking on inactivity (system-wide dconf no-idle-lock) for both RDP and local desktop sessions, so long-running attacks aren't interrupted
- New AP web console (login and recovered-flag pages): Dracula theme, animations, single sign-out, flag on top and pink username with placeholder
- Gave the lab user access to the compiled tool tree so the tools run without extra permissions
- Updated OPEN_SOURCE_REFERENCES.md
New Contributors
- @g0tmi1k made their first contribution in #31, improving the Vagrant setup with
grub-pcanddebconf-set-selections. - @xmahdiesta made their first contribution in #37, making the APs' Apache2 startup more robust and self-healing.
Full Changelog: v2.4.2...v2.5