Tobias Scheible Cyber Security & IT-Forensik Dozent
BadUSB-Stick mit WLAN - Cactus WHID

Cactus WHID – BadUSB mit WiFi

BadUSB-Angriffe werden typischerweise vorab konfiguriert und dann ausgeführt, sobald das präparierte USB-Gerät eingesteckt wird. Mit dem Board Cactus WHID werden die BadUSB-Fähigkeiten mit einer WiFi-Funktion kombiniert. Damit können nicht nur vorab definierte Angriffe durchgeführt werden, sondern dynamisch auf die Situation reagiert werden.

Sonntag, 13. Oktober 2019
4 Kommentare

Im vorherigen Blog-Artikel habe ich verschiedene Hardware-Varianten behandelt, die einen BadUSB-Angriff durchführen können (z.B. Rubber Ducky, Digispark & MalDuino). Der nächste Schritt ist die Kombination eines typischen Chips, der die Methode für eine virtuelle Tastatur unterstützt und eine WiFi-Funktion hat. Damit kann ein Angreifer solch eine Hacking Hardware versteckt an einem Rechner anschließen und aus der Distanz den Angriff starten. Zum Beispiel kann gewartet werden, bis das Opfer wieder am Platz ist und dann mit einem Anruf gezielt ablenken. Währenddessen wird der Angriff gestartet. Ist für den Angreifer eine direkte Sicht auf den Bildschirm möglich, können auch je nach Szenario weitere Angriffsskripte bedarfsgerecht ausgeführt werden.

Cactus WHID - WiFi HID
Cactus WHID – BadUSB mit WiFi Fernsteuerung
Cactus WHID - WiFi Human Interface Device Cactus WHID – BadUSB mit WiFi Fernsteuerung
Aufbau

Der Cactus WHID besteht primär aus einem Atmega 32u4 Prozessor, der häufig in vielen Arduino-Boards verwendet wird, und dem WiFi-Modul ESP-12s, das ebenfalls sehr häufig in Arduino Projekten verwendet wird. WHID steht übrigens für WiFi HID (Human Interface Device). Der Cactus WHID kann in verschiedenen Online-Shops ab ca. 18 Euro bestellt werden, zum Beispiel bei tindie. Auf der Github Seite des Projektes WHID Injector sind noch weitere Händler verzeichnet. Durch den USB Typ-A-Stecker und dem Gehäuse eignet er sich sehr gut für Penetrationstests.

Alternativen

Auch hier gibt es ähnliche Boards wie den Cactus Micro oder Beetle Boards mit einem ESP (WiFi) Chip. Darüber hinaus gibt es auch Varianten, die zusätzlich noch über ein Micro SD-Kartenlesegerät verfügen, diese Boards werden zum Beispiel als CJMCU-3212 bezeichnet.

Funktionsweise

WiFi-Verbindung

Um den Cactus WHID einzusetzen und einen BadUSB-Angriff durchzuführen, sind keine Kenntnisse der Programmierung erforderlich. Auf dem Stick ist das System ESPloitV2 vorinstalliert. Nachdem der Stick an einen Rechner angeschlossen worden ist, wird die WiFi-Funktion aktiviert und ein neues Netzwerk erscheint. In der Standardkonfiguration lautet der Name (SSID) „Exploit“ und das Passwort „DotAgency“. Mit einem anderen Rechner verbindet man sich mit dem Netzwerk und dann kann der Cactus WHID entweder per Webbrowser oder per Android App gesteuert werden.

Web-Browser

Jetzt kann in einem beliebigen Webbrowser die IP-Adresse „http://192.168.1.1“ des Cactus WHID aufgerufen werden. Danach erscheint die Startseite und es stehen verschiedene Optionen zur Verfügung.

Unter „Live Payload Mode“ kann über ein Eingabefeld ein Payload eingefügt und ausgeführt werden. Im nächsten Punkt „Input Mode“ können beliebige Eingaben per Buttons selbst durchgeführt werden. Mit „Duckuino Mode“ kann live die Konvertierung von Ducky Skripten vorgenommen werden.

Alternativ ist es möglich, vorbereitete Payloads auszuführen. Dazu können unter dem Punkt „Upload Payload“ Dateien im TXT-Format hochgeladen werden. Unter dem Menüpunkt „Choose Payload“ werden diese angezeigt und können per Klick ausgeführt werden.

Im Menüpunkt „List Exfiltrated Data“ können alle gespeicherten Daten angezeigt und heruntergeladen werden. Der Cactus WHID kann vom Zielrechner per serielle Kommunikation Daten empfangen oder, wenn er im selben WiFi Netzwerk ist, per HTTP GET und per FTP Daten empfangen. Im Punkt „Format File System“ kann der Speicher komplett gelöscht werden.

Mit „Configure ESPloit“ können die Einstellungen geändert werden. Dazu muss der Benutzernamen „admin“ und das Passwort „hacktheplanet“ eingegeben werden. Im letzten Punkt „Upgrade ESPloit Firmware“ kann ein Update eingespielt werden.

Android App

Alternativ steht die Android App WHID Mobile Connector zur Verfügung. Damit lassen sich dieselben Funktion ausführen. Zusätzlich sind aber schon viele weitere Payloads mit in der App integriert.

Cactus WHID Beispiele

Die Syntax für die Skripte des Cactus WHID unterscheidet sich von den bisherigen Beispielen der anderen Hardware Geräten. Es werden die Befehle „Press“, „Print“ und „PrintLine“ in Verbindung mit den Ascii-Codes verwendet. „Rem:“ steht dabei für ein Kommentar und wird nicht ausgeführt.

