Last reviewed 9 min read

Interface setup
Beginner
T1040

Wireless Interface Setup

Before performing wireless attacks, your adapter must support monitor mode and packet injection. This page covers hardware selection, driver setup, VM passthrough, and channel configuration — everything needed to reach a fully operational wlan0mon.

Working Setup

A fully operational interface appears as wlan0mon with monitor mode active and packet injection working on both 2.4 GHz and 5 GHz bands. Verify it with aireplay-ng --test wlan0mon.

Recommended Hardware

Not all WiFi cards support monitor mode and injection — the chipset matters more than the brand. These are the best-tested options:

Adapter Chipset Bands Best For Price
ALFA AWUS036ACH RTL8812AU 2.4 + 5 GHz WPA2/WPA3, general purpose (recommended) ~$35–50
ALFA AWUS036NHA AR9271 2.4 GHz WPS attacks, Kali native support ~$25–40
ALFA AWUS1900 RTL8814AU 2.4 + 5 GHz Long range, high-power engagements ~$50–70
TP-Link TL-WN722N v1 AR9271 2.4 GHz Budget option — v1 only ~$15–25
Panda PAU09 RT5572 2.4 + 5 GHz Evil twin (dual antenna, dual adapter) ~$30–45
Intel AX210 (M.2) AX210 2.4 + 5 + 6 GHz Wi-Fi 6E scanning (internal only; scan-only — no reliable injection) ~$20–35

TP-Link WN722N Version Warning

Only v1 (AR9271 chipset) supports monitor mode and injection out-of-the-box. v2 and v3 use the RTL8188EUS chipset which requires a patched driver and does not support injection reliably on all kernels. Check the version label on the box or run lsusb to confirm the chipset.

ALFA AWUS036ACH

A Realtek RTL8812AU 802.11ac adapter with dual-band 2.4 + 5 GHz operation (AC1200), two detachable dipole omni 5 dBi antennas on RP-SMA, and USB-C 5 Gbps on the current revision (the older revision was USB 3.0 Type-A). It is popular for wireless security testing.

Do Not Confuse It With the AWUS036ACHM

The similar-looking AWUS036ACHM is a different adapter: MediaTek MT7610U on USB 2.0. Confirm the exact model before buying or following a driver guide.

Monitor mode and packet injection are not out-of-the-box on Linux — the RTL8812AU is not a mainline mac80211 chipset, so both depend entirely on which driver is loaded. The Windows vendor driver is client-only.

Driver / source Monitor mode Injection Notes
aircrack-ng/rtl8812au Yes Yes Packaged by Kali as realtek-rtl88xxau-dkms; its README now marks it deprecated in favour of lwfinger/rtw88.
lwfinger/rtw88 Yes Reported unreliable In-kernel / backport, kernel ≥5.4.
morrownr/8812au-20210820 No No Neither monitor mode nor injection.

Naming note: rtl8812au is the repo/product name, 88XXau is the out-of-tree module name, and 8812au is morrownr's module name.

install-rtl88xxau.sh
# Kali packages the aircrack-ng driver for this chipset
sudo apt install realtek-rtl88xxau-dkms

Bring-Up and Injection Check

The ip/iw method from the aircrack-ng README:

awus036ach-monitor.sh
airmon-ng check kill
sudo ip link set wlan0 down
sudo iw dev wlan0 set type monitor
sudo ip link set wlan0 up
sudo iw wlan0 set txpower fixed 3000
aireplay-ng -9 wlan0          # expect "Injection is working!"

Driver Pitfalls

  • • DKMS needs the kernel build tree at /lib/modules/$(uname -r)/build.
  • • Under Secure Boot the module must be signed and the MOK enrolled.
  • • A wrong gcc major version breaks the build.
  • • NetworkManager must be killed before monitor mode.
  • • Modern airmon-ng may enable monitor mode in place, so wlan0mon may not exist — check iw dev.

MycoWave Driver Installer

MycoWave is the recommended installer for this adapter — it auto-detects kernel, architecture and Secure Boot, then picks a driver strategy: kernel ≥6.19 uses the in-kernel rtw88_8812au; 6.15–6.18 patched source; 6.14 in-kernel rtw88; 6.6–6.13 Kali DKMS; and <6.6 falls back to the lwfinger backport. It also provides a mycowave-monitor-mode helper.

