A wifi-controlled USB Rubber Ducky clone built with Raspberry Pi Pico W Series boards.
- Minimal Setup.
- Simple and clean webpage for type mnemonics.
- Banner to show uploaded payload name with .txt extension.
- Run Button - Run typed mnemonics.
- Upload Button - Upload .txt files which contain mnemonics to run.
- Save Button - Save typed mnemonics on the system.
- Clear Button - Clears the text area.
- Raspberry Pi Pico W
- Raspberry Pi Pico 2 W
1
Raspberry Pi Pico W or Raspberry Pi Pico 2 W Board1
Micro-B USB Cable with data transfer support
- Download
.uf2
files according to your boards. - Copy the
.uf2
file into the respective board.RPI-RP2
forRaspberry Pi Pico W
andRP2350
forRaspberry Pi Pico 2 W
.- When it is copied, then it disconnects automatically and reconnect as
PICOWQUACK
. - Means CircuitPython is successfully flashed in the
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
board.
- Done! Now,
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
Board is flashed with.uf2
file.
- Download or Clone the Repository.
- Open the folder.
- Make sure that your
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
board is connected to your PC/Laptop.
- Make sure that your
- Copy
code.py
in thePICOWQUACK
.- It ask for replacement of
code.py
file, then replace it. - It will overwrite in the
code.py
file.
- It ask for replacement of
- Copy
boot.py
in thePICOWQUACK
. - Copy
index.html
,styles.css
andscript.js
in thestatic
folder ofPICOWQUACK
.- After 2-3 minutes, an access point is created named
PicoWQuack
whose password ispicowquack
.
- After 2-3 minutes, an access point is created named
- Done! Now,
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
board is ready to use asPicoWQuack
.
- There are three values :
ssid
,password
andip
. - Put the values in double quotes.
- Change as per required.
- Default values :
- ssid :
PicoWQuack
- password :
picowquack
- ip :
192.168.4.1
- ssid :
boot.py
helps to hide / unhide mass storage device to work in stealth.- In
boot.py
, replaceX
with any pin number available on the board inLOC 7
. - By default, the mass storage is hidden when
boot.py
is inPICOWQUACK
. - To show mass storage, put jumper wire between that pin number mentioned in
boot.py
andGND
and press and release theRST
orRESET
button. - To hide mass storage, just remove jumper wire between them and press and release the
RST
orRESET
button.
- Connect to that access point.
- When connected successfully, open your browser and type the following IP -
192.168.4.1
. - Hit enter.
- A webpage open like this :

- Type your script and click on
Run
button.- The script executes!
- By clicking
Upload
button, we can load.txt
file and it show in text area and then we can run that script by clicking onRun
button. - By clicking
Save
button, we can save mnemonics in text area on the system in.txt
file. - By clicking
Clear
button, we can clear the text area.
Tip
- Start your code with
WAIT
so that board get time to initiate. - While using
LOOP
use only one command. - If
LOOP
contain multiple commands, putWAIT
between them so that it add a small delay between them.
- Connect
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
with a USB cable. - Press and hold the
BOOTSEL
button and connect to the PC/Laptop.- When it connects, then
Raspberry Pi Pico W
orRaspberry Pi Pico 2 W
show as a removable storage device namedRPI-RP2
orRP2350
respectively. - When
RPI-RP2
orRP2350
is showing, then release theBOOTSEL
button.
- When it connects, then
- Copy the
flash_nuke.uf2
file in theRPI-RP2
orRP2350
.- When it is copied, then it disconnects automatically and reconnect as
RPI-RP2
orRP2350
.
- When it is copied, then it disconnects automatically and reconnect as
- PICOWQUACK/
- static/
index.html
styles.css
script.js
code.py
boot.py
network.conf
- static/
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 |
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 100
ENTER
EXIT