USB-Pentesting: Difference between revisions

From
Jump to navigation Jump to search
Content deleted Content added
Pascal (talk | contribs)
Pascal (talk | contribs)
 
(21 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
# '''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 6: Line 9:




# 2. 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
# 3. '''Ziele von BadUSB die sich als HID-Gerät ausgeben'''
Manipulation von:
Manipulation von:
> C:\Windows\System32\drivers\etc\hosts
> C:\Windows\System32\drivers\etc\hosts
Line 22: Line 25:


== Die Evolution der USB-Bedrohungslandschaft ==
== Die Evolution der USB-Bedrohungslandschaft ==
# 1. Ursprung der automatisierten Keystroke-Injektion: *Der Hak5 Rubber Ducky*
# 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.
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.


Line 28: Line 31:
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.
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
''DuckyScript V1''
REM My first payload
REM My first payload
DELAY 3000
DELAY 3000
Line 51: Line 54:
“DUCKY” drive, saved as the computer name (in .txt format).
“DUCKY” drive, saved as the computer name (in .txt format).
</pre>
</pre>
https://github.com/hak5/usbrubberducky-payloads/blob/master/payloads/examples/Exfiltration/Exfiltration-example1.txt
<code>ttt</code>
DuckyScript V3


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
## 2.1 SubSubTitel
''DuckyScript V3''
Mauris sagittis consequat est lacinia accumsan. Vivamus non tempor arcu.
<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.


Ducky im Attack-Mode <code>ATTACKMODE HID VID_05AC PID_021E</code> mit "Getäuschert HID":
{| class="wikitable"
{| class="wikitable"
! Prefix
! Prefix
Line 65: Line 118:
! Description
! Description
|-
|-
| MAN_
| MAN_ Hersteller-ID
| iManufacturer
| iManufacturer
| 16 alphanumeric characters
| 16 alphanumeric characters
|-
|-
| PROD_
| PROD_ Produkt-ID
| iProduct
| iProduct
| 16 alphanumeric characters
| 16 alphanumeric characters
Line 77: Line 130:
| 12 digits
| 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

  1. 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.


  1. 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.

  1. 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. 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).

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

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.

https://github.com/hak5/usbrubberducky-payloads/blob/master/payloads/examples/Functions/Functions-example1.txt

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


  1. 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/


  1. 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. 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
  1. 2. Raspberry Pi Zero W und P4wnP1 A.L.O.A.
    1. 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.


    1. 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.