Skip to content

Latest commit

 

History

History
1045 lines (596 loc) · 55.5 KB

LINKS.md

File metadata and controls

1045 lines (596 loc) · 55.5 KB

Links

A collection of USB hacking–related links.

For an overview of the state of things in the USB hacking field as of a few years ago, see:

Follow @andreyknvl on Twitter or @xairy@infosec.exchange on Mastodon to be notified of updates.

Contents

Essentials

"USB 101: An Introduction to Universal Serial Bus 2.0" by Robert Murphy [book]

"USB in a NutShell" by Craig Peacock [articles]

USB: Document Library

Workshops

"Hacking the USB World with FaceDancer" by Kate Temkin [workshop]

Hardware

Malicious hardware

Hardware (and related tools) developed specifically for executing USB attacks. Some hardware from other sections can also be used for this.

Rubber Ducky

Flash drive–looking device that pretends to be a USB keyboard and injects keystrokes.

Rubber Ducky [hardware]

hak5 docs: USB Rubber Ducky [docs]

usbrubberducky-payloads: Rubber Ducky payload repository [github]

Bash Bunny

Can pretend a USB Ethernet, serial, mass storage, and HID device.

Bash Bunny [hardware]

hak5 docs: Bash Bunny [docs]

Bash Bunny wiki [docs]

bashbunny-payloads: Bash Bunny payload repository [github]

Cactus WHID

Rubber Ducky clone that can be triggered over Wi-Fi.

Cactus WHID: Wi-Fi HID Injector — USB Rubber Ducky / BadUSB On Steroids [hardware] [video]

WHID Elite: GSM-enabled Open-Source Multi-Purpose Offensive Device [hardware]

Cactus Micro Rev2 [hardware]

ESPloitV2: Wi-Fi Keystroke Injection Tool designed for Cactus WHID [github]

Flipper Zero

A general-purpose hacking tool that includes support for emulating a USB HID device.

Flipper Zero [hardware]

Bad USB - Flipper Zero [docs]

Flipper-Zero-BadUSB: Flipper Zero BadUSB payloads [github]

badusb: Flipper Zero BadUSB payload library [github]

Malicious cables

2020: "List of current USB cables with implants for keystroke injection attacks & more" by Marcus Mengs [picture]

O.MG Cable [hardware] [video review] [payloads]

USBNinja [hardware]

Evil Crow Cable [hardware]

Evil Crow Cable Pro [hardware]

USBSamurai [hardware] [article]

AirDrive Forensic Keylogger Cable & Module [hardware]

KeyGrabber Forensic Keylogger Cable & Module [hardware]

Keyloggers

AirDrive: Keylogger, Forensic Keylogger [hardware]

KeyGrabber: Pico, USB, TimeKeeper, Forensic Keylogger [hardware]

Forensic Keylogger Keyboard [hardware]

Key Croc [hardware]

KEYVILBOARDs [hardware]

Maltronics WiFi KeyLogger Internal [hardware] [discontinued]

Other malicious hardware

LAN Turtle [hardware] [docs] [modules]

O.MG Plug [hardware]

USB Killer [hardware]

rpk2: Evil Mass Storage [hardware] [github] [article]

Sniffers and analyzers

Hardware developed specifically for sniffing and analyzing USB communications. Some hardware from the Facedancer boards and Linux boards sections can also be used for this.

USB

Beagle: USB 12, USB 480, USB 480 Ultimate, USB 5000 v2 Ultimate [hardware]

OpenVizsla [hardware] [github] [shop] [articles]

LambdaConcept USB2 SNIFFER [hardware]

PhyWhisperer-USB [hardware] [github]

Daisho: SuperSpeed USB 3.0 FPGA platform [hardware] [decommissioned] [article] [github]

Low-cost USB Sniffer [hardware]

serialusb [hardware] [decommissioned] [article] [wiki]

USB Power Delivery

Twinkie: USB-PD Sniffer [hardware]

Twonkie: USB-PD sniffer/injector/sink based on Twinkie [hardware] [shop]

twebkie: USB Power Delivery analyzer directly from web [github]

usb.org: USB Power Delivery Compliance [hardware]

