https://github.com/linuxndroid/bluetooth-ducky
Bluetooth Ducky is a stealthy HID injection tool built on the ESP32 platform. It emulates a Bluetooth keyboard to silently inject keystrokes into a paired device.
https://github.com/linuxndroid/bluetooth-ducky
ble-device blueducky bluetooth ducky-payloads esp32 esp32-ducky esp32-wroom hacker hacking hid hid-attacks hid-injection linuxndroid mrrobot rubber-ducky
Last synced: 9 days ago
JSON representation
Bluetooth Ducky is a stealthy HID injection tool built on the ESP32 platform. It emulates a Bluetooth keyboard to silently inject keystrokes into a paired device.
- Host: GitHub
- URL: https://github.com/linuxndroid/bluetooth-ducky
- Owner: Linuxndroid
- Created: 2025-07-21T09:07:20.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-07-22T10:33:24.000Z (9 months ago)
- Last Synced: 2025-10-06T13:26:14.302Z (7 months ago)
- Topics: ble-device, blueducky, bluetooth, ducky-payloads, esp32, esp32-ducky, esp32-wroom, hacker, hacking, hid, hid-attacks, hid-injection, linuxndroid, mrrobot, rubber-ducky
- Language: C++
- Homepage:
- Size: 29.3 KB
- Stars: 11
- Watchers: 0
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π Bluetooth Ducky ESP32 - HID Injection Tool



Bluetooth Ducky is a stealthy HID injection tool built on the ESP32 platform. It emulates a Bluetooth keyboard to silently inject keystrokes into a paired device. Perfect for red team operations, security research, and automation β all done **wirelessly**.
> β οΈ **Disclaimer**: This project is for educational and authorized testing purposes only. Unauthorized use may violate laws. Use responsibly.
---
## β¨ Features
- β
Bluetooth HID (keyboard) emulation via ESP32
- β
Auto-pairing support for previously connected devices
- β
Ducky Script-style payloads (easily customizable)
- β
Trigger via boot or over Serial
- β
Supports Windows, macOS, Linux, and Android
- β
Lightweight, portable, and easy to use
---
## π¦ Requirements
- [Arduino IDE Portable](https://www.arduino.cc/en/software)
- ESP32 Dev Board (e.g., ESP32-WROOM-32)
- Micro USB Cable
- BLE Keyboard Library ([ESP32-BLE-Keyboard](https://github.com/T-vK/ESP32-BLE-Keyboard))
---
## π§ Installation
1. **Install the ESP32 Board in Arduino IDE**
- Go to `File > Preferences`
- Add the following URL to *Additional Board Manager URLs*:
```
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
```
- Go to `Tools > Board > Boards Manager`, search `esp32` and install V.2.0.7
2. **Install BLE Keyboard Library**
- Download the library ZIP: [ESP32-BLE-Keyboard](https://github.com/T-vK/ESP32-BLE-Keyboard/archive/refs/heads/master.zip)
- In Arduino IDE, go to `Sketch > Include Library > Add .ZIP Library...`
- Select the downloaded ZIP file.
3. **Select the Board and Port**
- Go to `Tools > Board > ESP32 Dev Module`
- Select the correct COM port under `Tools > Port`
4. **Open and Edit the Code**
- Open `Ducky.ino` in Arduino IDE
- Customize the payload as needed
5. **Upload to ESP32**
- Click β
**Verify** then β¬οΈ **Upload**
- Once uploaded, disconnect and power it externally
---
## π How to Use
1. **Power the ESP32 device**
It will start broadcasting as a Bluetooth keyboard.
2. **Wait for the Victim to Pair**
On first use, the victim must accept the pairing.
After this, the ESP32 will auto-connect silently in the future.
3. **Payload Execution**
Once connected, the predefined script will automatically run and execute on the victimβs machine.
---
## π₯ Downloads
ESP32 Serial Monitor GUI?
β‘οΈ **Download it from the [Releases](https://github.com/Linuxndroid/Bluetooth-Ducky/releases)** section.
The monitor app allows you to:
- Send serial commands to your ESP32 device
- View real-time logs and responses
- Trigger payloads manually
- Customize interaction with your Bluetooth Ducky tool
> Available for **Windows (.exe)** β more platforms coming soon.
## π» Available Serial Commands
Use these commands via the Serial Monitor or GUI Monitor App:
| Command | Action |
|--------|--------|
| `notepad` | Open Notepad |
| `youtube ` | Search & open YouTube |
| `google ` | Search & open Google |
| `whatsapp ` | Send WhatsApp message |
| `wp-ss ` | Send screenshot via WhatsApp |
| `cmd` | Open Command Prompt |
| `shutdown` | Shutdown PC in 5 seconds |
| `run` | Open Run dialog (Win + R) |
| `url ` | Execute command in Run box |
| `lock` | Lock the PC |
| `close` | Close current app |
| `ENTER` | Press Enter key |
| `screenshot` | Take a screenshot |
| `CTRL+` | Press CTRL with a key (e.g., `CTRL+A`) |
| `WIN`, `LEFT`, `RIGHT`, `UP`, `DOWN` | Arrow or Win keys |
| `WiFi` | Dump saved Wi-Fi passwords |
| `Fake` | Show fake system update |
| `Spam` | Display spam alert box |
| `help` | Show all commands |
| `About` | Show creator info |
## π€ Creator Info
Created by:
**Linuxndroid** & **Krishna Rajput UP61**
π Stay connected for updates, demos, and new tools!
---
## π‘οΈ Legal Notice
This tool is intended **only for authorized use** in testing, education, or red teaming.
Misuse without consent is strictly prohibited and may violate laws.
---
## π License
This project is licensed under the [MIT License](LICENSE).
---
## β€οΈ Credits
- ESP32 BLE Keyboard Library by [T-vK](https://github.com/T-vK/ESP32-BLE-Keyboard)
- Inspired by USB Rubber Ducky and other open-source red team tools
---
# Watch Video For More Information.
[](https://youtu.be/up9fcNwsiqg?feature=shared)
Made with β€οΈ By Linuxndroid
# Available Our [Hacking Course](https://linuxndroid.in)
# Follow Me on :
[](https://www.instagram.com/linuxndroid)
[](https://www.youtube.com/channel/UC2O1Hfg-dDCbUcau5QWGcgg)
[](https://www.linuxndroid.in)
## π§ͺ Example Payloads
```cpp
delay(1000); // Wait 1 second
typeSlow("https://www.instagram.com/linuxndroid"); // Type message
bleKeyboard.write(KEY_RETURN); // Press Enter