Evil-BW16-WebUI icon indicating copy to clipboard operation
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...

License: MIT GitHub issues GitHub stars GitHub forks

Evil-BW16 WebUI ๐Ÿš€

Project Logo

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 ๐Ÿ“–

  1. Features
  2. Hardware Requirements
    • BW16 Setup
    • ESP32 Setup
  3. Installation
    • Development Environment Setup
    • BW16 Firmware Installation
    • ESP32 Web Interface Installation
  4. Web Interface Usage
  5. Advanced Configuration
    • Command Reference
  6. File Structure
  7. Troubleshooting
  8. Development
    • Contributing
  9. Legal Disclaimer
  10. License
  11. Acknowledgments
  12. 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 ๐Ÿ’ป

  1. 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.
  2. 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
      
  3. 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 ๐Ÿ“ฒ

  1. Connect the BW16 board via the USB-to-Serial adapter (TX โ†’ RX, RX โ†’ TX, GND โ†’ GND).
  2. Open the sketch:
    Evil-BW16/Evil-BW16.ino in the Arduino IDE.
  3. Select board:
    Tools > Board > Ai-Thinker BW16.
  4. Configure settings:
    • Upload Speed: 921600
    • CPU Frequency: 160MHz
    • Flash Size: 4MB (32Mb)
  5. Upload the sketch to the BW16 board.

ESP32 Web Interface Installation ๐ŸŒ

  1. Connect the ESP32 board via USB.

  2. Open the sketch:
    ESP32/ESP32.ino in the Arduino IDE.

  3. Select board:
    Tools > Board > ESP32 Dev Module.

  4. Configure settings:

    • Upload Speed: 921600
    • CPU Frequency: 240MHz
    • Flash Size: 4MB (32Mb)
  5. Upload the sketch to the ESP32.


Web Interface Usage ๐Ÿ’ก

  1. Power on the device (BW16 + ESP32).
  2. Connect to the WiFi access point:
    • SSID: Evil-BW16
    • Password: password1234
  3. Open a web browser and navigate to:
    http://192.168.4.1
  4. 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:

  1. Open ESP32/ESP32.ino in the Arduino IDE.
  2. Update the relevant constants near the top of the file.
  3. 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 ๐Ÿค

  1. Fork the repository.
  2. Create a new branch with a descriptive name.
  3. Make your changes or additions.
  4. 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 โค๏ธ