Facedancer boards

Hardware and tools compatible with the modern Facedancer framework and its older versions.

Modern

Cynthion: Multi-tool for building, analyzing, and hacking USB devices [hardware]

GreatFET One [hardware] [article] [video]

Hydradancer: HydraUSB3-based backend for Facedancer [hardware] [upcoming] [article]

Facedancer: Modern framework for all Facedancer boards [github] [video]

packetry: Fast, intuitive USB 2.0 protocol analysis application for use with Cynthion [github]

raw-gadget/Facedancer: Prototype of Raw Gadget–based Facedancer backend for Linux boards [github]

Legacy

Facedancer21 (and older) [hardware] [article]

GoodFET42 (and older) [hardware]

Raspdancer: Facedancer21 expansion board for Raspberry Pi [hardware]

BeagleDancer: Facedancer21 expansion board for BeagleBone [hardware]

facewhisperer: USB host add-on for the ChipWhisperer side-channel analysis tool [hardware] [video] [article]

goodfet: Legacy framework for Facedancer21 and GoodFET boards [github]

umap: USB host security assessment tool for Facedancer21 and GoodFET boards [github]

umap2: Version 2 of umap [github]

nu-map: Fork of umap2 based on modern Facedancer framework[github]

badusb2-mitm-poc: USB MitM with two Facedacer21 boards [github]

Linux boards

A multitude of Linux boards can be used for USB device emulation; see the Gadget subsystem section. This section only mentions the somehow notable of them.

Raspberry Pi Zero

The cheapest and most compact of the Raspberry Pi boards.

Raspberry Pi Zero [hardware]

Turning your Raspberry PI Zero into a USB Gadget [article]

Raspberry Pi Zero OTG Mode [article]

P4wnP1: Highly customizable USB attack platform based on Rasbperry Pi Zero [github] [writeup] [Kali image]

poisontap: Malicious Ethernet USB devices based on Raspberry Pi Zero [github]

RaspberryPiZero_HID_MultiTool: Scripts for turning Raspberry Pi Zero into various USB devices [github]

rspiducky: Turns Rasberry Pi Zero into Rubber Ducky [github]

sahara_emulator: Emulates Qualcomm Sahara using Raspberry Pi Zero [github]

(Raspdancer: Facedancer21 expansion board for Raspberry Pi [hardware])

Beagle boards

These were the first Linux boards that were used for implementing USB-related tools.

BeagleBone Black [hardware]

BeagleBoard-xM [hardware]

USBProxy-legacy: USB proxy for BeagleBone Black based on libusb and GadgetFS [github]

bb_usb_sniffer: USB sniffer for BeagleBoard-xM based on custom gadget driver

usbq: Python framework for monitoring and modifying USB communications [github] [usbq_core] [usbq_userland]

2010: "BeagleBoard/GSoC/2010 Projects/USBSniffer" [docs] [blog]

2014: "USBProxy: Building an Open and Affordable USB Man in the Middle Device" by Dominic Spill [slides] [article] [video]

2014: "USB write blocking with USBProxy" by Dominic Spill [slides] [video]

2015: "NSA Playset: USB Tools" by Dominic Spill [slides] [summary] [video]

2016: "USBiquitous: USB intrusion toolkit" by Benoit Camredon [article]

(BeagleDancer: Facedancer21 expansion board for BeagleBone [hardware])

USB Armory

USB Armory [hardware] [github]

2015: "USB Armory as an Offensive Attack Platform" [paper]

2016: "Forging USB armory" by Andrea Barisani [slides] [video]

2016: "Snagging creds from locked machines" by Rob Fuller [article]

2017: "How to Build a USB Analyzer with USB Armory? - Creating an Armory Sandbox" by Pedro Vilaca [article] [github]

OpenStick

OpenStick [github] [wiki] [blobs]

2022: "Hackable $20 Modem Combines LTE And Pi Zero W2 Powe" by Arya Voronova [article]

2022: "OpenStick: Some Preliminary Investigations" [article]

2023: "P4wnP1-LTE" by Rogan Dawes [article]

2022: "OpenStick" by Zoltan Mizsei [article]

