
Homemade Pwnbox 🚀 / Rogue AP 📡 based on Raspberry Pi — WiFi Hacking Cheatsheets + MindMap 💡
Homemade (headless) PwnBox / RogueAP based on Raspberry Pi & Alfa WiFi USB Adapters.
WiFi Hacking Cheatsheets & Mind Map 💡
Designed to be used for:

* would require nexmon patch to enable monitor mode and injection support on built-in Broadcom chip (but we do not need it for its usage here).
root.arm64, but some older precompiled binaries may require box64 or manual compilation.Download Kali Linux ARM Image for Raspberry Pi: https://www.kali.org/get-kali/#kali-arm
Flash Kali Linux ARM Image for Raspberry Pi onto Micro SD Card (use Raspberry Pi Imager or dd).
Boot Raspberry Pi, log in (default kali/kali) and make sure it has Internet connection.
Download install scripts/configurations on the PwnBox:
git clone https://github.com/koutto/pi-pwnbox-rogueap.git
Important: Edit install script configuration at the top of scripts/install-system.sh file:
GUACAMOLE_PASSWORD, GUACAMOLE_MYSQL_PASSWORD).wlxaabbccddeeff for a device with MAC address aa:bb:cc:dd:ee:ff.eth0 & wlan0 (built-in interfaces).When booting, PwnBox automatically spawns an AP on one interface to allow for easy remote access:
PWNBOX_ADMIN (Hidden SSID)Koutto!PwnB0x!When booting, PwnBox automatically connects to:
Wired network if Ethernet port is connected.
WiFi network (using built-in Raspberry Pi chip) if there is available wireless network with saved connection settings (in /etc/wpa_supplicant.conf). If you want to connect to a new WiFi network (not saved into PwnBox), it is necessary to add WPA passphrase of the network before:
Access the PwnBox using another way, e.g.:
Add WPA passphrase to PwnBox local configuration:
wpa_passphrase <SSID> <passphrase> >> /etc/wpa_supplicant.conf
Test connection:
wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
dhclient -v wlan0
ping 8.8.8.8
PwnBox can be controlled through:
SSH Service (22/tcp):
ssh kali@<ip_pwnbox>
VNC-over-HTTP with Guacamole (8080/tcp):
http://<ip_pwnbox>:8080/guacamole
PwnBox's IP depends on the network you want to access it from:
PWNBOX_ADMIN): IP is always 10.0.0.1.netdiscover for example.Note: Guacamole service might take a lot of resources (RAM) when running. If not used, it can be stopped using stop-guacamole.sh script.
Because /etc/network/interfaces uses auto eth0, the system waits for a DHCP lease during boot. If you frequently run the PwnBox without Ethernet and experience slow boots, edit /etc/network/interfaces and change:
auto eth0
allow-hotplug eth0
to:
allow-hotplug eth0
(Remove the auto eth0 line.)
isc-dhcp-server is installed because some tools (e.g., Fluxion) require it, but it is disabled by default to avoid a port 67/udp conflict with dnsmasq (which serves the PWNBOX_ADMIN AP). If you need isc-dhcp-server, stop dnsmasq first:
systemctl stop dnsmasq
systemctl start isc-dhcp-server
Newer Kali/Debian releases ship Tomcat 10 instead of Tomcat 9. The start-guacamole.sh and stop-guacamole.sh scripts auto-detect the installed Tomcat version. If Guacamole does not work after install, check:
systemctl list-unit-files | grep tomcat
systemctl status guacd
systemctl status mysql
# Then start manually with correct tomcat version, e.g.:
systemctl start tomcat10
If the vendor installer (deb.trendtechcn.com) is offline, build the driver manually:
sudo apt-get install -y bc git build-essential dkms
sudo git clone https://github.com/cilynx/rtl88x2bu.git /usr/src/rtl88x2bu-5.8.7
sudo dkms add -m rtl88x2bu -v 5.8.7
sudo dkms autoinstall
Make sure you ran vncpasswd during install to create the password file:
vncpasswd
systemctl restart vncserver
Python 2 has been removed from modern Kali. The install script now uses Python 3 only. If you have old custom Python 2 tools, migrate them to Python 3 or run them in a dedicated Docker container.
The install script disables NetworkManager in favor of classic /etc/network/interfaces. If you need to temporarily re-enable NM:
systemctl start NetworkManager
systemctl enable NetworkManager
Check that your MAC addresses in install-system.sh match reality:
ip link show
Then re-run the network configuration section or update /etc/udev/rules.d/70-persistent-net.rules manually.
| Device | Chipset | Usage | 802.11 | 2.4 Ghz | 5 Ghz | Kali out-of-box | Mon. Mode | Injec-tion | AP |
|---|
| Built-in Raspberry Pi 3 B+ WiFi chip | Broadcom 43430 | Connection to Internet (auto-start at boot if WiFi key added in config) | 802.11 b/g/n/ac | Y | Y | Y | N* | N* | Y |
| BrosTrend AC1L AC1200 | Realtek RTL8812AU | Acces Point for Remote Access (auto-start at boot) | 802.11 a/b/g/n/ac | Y | Y | N | Y | N | Y |
| Alfa AWUS036NEH | Ralink RT2870/3070 | WiFi Attacks | 802.11 b/g/n | Y | N | Y | Y | Y | Y |
| Alfa AWUS036ACH | Realtek RTL8812AU | WiFi Attacks | 802.11 a/b/g/n/ac | Y | Y | Y | Y | Y | Y |
WIFI_SSIDWIFI_PASSPHRASERun install script (will pause at the end of each step in order to allow for manual inspection of command outputs)
cd pi-pwnbox-rogueap/scripts
./install-system.sh
Reboot & check correct configuration of network interfaces:
ip a
iwconfig
eth0 and wlan0 respectively.wlx*).PWNBOX_ADMIN) should be started on appropriate wlx* interface.Configure VNC-over-HTTP on Guacamole:
pwnbox-vncROOTVNC33127.0.0.14822127.0.0.15901(password chosen at install when running install-system.sh)True color (32-bit)Change default credentials:
passwd kali)http://<ip_pwnbox>:8080/guacamole/#/manage/mysql/users/guacadmin)