DIY BadUSBs
General Hardware Requirements
Section titled “General Hardware Requirements”Finding suitable hardware to make your own BadUSB can be confusing. There are countless development boards out there, and they are all very similar. When you aren’t sure if something can be turned into a BadUSB or not, ask yourself these questions:
- USB Protocol - Can it act as a keyboard? (Look for specifications)
- Programmable - Can you program it? (What language/SDK/platform is it using?)
- Documentation - Are there code examples or BadUSB projects for it?
ATmega32u4
Section titled “ATmega32u4”The ATmega32u4 is a classic, support for it is built into the Arduino IDE by default, and there are plenty of development to choose from. Of course, it’s not the most powerful microcontroller anymore, but since it’s been around for so long, means that you can easily find example code and projects for it. Popular boards include:
- Sparkfun Pro Micro
- Arduino Leonardo
- Arduino Micro
- CJMCU Beetle
- SS Micro
Digispark
Section titled “Digispark”This is probably the most popular choice for beginners since you can buy Digisparks for $3 or less, and it comes with USB-A out of the box. It’s based upon the ATtiny85, which doesn’t support USB hardware-wise, but the Digispark creators were able to implement it in software. It’s not very powerful, and the little memory it has is at its limits when using the keyboard library, but it is supported in the Arduino IDE and comes with an example code. http://digistump.com/products/1
ATsamd21
Section titled “ATsamd21”The samd21 chip is gaining popularity in the maker space fast thanks to its small footprint and powerful hardware. It has Arduino IDE support, but many boards can also run Circuit Python! Popular boards include:
Adafruit has a guide on how to turn their Neo Trinkey into a USB Rubber Ducky: https://learn.adafruit.com/neo-trinkey-circuitpython-rubber-ducky
Raspberry Pi Zero W
Section titled “Raspberry Pi Zero W”The Raspberry Pi Zero W can also act as a USB device but brings a lot more power to the table simply because it’s a tiny Linux computer. The P4wnP1 A.L.O.A. project is an excellent example of how this hardware power can be utilized to make a cheap tool for pentesting.