UF896 - Qualcomm MSM8916 LTE router ~384MiB RAM/2.4GiB flash, Android: OpenWrt? [forum]

OpenStick WIP notes [github]

openstick-stuff [github]

Android

android-keyboard-gadget: Convert Android device into USB keyboard/mouse [github]

DroidDucky: Simple DuckyScript interpreter in Bash [github] [article]

Arduino boards

Many Arduino boards and their clones can be used for USB device emulation. This section provides only a few notable links; there is too many to list all.

Arduino Classic boards [hardware]

BadUSB DIY [playlist]

Teensy

Teensy 3.2 [hardware]

Teensy 2.0 [hardware]

Teensy docs: USB Serial, USB Keyboard, USB Mouse, USB Joystick, USB MIDI, USB Flight Sim [docs]

Getting started with Teensy [article]

cores: Teensy Core Libraries for Arduino [github]

Pateensy: Rubber Ducky–like payload for Teensy [github]

Brutal: Various payloads for Teensy [github]

USBdriveby: DNS spoofer payload for Teensy [github]

Kautilya: HID payloads for Teensy [github]

Digispark

Digispark: Tiny, Arduino-enabled, USB development board [hardware] [aliexpress]

Configuring Digispark for Arduino IDE and upgrading bootloader [article]

Attiny85: Rubber Ducky payloads for Digispark ATtiny85 [github]

Duckyspark: Translator from USB Rubber Ducky payloads to Digispark code [github]

micronucleus: ATtiny USB bootloader with strong emphasis on bootloader compactness [github]

CJMCU BadUSB

CJMCU BadUSB [hardware]

bad_ducky: Instructions for CJMCU BadUSB [github] [wiki]

CJMCU_ATMEGA32U4_BADUSB: Guide on using DuckyScript with CJMCU BadUSB [github]

WiFi Duck

Malduino [hardware]

DSTIKE WiFi Duck [hardware]

WiFiDuck: Wireless keystroke injection attack platform [github]

Other hardware

Tomu: An ARM board that fits inside your USB connector [hardware]

USB 2.0 Hi-Speed Isolator [hardware]

PortaPow blockers [hardware]

USG [hardware]

C2C caberQU: USB C cable tester [hardware]

Linux USB stack

kernel.org documentation: all, HTML index, USB API [docs]

linux-usb.org [docs]

Bootstrap Yourself with Linux-USB Stack: Design, Develop, Debug, and Validate Embedded USB [book]

Host subsystem

kernel.org documentation: all, HTML index, USB Host API [docs]

2009: "Linux USB drivers" by Michael Opdenacker [slides]

2007: "What actually happens when you plug in a USB device?" [article]

Gadget subsystem

kernel.org documentation: all, HTML index, USB Gadget API [docs]

linux-usb.org: Linux-USB Gadget API Framework [docs]

2021: "USB On-The-Go (OTG)" [article]

2023: "A tour of USB Device Controller (UDC) in Linux" by Herve Codina [slides] [video]

2024: "A comprehensive list of all ConfigFS, FunctionFS, USB Gadget API, etc. tools and libraries on Github" [article]

ConfigFS and FunctionFS

2010: "The USB composite framework" by Michal Nazarewicz [article]

2014: "Make your own USB gadget: Kernel and userspace" [slides]

2014: "Kernel USB Gadget Configfs Interface" by Amit Pundir [slides]

2015: "ConfigFS Gadgets: An Introduction" by Amit Pundir [slides]

2019: "Modern USB gadget on Linux & how to integrate it with systemd" by Andrzej Pietrasiewicz [article] [part 2] [video]

2020: "Modern USB Gadget with Custom USB Functions" by Andrzej Pietrasiewicz [slides] [video]

libusbgx: New USB gadget ConfigFS library [github]

libusbg: Old USB gadget ConfigFS library [github]

gt: Command-line tool for creating USB gadgets via ConfigFS [github]

ptp-gadget: FunctionFS-based gadget for PTP (Picture Transfer Protocol) [github]

gadgetd: System-wide USB gadgets and FunctionFS–based services manager [github] [motivation]

