
A classic bluetooth-controlled USB Rubber Ducky clone built with ESP32 boards.
- Minimal Setup.
- Simply controlled by Serial Console.
- Execute payloads by just sending appropiate commands.
- LED status for check connection with BlueQuack.
- List and view payloads on serial console.
- Update and reset keyboard name for social engineering.
- Mute and unmute system sounds.
- Use those ESP32 boards which has at least
4MB
flash memory. - Use SD cards which is
FAT32
formatted and at least4GB
and upto16GB
.
1
NodeMCU ESP-32S V1.1 38-Pins1
Micro SD Card Module (3.3V / 5V)1
SD Card1
Micro SD Card Reader1
Micro-B USB / Type-C USB Cable with data transfer support
NODEMCU ESP-32S | Micro SD Card Module (3.3V/5V) |
---|---|
3.3V/5V | VCC |
GND | GND |
GPIO19 | MISO |
GPIO23 | MOSI |
GPIO18 | SCK |
GPIO5 | CS |
- Download
Arduino IDE 2.X.X
from here according to your Operating System. - Install it.
- Go to
File
→Preferences
→Additional Boards Manager URLs
. - Paste the following link :
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Click on
OK
. - Go to
Tools
→Board
→Board Manager
. - Wait for sometimes and search
esp32
byEspressif Systems
. - Simply install version
2.0.15
.- Wait for sometime and after that it is installed.
- Download
ESP32-BLE-Keyboard
library from here. - Go to
Sketch
→Include Library
→Add .ZIP Library...
. - Select
ESP32-BLE-Keyboard-master.zip
file from the downloaded location of PC/Laptop.- To verify, Go to
Sketch
→Include Library
and check the library name underContributed libraries
section. - If it is here, then it is successfully added.
- To verify, Go to
- Done! Arduino IDE with required boards and libraries is ready.
- Download CP210x driver according to your operating system from here.
- Download or Clone the Repository.
- Open the folder and then open
BlueQuack
folder and just double click onBlueQuack.ino
file.
- It opens in Arduino IDE.
- Compile the code.
- Select the correct board from the
Tools
→Board
→esp32
.
- It is generally
NodeMCU-32S
.
- Select the correct port number of that board.
- Upload the code.
- Wait for sometime to upload.
- Done!
- Open Adafruit ESP Web Flasher from here.
- Set the Baud Rate to
115200 Baud
. - Connect
ESP32
with a USB cable and then to the PC/Laptop. - Press and hold the
BOOT
button. - Click on
Connect
button. - Select your Device COM Port in the Pop-Up Window.
- Release the
BOOT
button. - Click on
Erase
button.- Wait for sometimes to successfully erased.
- Download
3
files from Releases.- The files are :
bootloader.bin
partitions.bin
bluequack.bin
- The files are :
- Select
bootloader.bin
file with offset0x1000
. - Select
partitions.bin
file with offset0x8000
. - Select
bluequack.bin
file with offset0x10000
. - Click on
Program
button.- Wait for sometimes to successfully programmed.
- Press and release the
BOOT
button. - Unplug and plug the
ESP32
on the PC/Laptop. - Done!
BlueQuack
is ready.
- Open Notepad or any other text editor.
- Write your payload in it.
- Put Micro SD Card in Micro SD Card Reader and plug into PC/Laptop.
- When saving the file, select Micro SD Card.
- Name the payload as
payload-1
,payload-2
etc.- It is saved by default as .txt files.
- Connect bluetooth device named
BlueQuack
to any Mobile/PC/Laptop via bluetooth. - Open Serial Console from here.
- Select baud rate to
115200
. - Click on
Connect
button. - In pop-up, select your device.
- Type
help
and hit enter to get list of supported commands.
Mnemonics | Description | Example |
---|---|---|
WAIT | It add time in the code. Time is in milliseconds. 1000 ms = 1 second. |
WAIT 1000 |
TYPE | It add text want to type in the code. | TYPE Hello World! |
LOOP | It runs commands for a certain number of times. Synatx is LOOP number-of-times commands |
LOOP 3 TYPE Hello World! EXIT LOOP 4 TAB EXIT LOOP 1 CTRL S EXIT LOOP 1 CTRL SHIFT N EXIT |
INF | It run commans infinitely. Syntax is INF commands |
INF TYPE Hello World! EXIT INF TAB EXIT |
-
- It is used to put the cursor in the next line.
- It is only used with TYPE.
- Example :
TYPE Hello World!-
- If TYPE contain any command and then
-
then it run automatically withoutENTER
key.
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
LEFT
UP
RIGHT
DOWN
TAB
HOME
END
PGUP
PGDN
CAPS
NUM
SCROLL
GUI
ESC
PRTSCR
PAUSE
INSERT
DEL
BKSP
ENTER
CTRL
SHIFT
ALT
`
!
@
#
$
%
^
&
*
(
)
-
=
[
]
\
;
'
,
.
/
SPACE
~
_
+
{
}
|
:
"
<
>
?
0
1
2
3
4
5
6
7
8
9
WAIT 1000
GUI R
WAIT 1000
TYPE notepad
WAIT 1000
ENTER
WAIT 1000
TYPE Hello World!
WAIT 1000
GUI R
WAIT 1000
TYPE cmd
WAIT 1000
CTRL SHIFT ENTER
WAIT 1300
ALT Y
WAIT 1000
CTRL SHIFT N
WAIT 1200
TYPE hello
WAIT 1100
ENTER
WAIT 1000
GUI R
WAIT 1000
TYPE notepad
WAIT 1000
ENTER
WAIT 1000
LOOP 6
TYPE Hello World!-
WAIT 50
EXIT