Building a RubberDucky with Raspberry Pi Pico

The RubberDucky is a useful tool for computer/network administration, but can also be used for some shenanigans.

Preparations

Before beginning this little project, a few things are needed.

After all the things are downloaded, everything is ready for the installation and deployment. Just follow the steps.

Creating the RubberDucky

Connect the Raspberry Pi

Hold the button on Raspberry Pi and connect it to your computer using the USB cable. The Pi should show up as RPI-RP2.

Adding CircuitPython

Put the file from CircuitPython into the root directory of the Raspberry Pi Pico. The Pi will reboot, connect again and appear as CIRCUITPY.

Adding Adafruit Bundle

Copy files/folders into the lib directory on the Pico from the Adafruit Bundle. The files are located in the lib folder of the Adafruit folder.
Following items need to be copied:
  • adafruit_hid
  • adafruit_debouncer.mpy
  • adafruit_ticks.mpy
  • asyncio

Adding files from Git

Put boot.py into the root directory and overwrite code.py with code.py retrieved from the git.
From now on the Pico needs to be put into setup/arming mode, otherwise the device will execute scripts.

Adding scripts/payloads

Save scripts as payload.dd om the root directory of the Pico.
You can save up to six scripts: payload.dd, payload2.dd, etc., payload6.dd

Usage

Setup/Arming Mode

To set the Raspberry into setup mode, connect GPIO 0 to the ground.

Selecting the Payload

To select the payload connect the following GPIO pins to the ground.
  • Payload 1: GPIO 4
  • Payload 2: GPIO 5
  • Payload 3: GPIO 10
  • Payload 4: GPIO 11
  • Payload 5: GPIO 14
  • Payload 6: GPIO 15

Stealth Mode

When the stealth mode is activated the Pi will not show up as a USB device if you connect it to a computer. For this connect GPIO 16 to Ground.

Change Keyboard Layout

The original keyboard layout is set to US English. To change the language, download the keyboard layouts from here.
Put the keyboard layout into the lib folder on the Pi and change the imports in code.py.

Go Back