keyboard-gadget: Simple HID keyboard gadget via ConfigFS [github]

GadgetFS

linux-usb.org: usb.c, usbstring.c, usbstring.h [examples]

2016: "Create your own USB gadget with GadgetFS" by Gregory Soutade [article]

libusb-gadget: Simple wrapper library to access GadgetFS [github]

Raw Gadget

raw-gadget: Low-level interface for the Linux USB Gadget subsystem [github]

usb-proxy: USB proxy based on Raw Gadget and libusb [github]

Testing

linux-usb.org: USB Testing on Linux [docs]

2019: "Using dummy-hcd to play with USB gadgets" by Andrzej Pietrasiewicz [article]

2023: "Test a Linux kernel USB Device Controller driver with testusb" by Herve Codina [article]

Software

Assorted software that doesn't specifically belong to the sections above.

Libraries

libusb: Cross-platform library for accessing USB devices [github]

pyusb: Python library for accessing USB devices [github]

linux/tools/usbip: USB/IP tools for Linux [github]

usbipd-win: USB/IP tools for Windows [github]

python-usb-protocol: USB Protocol Library for Python

Capturing software

usbmon: USB packet capture for Linux [docs]

USBPcap: USB packet capture for Windows [github]

Ubuntu wiki: Debugging USB Problems [article]

Analyzers

Wireshark: USB capture setup [docs]

ViewSB: Open-source USB analyzer toolkit for variety of capture hardware [github]

vusb-analyzer: Virtual USB Analyzer [github] [sourceforge]

hidviz: Tool for in-depth analysis of USB HID devices communication [github]

Fuzzers

Also see nu-map, umap2, and umap in the Facedancer boards section.

syzkaller/usb: Coverge-guided Raw Gadget–based Linux USB host fuzzer [github] [slides] [video]

USBFuzz: Coverage-guided QEMU-based USB host fuzzer [github] [paper]

vUSBf: QEMU-based USB host fuzzer [github] [slides] [paper] [video]

UDEFuzz: UDE-based Windows USB host fuzzer [github]

FuzzUSB: Dummy HCD/UDC–based Linux USB gadget fuzzer [github] [paper]

usb-device-fuzzing: Some tools for fuzzing USB devices [github]

FrisbeeLite: GUI-based USB device fuzzer [github] [article]

Defensive

usbguard: Software framework for implementing USB device authorization policies [github]

usb-canary: Linux/OSX tool that uses psutil to monitor devices while your computer is locked [github]

usbkill: Anti-forensic kill-switch that waits for change on USB ports and then immediately shuts down computer [github]

usbwall: Control LDAP users access to USB devices [github]

ukip: USB Keystroke Injection Protection [github]

usbsas: Tool and framework for securely reading untrusted USB mass storage devices [github]

Other software

usbrip: Simple CLI forensics tool for tracking USB events on GNU/Linux [github]

uhubctl: USB hub per-port power control [github]

hub-ctrl.c: Control USB power on port by port basis on some USB hubs [github]

webcam-tools: Update of the UVC webcam tools [github]

USBDescriptorKitchen: USB Descriptor creation and maintainance tool [github]

usbrply: Replay USB messages from Wireshark (.cap) files [github]

virtual-fido: Virtual FIDO2 USB Device [github]

LOGITacker: Tool to enumerate and test vulnerabilities of Logitech Wireless Input devices via RF [github] [branch]

Psychson: Phison 2251-03 (2303) Custom Firmware & Existing Firmware Patches (BadUSB) [github] [article]

MTPwn: PoC exploit for arbitrary file read/write in locked Samsung Android device via MTP (SVE-2017-10086) [github]

usb_cdc: Single/Multi-channel Full Speed USB interface for FPGA and ASIC designs [github]

apple-hid-read-flash.py: Reading Apple HID flash over USB [github] [tweet]

usbrevue: Suite of tools for reverse-engineering USB devices [github]

Research

Articles, talks, and research papers.

Attacking

2023: "Physical Attacks Against Smartphones" by Christopher Wade [slides] [video]

2023: "Intel BIOS Advisory – Memory Corruption in HID Drivers" [article]

