Skip to content

FLOCK4H/Bleach

Repository files navigation

Bleach logo

Bleach v1.5

Software for ESP32 with LCD 2x16 screen and waveshare rotary button (sensor) written in MicroPython

Bleach is designed as a pentesting device, and its setup requires substantial knowledge;

therefore, this project is not suitable for beginners

Real advantages

  • Create captive portals (choose from 4 templates)
  • Flood nearby WiFi environment with Beacon Frames
  • Spoof BLE advertisement data to confuse or crash various devices
  • Spoof ESP as other popular device
  • BLE Keyboard, Mouse and Joystick Payload Injection (aka BLE Rubber Ducky)
  • WiFi Packet fuzzer with burst technique
  • Flood WiFi devices with Fake Access Points
  • Scan for BSSID/ESSID of nearby WiFi and Bluetooth networks
  • Play Starships
  • Open-Source code:)

Setup

Before we get started, here's what is necessary:

Easy - This setup allows for BLE/Captive Portal attacks (wifi.send_raw_packet not accessible)

  $ git clone https://github.com/FLOCK4H/Bleach.git
  1. Flash the MicroPython firmware onto the ESP32
  2. Upload project files to the ESP
  3. Disconnect ESP from the device in order to safely connect modules
  4. Connect LCD to ESP32:
  • SCL: GPIO22
  • SDA: GPIO21
  • VCC: 5V
  1. Connect rotary sensor:
  • SIA: GPIO4
  • SIB: GPIO5
  • SW: GPIO2
  • VCC: 3.3V
  • Do not forget to connect GND cables
  1. Plug the ESP to the power source
  2. Take a screwdriver or any thin object and tweak the potentiometer on the back of the LCD screen until the text will be clear to read
  3. By this time you should be fine to go, just without some WiFi features

Advanced

  1. Follow this process to the point where you have esp-idf and MicroPython repos: https://github.com/micropython/micropython/blob/master/ports/esp32/README.md
  2. Inside the folder micropython/ports/esp32/ modify the file network_wlan.c

For the sake of educational purposes I'm only going to tell what declaration you will need to include:

esp_err_t esp_wifi_80211_tx(wifi_interface_t ifx, const void *buffer, int len, bool en_sys_seq);
  1. Bind to MicroPython under name of send_raw_packet
  2. Go back to the guide, build and flash the firmware onto the ESP
  3. Upload project files to the ESP
  4. Disconnect ESP from the device in order to safely connect modules
  5. Connect LCD to ESP32:
  • SCL: GPIO22
  • SDA: GPIO21
  • VCC: 5V
  1. Connect rotary sensor:
  • SIA: GPIO4
  • SIB: GPIO5
  • SW: GPIO2
  • VCC: 3.3V
  • Do not forget to connect GND cables to both components:)
  1. Plug the ESP to the power source
  2. Take a screwdriver or any thin object and tweak the potentiometer on the back of the LCD screen until the text will be clear to read
  3. You are fully geared up

Final Product

  • Simple example made out of a carton box and a black tape

IMG_2124 IMG_2127 IMG_2128

DISCLAIMER & LEGAL NOTICE

The author is not responsible for any illegal, unauthorized or unethical use of the device, software or firmware provided. Always ensure you have the legal rights and authorization for using such tools. Misuse of Bleach may result in legal consequences; users are expected to comply with all applicable regulations and standards.