USB Rubber Ducky: Firmware Update

From Embedded Lab Vienna for IoT & Security
Jump to navigation Jump to search

Summary

This article consists of a short guide on changing/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

  • Ubuntu Linux (tested on 20.04 LTS) or similar

Description

We will be using the Ducky-Flasher utility by kmichael500 which is provided here and we will make certain adjustments to get it to run on a modern Ubuntu Linux system. The afore mentioned guide also provides a way to update firmware on Windows, but this way does not seem to work with current Windows versions. If you want to update the firmware manually you can follow the Unix/OSX guide, which uses the dfu-programmer package like the Ducky-Flasher utility does and should also work on Linux.

  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 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).
    Additional firmware images can be found here. If you want to use one of these image you can rename it and overwrite a image file in ducky-flasher/firmware or modify the Ducky-Flasher program itself to add new firmware.
  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