Mittels „Press:“ werden Tastkombinationen gedrückt. Es müssen die Zahlencodes der entsprechenden Tasten verwendet werden. Diese können hier nachgelesen werden. Als Beispiel werden die Tasten „a“ und „b“ gleichzeitig gedrückt:

Press:97+98

Mit „Print:“ erfolgt eine Textausgabe und mit „PrintLine:“ inklusive Enter am Ende.

Print:Hallo 
PrintLine:Welt

Ausführen-Dialog starten

Das nachfolgende Beispiel zeigt, wie mit dem Cactus WHID der Ausführen-Dialog unter Windows gestartet werden kann. 131 steht für die Windows-Taste und 114 für „r“.

Press:131+114

Notepad starten

Um nun Notepad zu starten, muss noch die Anweisung „PrintLine“ hinzugefügt werden.

Press:131+114
PrintLine:notepad

Weitere Beispiele

Weitere Beispiele für den Cactus WHID gibt es auf den Github-Seiten der Projekte WHID und ESPloitV2.

Fazit Cactus WHID

Der Cactus WHID ist eine ideale Plattform durch die Verwendung der Standardkomponenten und mit der WiFi-Funktion werden neue Möglichkeiten für das BadUSB-Angriffsszenario eröffnet. Durch eine einfache Änderung am Code kann das Tastaturlayout angepasst werden. Zusätzlich können die USB-IDs (VID & PID) modifiziert werden, so kann der Stick sich als eine weit verbreitete USB-Tastatur tarnen. Darüber hinaus gibt es weitere Softwareprojekte wie WiFi Ducky und USaBUSe, die die Hardware des Cactus WHID nutzen können.

USB Artikelserie

Dieser Artikel ist Teil der Artikelserie Angriffe per USB, die dem Themenschwerpunkt Hacking Hardware angehört. In dieser Artikelserie beschreibe ich verschiedene Arten von Angriffsmethoden über die USB-Schnittstelle, damit diese erkannt und effektive Gegenmaßnahmen getroffen werden können.

Über Tobias Scheible

Tobias Scheible

Hallo, mein Name ist Tobias Scheible. Ich bin begeisterter Informatiker und Sicherheitsforscher mit den Schwerpunkten Cyber Security und IT-Forensik. Mein Wissen teile ich gerne anhand von Fachartikeln hier in meinem Blog und in meinem Fachbuch. Als Referent halte ich Vorträge und Workshops für Verbände und Unternehmen u. a. auch offene Veranstaltungen für den VDI und die IHK.

Kommentare

mxts am 29. Mai 2021 um 08:57 Uhr

hallo,
ich bräuchte hilfe bei dem cactus whid, unzwar krieg ich es nicht hin die tastertur zu ändern,ich würde mich über hilfe sehr freuen
lg

Tobias am 6. Juni 2021 um 11:36 Uhr

Hallo,
dazu gibt es auf GitHub den folgenden Hinweis: „It is very simple, you just need to copy-paste one of the locales from https://github.com/whid-injector/WHID/tree/master/tools/keyboard_layouts and replace _asciimap of Keyboard.cpp“.
Grüße
Tobias

mxts am 29. Juli 2021 um 08:47 Uhr

moin,danke für die hilfe aber ich komme nicht soweit das ich zu “ _asciimap of Keyboard.cpp“ komme…
haben sie evt noch eine Idee?

LG

Tobias am 4. August 2021 um 21:44 Uhr

Schau dir mal diese Seite im offiziellen Wiki an: https://github.com/whid-injector/WHID/wiki/Keyboards-Layout Dort ist auch eine Video verlinkt, in dem die Schritte beschreiben werden: https://youtu.be/DPYGKdBjZTw

Schreibe einen Kommentar!

Hilfe zum Kommentieren und Hiweise

Um kommentieren zu können, geben sie bitte mindestens ihren Namen und ihre E-Mail-Adresse an. Bitte nutzen Sie die Kommentarfunktion nicht dazu, andere zu beleidigen oder Spam zu verbreiten. Trolle und Spammer sind hier unerwünscht! Unangemessene Kommentare, die zum Beispiel gegen geltendes Recht verstoßen, eine Gefährdung anderer Besucher darstellen oder keinen sinvollen Inhalt beinhalten, werden gelöscht oder angepasst.

Name: Ihr Name, der oberhalb des Kommentars steht, gerne auch Ihren echten Namen, das erleichtert die Kommunikation für alle. Sollte ein Spam-Keyword als Name verwendet werden, kann dieses entfernt oder korrigiert werden.

E-Mail: Ihre E-Mail Adresse dient zur Identifizierung weiterer Kommentare und damit ich direkt Kontakt aufnehmen kann. Die E-Mail Adresse wird natürlich nicht veröffentlicht und nicht weitergegeben.

Website: Hier können Sie ihren eigenen Blog bzw. ihre eigene Website eintragen, dadurch wird Ihr Name und Ihr Avatar-Bild verlinkt. Werden rein kommerzielle Angebote offensichtlich beworben, setze ich den Link auf nofollow und unangemessene werden einfach entfernt.

Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <hr> <big> <small> <sub> <sup> <u>

Ihre E-Mailadresse wird nicht veröffentlicht. Mit dem Absenden anerkennen Sie die Datenschutzhinweis des Blogs.