Evil-BW16-WebUI
Evil-BW16-WebUI copied to clipboard
Evil-BW16-WebUI is a dual-band (2.4GHz/5GHz) WiFi deauthentication tool for BW16 and ESP32 boards, featuring real-time monitoring, a web-based interface, channel hopping, and advanced packet injection...
Evil-BW16 WebUI ๐

A powerful WiFi deauthentication tool running on BW16 and ESP32 platforms, featuring:
- โก Dual-band 2.4GHz/5GHz support
- ๐ Web-based control interface
- ๐ง Real-time UART communication
- ๐ก UART Bridge bridge functionality
- ๐พ SD card file management
- ๐ WebSocket-based communication
- ๐ JSON configuration handling
- ๐ต๏ธ Integrated Sniffer for beacon/probe/deauth frames
Table of Contents ๐
- Features
- Hardware Requirements
- BW16 Setup
- ESP32 Setup
- Installation
- Development Environment Setup
- BW16 Firmware Installation
- ESP32 Web Interface Installation
- Web Interface Usage
- Advanced Configuration
- Command Reference
- File Structure
- Troubleshooting
- Development
- Contributing
- Legal Disclaimer
- License
- Acknowledgments
- Credits
Features โก
- Dual-Band Support: Target both 2.4GHz and 5GHz networks.
- Web Interface: Control the device through a modern web interface.
- Real-Time Monitoring: View network activity and attack status in real-time.
- Customizable Attacks: Configure attack parameters and targets.
- SD Card Storage: Save logs and configurations to SD card.
- UART Bridge: Read UART from UART or Serial USB.
- Advanced Packet Injection: Precise control over frame timing and content.
- Channel Hopping: Automatic channel switching for comprehensive coverage.
- MAC Address Filtering: Target specific devices or networks.
- Power Management: Optimized power consumption for extended operation.
- Enhanced Sniffer: Capture and analyze beacon, probe, deauth, and EAPOL frames.
Hardware Requirements ๐
BW16 Setup ๐ค
- Ai-Thinker BW16 development board
- Power supply (5V/3.3V, 2A minimum)
- Optional: External battery pack (18650 Li-ion recommended)
ESP32 Setup ๐
- ESP32 development board (ESP32-S3 recommended)
- MicroSD card module (SPI interface)
- Power supply (5V/3.3V, 2A minimum)
- Optional: External battery pack (18650 Li-ion recommended)
Installation ๐
Development Environment Setup ๐ป
-
Install Arduino IDE (1.8.19 or later).
- If using Arduino IDE 2.0 or newer, ensure that the Board Manager and Library Manager references match your environment.
-
Add board support:
- BW16: In the Arduino IDE preferences, add:
https://raw.githubusercontent.com/Ai-Thinker-Open/Ai-Thinker-Open.github.io/master/package_ai-thinker_index.json - ESP32: In the Arduino IDE preferences, add:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- BW16: In the Arduino IDE preferences, add:
-
Install required libraries:
- ESPAsyncWebServer (version 3.4.0 or later)
- AsyncTCP (version 3.2.15 or later)
- ArduinoJson (version 7.2.1 or later)
- WiFi (built-in for ESP32; for BW16, ensure the WiFi library is included in the board support package)
- SD (built-in for ESP32)
Note: Make sure to select the correct libraries in the Arduino Library Manager and match the required versions if possible.
BW16 Firmware Installation ๐ฒ
- Connect the BW16 board via the USB-to-Serial adapter (TX โ RX, RX โ TX, GND โ GND).
- Open the sketch:
Evil-BW16/Evil-BW16.inoin the Arduino IDE. - Select board:
Tools > Board > Ai-Thinker BW16. - Configure settings:
- Upload Speed:
921600 - CPU Frequency:
160MHz - Flash Size:
4MB (32Mb)
- Upload Speed:
- Upload the sketch to the BW16 board.
ESP32 Web Interface Installation ๐
-
Connect the ESP32 board via USB.
-
Open the sketch:
ESP32/ESP32.inoin the Arduino IDE. -
Select board:
Tools > Board > ESP32 Dev Module. -
Configure settings:
- Upload Speed:
921600 - CPU Frequency:
240MHz - Flash Size:
4MB (32Mb)
- Upload Speed:
-
Upload the sketch to the ESP32.
Web Interface Usage ๐ก
- Power on the device (BW16 + ESP32).
- Connect to the WiFi access point:
- SSID:
Evil-BW16 - Password:
password1234
- SSID:
- Open a web browser and navigate to:
http://192.168.4.1 - Access and control the interface to:
- Scan for networks
- Select AP/clients as targets
- Configure deauth parameters
- Start/Stop attacks
- Monitor attack logs and network status
- Adjust advanced settings (sniffer, beacon capture, channel hopping, etc.)
Advanced Configuration โ๏ธ
Configuration is primarily handled in ESP32.ino through hardcoded constants.
// Access Point Credentials
const char* ap_ssid = "Evil-BW16";
const char* ap_password = "password1234";
// UART Configuration
const size_t UART_BUFFER_SIZE = 512;
const size_t UART_CHUNK_SIZE = 256;
const int UART_BAUD_RATE = 115200;
To modify these settings:
- Open
ESP32/ESP32.inoin the Arduino IDE. - Update the relevant constants near the top of the file.
- Recompile and upload.
Command Reference ๐
Note: Commands can be sent via the web UI console or UART terminal.
Basic Commands
scan
Perform a WiFi scan.results
Show the last scan results.start
Start deauthentication attack.stop
Stop all attacks.disassoc
Start continuous disassociation.random
Attack a random AP.help
Show command reference.
Configuration Commands
set cycle_delay <ms>
Set delay between cycles (in milliseconds).set scan_time <ms>
Set WiFi scan duration.set num_frames <n>
Set number of frames per AP.set start_channel <n>
Set start channel (1 for 2.4GHz, 36 for 5GHz).set scan_cycles <on/off>
Enable/disable scan between cycles.set led <on/off>
Enable/disable onboard LEDs.set debug <on/off>
Enable/disable debug mode.
Sniffer Commands
start sniff
Enable packet sniffing.sniff beacon
Capture beacon frames.sniff probe
Capture probe requests/responses.sniff deauth
Capture deauth/disassoc frames.sniff eapol
Capture EAPOL frames.sniff pwnagotchi
Capture Pwnagotchi beacons.sniff all
Capture all frames.stop sniff
Stop sniffing.
File Structure ๐
Below is the repository layout:
.
โโโ Evil-BW16/
โ โโโ Evil-BW16.ino # Main BW16 firmware
โโโ ESP32/
โ โโโ ESP32.ino # Web interface code for ESP32
โโโ UI/
โ โโโ index.html # Main web interface
โ โโโ static/
โ โโโ bootstrap-icons.css
โ โโโ bootstrap.bundle.min.js
โ โโโ bootstrap.min.css
โ โโโ bootstrap.min.js
โ โโโ logo.png
โ โโโ rbbt.PNG
โ โโโ script.js
โ โโโ socket.io.min.js
โ โโโ style.css
โ โโโ welcome_msg.txt
โ โโโ fonts/
โ โโโ bootstrap-icons.woff
โ โโโ bootstrap-icons.woff2
โโโ LICENSE
โโโ README.md # This file
Troubleshooting ๐ฎ
1. Device Not Responding
- Check power supply and verify at least 3.3V/5V at 2A or more.
- Ensure correct serial connection (TX โ RX, GND โ GND).
- Verify the baud rate (default: 115200).
2. Web Interface Not Loading
- Confirm you are connected to the Evil-BW16 SSID.
- Verify the IP address is
192.168.4.1. - Try clearing your browser cache or use a different browser.
3. SD Card Not Detected (ESP32)
- Check SPI wiring (MISO, MOSI, SCK, CS).
- Ensure SD card is formatted as FAT32.
- Check logs for any SD mount errors.
4. Performance Issues
- Reduce the number of targets or channels.
- Increase the cycle delay between attacks.
- Use a stable external power source (battery pack or regulated supply).
Development ๐ญ
Contributing ๐ค
- Fork the repository.
- Create a new branch with a descriptive name.
- Make your changes or additions.
- Submit a pull request for review.
We welcome improvements to documentation, bug fixes, new features, or general enhancements.
Legal Disclaimer โ ๏ธ
This tool is created for educational and ethical testing purposes only.
Any misuse or illegal use of this tool is strictly prohibited.
The creators and contributors assume no liability for misuse or damage caused by this tool.
Users must comply with all applicable laws and regulations in their jurisdiction regarding network testing and ethical hacking.
License ๐
This project is licensed under the MIT License.
See the LICENSE file for full details.
Acknowledgments ๐
- ESP32 Arduino Core team
- ESPAsyncWebServer library maintainers
- ArduinoJson library contributors
- BW16 development community
- OpenWRT project
- Aircrack-ng team
Credits โค๏ธ
- Developers:
- ๐ 7h30th3r0n3
- ๐ค dagnazty
- ๐ฆพ Hosseios