2023: "REUnziP: Re-Exploiting Huawei Recovery With FaultyUSB" by Lorant Szabo [articl

2023: "The Impostor Among US(B): Off-Path Injection Attacks on USB Communications" by Robert Dumitru et al. [paper] [github]

2022: "Exploiting the Wii U's USB Descriptor parsing" [article]

2022: "Hacking Some More Secure USB Flash Drives" by Matthias Deeg [article] [part 2]

2022: "Keystroke Reflection: Inside a Side-Channel Exfiltration Technique" [article]

2022: "Breaking Secure Boot on Google Nest Hub (2nd Gen) to run Ubuntu" by Frederic Basse [article]

2022: "CVE-2021-45608 | NetUSB RCE Flaw in Millions of End User Routers" by Max Van Amernngen [article]

2021: "Achieving Linux Kernel Code Execution Through a Malicious USB Device" by Martijn Bogaard and Dana Geist [slides]

2020: "Cheating in eSports: How to cheat at virtual cycling using USB hacks" by Brad Dixon [slides] [video]

2019: "BadUSB in Routers" [slides] [github]

2019: "eyeDisk. Hacking the unhackable. Again" [article]

2019: "Simple AV Evasion Symantec and P4wnP1 USB" [article]

2019: "Hacking microcontroller firmware through a USB" [article]

2019: "Virtual Media Vulnerability in BMC Opens Servers to Remote Attack" [article] [github]

2019: "Command Injection With USB Peripherals" by Danny Rosseau [article]

2019: "Technical analysis of the checkm8 exploit" [article]

2018: "ATtention Spanned: Comprehensive Vulnerability Analysis of AT Commands Within the Android Ecosystem" [paper]

2018: "USB Hub Bug Hunting & Lessons Learned" [article]

2018: "Tick Group Weaponized Secure USB Drives to Target Air-Gapped Critical Systems" [article]

2018: "Advanced USB key phishing" [article]

2018: "Android: directory traversal over USB via injection in blkid output" [article]

2018: "Opening Black Box Systems with GreatFET+FD" [slides]

2018: "Here's a List of 29 Different Types of USB Attacks" by Catalin Cimpanu [article]

2018: "OATmeal on the Universal Cereal Bus: Exploiting Android phones over USB" [article]

2018: "Oh No, Where's FIDO? - A Journey into Novel Web-Technology and U2F Exploitation" [video]

2017: "USB Snooping Made Easy: Crosstalk Leakage Attacks on USB Hubs" by Yang Su et al. [paper]

2017: "Exploiting USB/IP in Linux" by Ignat Korchagin [slides]

2016: "A Monitor Darkly: Reversing and Exploiting Ubiquitous OSD Controllers" by Ang Cui [slides] [video] [code]

2016: "Universal Serial aBUSe: Remote Physical Access Attacks" by Rogan Dawes and Dominic White [slides] [video] [article] [code]

2016: "CVE-2016-2384: Exploiting a double-free in the Linux kernel USB MIDI driver" by Andrey Konovalov [article]

2015: "USB Armory as an Offensive Attack Platform" [paper]

2015: "USB Attack to Decrypt Wi Fi Communications" by Jeremy Dorrough [video]

2015: "USB - An Attack Surface of Emerging Importance" [thesis]

2014: "BadUSB - On Accessories that Turn Evil" by Karsten Nohl and Jakob Lell [video] [wiki]

2014: "USB Attacks Need Physical Access Right? Not Any More..." by Andy Davis [video]

2014: "USB for All!!1" by Jesse Michael and Mickey Shkatov [slides]

2014: "Mouse Trap: Exploiting Firmware Updates in USB Peripherals" by Jacob Maskiewicz et al. [paper]

2014: "HubCap: pwning the ChromeCast" [article]

2014: "USB connection vulnerabilities on Android smartphones" by Andre Fernando Lopes Pereira [thesis]

2013: "iSeeYou: Disabling the MacBook Webcam Indicator LED" [paper]

2012: "Emulating USB DFU to Capture Firmware" by Travis Goodspeed [article]

2011: "Exploiting USB Devices with Arduino" [article] [slides]

2009: "USB Attacks: Fun with Plug and 0wn" by Rafael Dominguez Vega [slides]

2009: "USB Device Drivers: A Stepping Stone into your Kernel" by Moritz Jodeit and Martin Johns [slides]

Fuzzing

2023: "Automotive USB Fuzzing" by Euntae Jang et al. [video]

2022: "Fuzzing USB with Raw Gadget" by Andrey Konovalov [slides] [video]

2022: "PrIntFuzz: Fuzzing Linux Drivers via Automated Virtual Device Simulation" by Zheyu Ma et al. [paper]

2022: "FuzzUSB: Hybrid Stateful Fuzzing of USB Gadget Stacks" by Kyungtae Kim et al. [paper] [github]

2020: "USBFuzz: A Framework for Fuzzing USB Drivers by Device Emulation" by Hui Peng and Mathias Payer [paper] [github]

2019: "Coverage-Guided USB Fuzzing with Syzkaller" by Andrey Konovalov [slides] [video] [docs]

2019: "USB Fuzzing: A USB Perspective" by Dave Jing Tian [article]

2018: "Massive scale usb device driver fuzz without device" [slides]

2017: "POTUS: Probing Off-The-Shelf USB Drivers with Symbolic Fault Injection" by James Patrick-Evans et al. [paper]

2015: "Introduction to USB and Fuzzing" by Matt DuHarte [video]

2015: "Don't Trust Your USB! How to Find Bugs in USB Device Drivers" by Sergej Schumilo et al. [paper] [video] [github]

2014: "Lowering the USB Fuzzing Barrier by Transparent Two-Way Emulation" by Rijnard van Tonder and Herman Engelbrecht [paper]

2014: "Implementing an USB Host Driver Fuzzer" by Daniel Mende [slides]

2014: "USB Fuzzing Basics: From fuzzing to bug reporting" by Jordan Bouyat [article]

2012: "Fuzzing the USB in your devices" by Olle Segerdahl [slides]

2011: "USB Fuzzing for the Masses" [article]

2011: "Fuzzing USB devices using Frisbee Lite" by Andy Davis [article] [github]

2010: "USB – Undermining Security Barriers" by Andy Davis [article] [slides] [video]

2009: "Assessment of Software & Hardware Approaches to Building a USB Fuzzer" [article]

Defensive

2020: "A file system for safely interacting with untrusted USB flash drives" by Ke Zhong et al. [paper]

2019: "DeviceVeil: Robust Authentication for Individual USB Devices Using Physical Unclonable Functions" by Kuniyasu Suzaki et al. [paper]

2018: "Discovering and Plotting Hidden Networks created with USB Devices" [paper]

2018: "Preventing USB Attacks with linux-hardened" [article]

2018: "SoK: “Plug & Pray” Today – Understanding USB Insecurity in Versions 1 through C" by Dave (Jing) Tian et al. [paper]

2017: "USBGuard: authorization for USB" by Nur Hussein [article]

2017: "FirmUSB: Vetting USB Device Firmware using Domain Informed Symbolic Execution" [paper]

2017: "How to Build a USB Analyzer with USB Armory? - Creating an Armory Sandbox" by Pedro Vilaca [article] [github]

2016: "Preventing USB Attacks with Grsecurity" [article]

2016: "Making USB Great Again with USBFILTER" [paper]

2015: "Defending Against Malicious USB Firmware with GoodUSB" [paper]

2011: "USB Security Challenges" by Joanna Rutkowska [article]

Reverse engineering

2023: "Hardware investigation of wireless keyloggers" by Antoine Cervoise [article]

2023: "Driver adventures for a 1999 webcam" by Ben Cox [article] [code]

2022: "USB: Reverse Engineering and Writing Drivers" [video]

2020: "Reverse Engineering Firmware (in Mice)" [article] [part 2] [part 3]

2019: "Reverse Engineering USB Devices" with Kate Temkin and Mikaela Szekely [podcast]

2019: "Writing userspace USB drivers for abandoned devices" by Ben Cox [article] [code]

2019: "Making Pioneer DDJ-RB USB audio work on Linux" [part 2]

2017: "Reverse Engineering USB Protocol" [article]

2013: "Reverse engineering a Windows USB driver" by Matt Cutts [article]

2012: "Hacking the Kinect" [articles]

2008: "Learning how to reverse engineer a Windows USB driver: the Luxeed LED keyboard" by Kurt Stephens [article] [github]

Creating tools

2024: "Hydradancer: Faster USB Emulation for Facedancer" by Thiebaud Fuchs [article]

2024: "Unlocking secret ThinkPad functionality for emulating USB devices" by Andrey Konovalov [article]

2023: "Facedancer with Antoine" [video]

2019: "Making USB Accessible: Developing Ultra-low-cost, Open USB Tools" [slides] [video]

2018: "How To Bring HID Attacks To The Next Level" by Luca Bongiorni [video]

2017: "FaceDancer 2.0" by Dominic Spill and Kate Temkin [slides] [video]

2016: "GreatFET: Making GoodFET Great Again" by Michael Ossmann [article] [video]

2016: "Forging USB armory" by Andrea Barisani [slides] [video]

2016: "USBiquitous: USB intrusion toolkit" by Benoit Camredon [article]

2014: "USBProxy: Building an Open and Affordable USB Man in the Middle Device" by Dominic Spill [slides] [article] [video]

2016: "IRON-HID: Create Your Own Bad USB Device" by Seunghun Han [paper] [github]

2014: "OpenVizsla OV3" by Felix Domke [articles]

2013: "Introducing Daisho" by Michael Ossmann and Dominic Spill [slides] [video] [article]

2012: "Emulating USB Devices with Python" by Travis Goodspeed [article]

2010: "BeagleBoard - USB Sniffer" [articles] [docs]

2010: "Programmable HID USB Keystroke Dongle: Using the Teensy as a pen testing device" [article]

Other research

2024: "iOS: a journey in the USB networking stack" by Florian Le Minoux [article]

Misc

USB Complete: Everything You Need to Develop USB Peripherals [book]

Attacks via physical access to USB (DMA...?) [stackexchange]

Can webcams be turned on without the indicator light? [stackexchange]

Turning off the blue status LED on the logitech C920 usb camera? [stackexchange]

USB 3.x SS enumeration [stackexchange]

2024: "Adding a USB Port to the ThinkPad X1 Nano (the Hard Way)" by Joshua Stein [article]

2024: Clearing up misinformation about USB-C [thread]

2024: "Making USB devices - end to end guide to your first gadget" by Uros Popovic [article]

2024: Notes on why USB hubs suck by Michael Ossmann [tweet]

2023: "Getting JTAG on the iPhone 15" by Thomas Roth [video]

2023: "See the minimum needed for a USB device to list in Device Manager" [video]

2022: "Tech Stuff - USB and Firewire" [article]

2022: "All About USB-C: Introduction For Hackers" by Arya Voronova [article]

2022: "Illegal USB Type-C" by Sergey Korablin [article]

2022: "A Chip To Bridge The USB 2 – USB 3 Divide" by Arya Voronova [article]

2021: "USB On-The-Go (OTG) Basics" [article]

2021: "USB-C Cable Colour Codes (alpha)" [article]

2021: "How does USB device discovery work?" by Ben Eater

2021: "How does a USB keyboard work?" by Ben Eater

2021: "How does n-key rollover work?" by Ben Eater

2020: "USB Type-C is Coming: 3 Things You’ve Just Gotta Know" [article] [archive]

2020: "USB3: why it's a bit harder than USB2" by Kate Temkin [article]

2020: "USB PHY on FPGA" by Andrew Strokov [slides] [code]

2019: "Now how many USB-C™ to USB-C™ cables are there?" by Benson Leung [article]

2018: "Understanding HID report descriptors" [article]

2016: "Alternate Mode for USB Type-C: Going beyond USB" [article]

2016: "Understand USB (in Linux)" by Opasiak Krzysztof [slides]

2013: "What is the difference between /dev/ttyUSB and /dev/ttyACM?" by Samuel Tardieu [article]

2008: "USB Made Simple: A Series of Articles on USB" [articles]