mycowave-install.sh
git clone https://github.com/MushroomCyber/MycoWave.git
cd MycoWave
chmod +x mycowave-install.sh
sudo ./mycowave-install.sh          # add --dry-run to preview
sudo mycowave-monitor-mode
iw dev                              # confirm the real monitor iface (may be wlan0)
sudo ./mycowave-install.sh --test

Prerequisites: Kali 2024.x–2026.1+ or another Debian-based distribution with kernel ≥6.6, root, internet access, the kernel build tree, and MOK enrollment under Secure Boot.

Dedicated Attack Hardware

The adapters above are general-purpose. For drop-and-leave work, wardriving, or a cheap dedicated kit, a class of single-purpose devices trades flexibility for a small battery-powered footprint. They complement the adapters — most still hand captured material to a host for cracking — and they change nothing about the authorisation rules for a target network.

Authorised Targets Only

Deauthentication, beacon spam, rogue APs, and handshake capture all affect nearby clients. Operate them only against networks you own or are contracted in writing to test.

ESP32 Marauder

WiFi Firmware
Docs

Open-source ESP32 firmware that turns a low-cost devkit into a Wi-Fi and BLE offensive tool: deauthentication, beacon spam, packet sniffing, PMKID capture, and a captive portal.

ESP8266 Deauther

WiFi Firmware
Docs

Spacehuhn's firmware for the ESP8266 that provides 802.11 deauthentication and beacon-spam testing on very cheap boards; the project also documents detection and defence.

Pwnagotchi

Handshake Collector
Docs

A Raspberry Pi Zero running an AI-driven agent that passively collects WPA/WPA2 handshakes from nearby networks — a common low-cost platform for learning wireless capture and wardriving.

Two more pocket-sized devices are already catalogued on the Tools & Hardware page. The Flipper Zero adds sub-GHz, 125 kHz RFID, NFC, infrared, iButton, and Bluetooth/BLE radios to the same form factor; its Bluetooth/BLE and radio material is covered under Bluetooth & BLE and SDR & RF Hacking. The Hak5 WiFi Pineapple is the purpose-built rogue-AP and engagement platform, with its own hardware and web UI for reconnaissance, evil-twin, and MITM modules.

Driver Installation

Kali Linux includes most wireless drivers natively. For RTL8812AU/RTL8814AU-based adapters, install the Aircrack-ng patched driver for full injection support:

install-drivers.sh
# Install build dependencies
sudo apt update && sudo apt install -y dkms bc build-essential linux-headers-$(uname -r)

# Check what adapter is connected
lsusb

# RTL8812AU (ALFA AWUS036ACH) — patched driver
git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au && sudo make dkms_install

# RTL8814AU (ALFA AWUS1900) — patched driver
git clone https://github.com/aircrack-ng/rtl8814au.git
cd rtl8814au && sudo make dkms_install

# Verify the driver loaded
lsmod | grep 8812au
iw dev   # should now show wlan0 or wlan1

Enable Monitor Mode

monitor-mode.sh
# Kill processes that interfere with monitor mode
sudo airmon-ng check kill

# Enable monitor mode (creates wlan0mon)
sudo airmon-ng start wlan0

# Alternative manual method (more granular control)
sudo ip link set wlan0 down
sudo iw dev wlan0 set type monitor
sudo ip link set wlan0 up

# Verify monitor mode is active
iw dev wlan0mon info
# Look for: type monitor

# Change channel manually (iw replaces the deprecated iwconfig)
sudo iw dev wlan0mon set channel 6        # 2.4 GHz CH6
sudo iw dev wlan0mon set channel 36       # 5 GHz CH36

# Return to managed mode when done
sudo airmon-ng stop wlan0mon
sudo systemctl restart NetworkManager

Naming note: commands here use wlan0mon, the monitor interface that airmon-ng creates. Some tools (for example hcxdumptool) instead take the physical interface wlan0 and manage monitor mode themselves — always match the interface name to the tool.

Test Packet Injection

test-injection.sh
# Test injection capability (sends test frames, looks for AP responses)
sudo aireplay-ng --test wlan0mon

