Difference between revisions of "USB Rubber Ducky: Firmware Update"

From Embedded Lab Vienna for IoT & Security
Jump to navigation Jump to search
(documentation created)
 
(No difference)

Revision as of 14:04, 6 July 2022

Summary

This article consists of a short guide on changing or updating the USB Rubber Ducky firmware. It is intended as a supplement to the existing online guides since those are partly out of date.

Requirements

  • Host PC running Ubuntu Linux or a Virtual Machine (tested on 20.04 LTS)

Description

We will be using the Ducky-Flasher utility by kmichael500 which is provided here (https://github.com/hak5darren/USB-Rubber-Ducky/wiki/Flashing-ducky#DuckyFlasher_Utility) and we will make certain adjustments to get it to run on a modern Ubuntu Linux system. The afore mentioned guide also provides ways to update firmware on Windows or OSX, but we could not get those to work on current Operating Systems.

  1. Install dfu-programmer
    apt-get install dfu-programmer
  2. Install Python 2.x
    apt-get install python2
  3. Download and unzip Ducky-Flasher
    wget https://github.com/hak5darren/USB-Rubber-Ducky/raw/master/Flash/ducky-flasher1.0.zip
    unzip ducky-flasher1.0.zip
  4. Open ducky-flasher with your favourite text editor and change the Shebang to #!/usr/bin/env python2
  5. (optional) Ducky-Flasher provides four different firmware images (Original, FAT Duck, Detour Duck and Twin Duck).
    If you want to use a different firmware image you can either rename the file and overwrite to the corresponding file in the ducky-flasher/firmware directory or modify the Ducky-Flasher program itself to add new firmware. Firmware images can be found here.
  6. Install the Ducky-Flasher
    sudo python2 setup.py
  7. Connect the Rubber Ducky in DFU mode by keeping the button pressed while plugging it in.
  8. Start the Ducky-Flasher and follow the instructions
    sudo ducky-flasher
  9. (optional) Uninstall the Ducky-Flasher
    sudo python2 uninstall.py

References