Introduction: EASY Rubber Duckies With Digispark & DuckyTrainer

About: We are two brothers who like to make things.

In this tutorial you will learn how to setup a USB Rubber Ducky (USB Keystroke Injector) WITHOUT coding!

What is a USB Rubber Ducky?

● USB Device that automatically imitates a human user when connected.

● Much faster than a human, no typographical errors. Most screen interaction can be done without a mouse by using TAB and ARROW keys.

● Useful for benevolent IT productivity purposes in addition to black hat uses.

● Similar to a portable macro but runs without needing to install or execute the macro on the target computer. The computer just thinks it is a human typing on a USB keyboard.

What automation like this excels at right now:

● Repetitive tasks

● Rapid tasks without human error. Humans think slower.

● Tasks requiring huge amounts of data.

● Data entry.

● No forgetfulness

The backstory behind this instructable:

1. IT Job - Developed USB Duckies for speeding up daily bulk laptop setup. >%60 speed increase. Demo Video

2. Developed USB Rubber Ducky programming online course.

3. Realized that the programming skills needed can be automated by a simple app. - Programming course obsolete!

4. Developed DuckyTrainer app to convert recorded keystrokes into code that can run on the portable Digispark Arduino to replay keystrokes automatically.

5. Wrote this 'ible to teach you how to use DuckyTrainer with the dirt-cheap $2 Digispark Arduino board.


Step 1: Installation

If using Arduino 1.6.6 or higher and windows - you will need to download and install the drivers manually. Download, unzip and run “Install Drivers” (on 32bit systems) or “DPInst64” (on 64bit systems).

Install or Unzip the Arduino application.

Run the Arduino application.

In the Arduino application go to the “File” menu and select “Preferences”

In the box labeled “Additional Boards Manager URLs” enter:

...and click OK.
Note: If you already have additional URLs entered in that box, then click the button on the right of the box and enter this URL on a new line.

Go to the “Tools” menu and then the “Board” submenu - select “Boards Manager” and then from the type drop down select “Contributed”:

Select the “Digistump AVR Boards” package and click the “Install” button.

You'll see the download progress on the bottom bar of the “Boards Manager” window, when complete it will show “Installed” next to that item on the list.
NOTE: When complete the install with pop up a Driver Install Wizard window, please click “Next” on this Window to install the drivers for Digistump Boards (If you already have them installed, this installer will update them and install any that are missing) With the install complete, close the “Boards Manager” window and select the Digispark from the Tools→Boards menu. “Digispark (Default - 16.5mhz)” is the board that should be selected by all new users.

Step 2: Record Your Key Commands

Next, you can use the DuckyTrainer app to record some keyboard interaction that you want the Digispark Arduino to play back when plugged into another computer.

Run the app when you are ready, and hit CTRL+Z to stop recording and shutdown DuckyTrainer. Wait a few seconds, and a file called key.ino will appear in the same file folder DuckyTrainer is located in. This file is an Arduino script that you can flash onto the digispark for replaying your keyboard interaction automatically. This was just generated without any coding skills needed.

Step 3: Flash the Script to the Arduino

Right click in key.ino and select open with the Arduino IDE app.

The Digispark works a bit differently than some Arduino compatible products. The Digispark programs with a different procedure.

From the Tools menu select Board→Digispark (Default - 16.5Mhz)... (The Tools→Programmer selection does not matter)

You do not need to plug in your Digispark before invoking upload Hit the upload button.

The bottom status box will now ask you to plug in your Digispark - at this point you need to plug it in - or unplug and replug it.

You'll see the upload progress and then it will immediately run your code on the Digispark.

If you unplug the Digispark and plug it back in or attach it to another power source there will be a delay of 5 seconds before the code you programmed will run. This 5 second delay is the Digispark Pro checking to see if you are trying to program it.

Step 4: Test It!

Plug the Digispark into a windows computer and wait 5 seconds. The Arduino Digispark should automatically replay the interaction you recorded.

Note: you can adjust the delays between key presses in the key.ino file if the target computer is too slow to catch up with the keys automatically typed by changing the millisecond number in any given line of code labeled "delay". For example - DigiKeyboard.delay(2000); for two seconds (2000 milliseconds) delay.

If you want to add new key codes not currently inside the script, see the PDF list of USB scan codes.

Well, I hope you like this Instructable and drop a comment if you need any tips. Thanks for reading!

Arduino Contest 2020

Participated in the
Arduino Contest 2020