# Successful output includes:
# Trying broadcast probe requests...
# Injection is working!
# Found X APs

# If the test fails, specify a channel first
sudo iw dev wlan0mon set channel 6
sudo aireplay-ng --test wlan0mon

# Check available injection modes for your driver
iw phy phy0 info | grep -A 10 "Supported interface modes"

Band & Channel Selection

2.4 GHz

  • • Channels 1–14 (1, 6, 11 non-overlapping)
  • • Longer range, better wall penetration
  • • More congested — interference common
  • • Legacy devices, IoT, home routers

5 GHz

  • • Channels 36–177 (region-dependent)
  • • Shorter range, less wall penetration
  • • Less interference, faster speeds
  • • Modern laptops, offices, enterprise APs
band-selection.sh
# Scan both bands simultaneously
sudo airodump-ng --band abg wlan0mon

# Lock to 5 GHz only
sudo airodump-ng --band a wlan0mon

# Lock to 2.4 GHz only
sudo airodump-ng --band bg wlan0mon

# List all channels your adapter supports
iw phy phy0 info | grep -A 50 "Frequencies"

# Check regulatory domain (affects available channels)
iw reg get

VM Considerations

USB Passthrough Required in VMs

Running Kali in VirtualBox or VMware? Your host's built-in WiFi card will NOT work for wireless attacks. You must pass a supported USB adapter directly through to the VM. Monitor mode requires USB-level control that cannot be shared between host and guest.
vm-passthrough.sh
# VirtualBox: Devices → USB → Click your adapter name
# VMware: VM → Removable Devices → Your Adapter → Connect

# Verify the VM sees the adapter (run inside VM)
lsusb     # Should list your USB WiFi adapter
iw dev    # Should show wlan0 or wlan1

# Adapter claimed by the host? Release it first (Linux host):
sudo rmmod rt2800usb rt2x00usb
# Then reconnect to VM

# VirtualBox USB 3.0: requires Extension Pack (same version as VirtualBox)
# Download at: https://www.virtualbox.org/wiki/Downloads

Troubleshooting

wlan0mon not created after airmon-ng start

Interfering processes were not fully killed.

fix-monitor-mode.sh
sudo airmon-ng check kill
sudo systemctl stop NetworkManager wpa_supplicant
sudo airmon-ng start wlan0

Adapter blocked by rfkill

fix-rfkill.sh
rfkill list all
rfkill unblock all

Injection test fails / reports -1 packets

fix-injection.sh
# Set channel first, then re-test
sudo iw dev wlan0mon set channel 6
sudo aireplay-ng --test wlan0mon

# Check driver injection support
iw phy phy0 info | grep -A 10 "Supported interface modes"

No networks appear in airodump-ng

fix-no-networks.sh
# Confirm monitor mode is active
iw dev wlan0mon info | grep type

# Scan explicitly across both bands
sudo airodump-ng --band abg wlan0mon

# Check regulatory domain (some regions disable channels)
iw reg get

MAC Address Spoofing

Change your adapter's MAC before an assessment to reduce attribution. MAC changes reset when monitor mode is stopped.

mac-spoof.sh
# View current MAC
ip link show wlan0 | grep ether

# Randomise with macchanger
sudo ip link set wlan0 down
sudo macchanger -r wlan0      # fully random
sudo macchanger -a wlan0      # random, same vendor OUI
sudo ip link set wlan0 up

# Set a specific MAC
sudo ip link set wlan0 down
sudo ip link set wlan0 address AA:BB:CC:DD:EE:FF
sudo ip link set wlan0 up

Verify It Worked

Check Expected Where to look
Driver loaded lsmod | grep 8812au lists the module and iw dev shows the interface The lsmod and iw dev output after install
Monitor mode active iw dev wlan0mon info reports type monitor The iw dev output
Injection works aireplay-ng --test prints "Injection is working!" and finds APs The injection test output

Practice Labs

Hands-on wireless setup practice in safe, isolated environments.

WiFi Hacking 101 TryHackMe easy
WPA2 handshake capturedeauth/injectionaircrack-nghashcat HCCAPXmonitor mode
Wireless Security TryHackMe easy
wireless attack conceptsrogue AP / evil twin (conceptual)WPSWPA3 & 802.1XBLE/RFID