Tobias Scheible Cyber Security & IT-Forensik Dozent
Bash Bunny an einem Notebook angeschlossen

Bash Bunny – BadUSB Multitool

Der Bash Bunny ist eine sehr leistungsstarke BadUSB-Plattform und eröffnet Angriffsmöglichkeiten, die bisher nur mit mehreren Geräten möglich waren. Er kann verschiedene USB-Geräte - wie Gigabit-Ethernet, serielle Schnittstellen, Flash-Speicher und Tastaturen – emulieren. Der Bash Bunny verfügt über eine einfache Skriptsprache, die in jedem Texteditor erstellt werden kann.

Sonntag, 20. Oktober 2019
0 Kommentare

Bei dem Bash Bunny handelt es sich um einen mini Linux-Computer des Anbieters Hack5. Es werden ein ARM Cortex A7 Quad-Core Prozessor, 512 MB DDR3 Arbeitsspeicher und ein schneller Speicher (8 GB SLC NAND Disk) verwendet. Dadurch startet er in weniger als 7 Sekunden. Mit einem Schalter kann zwischen zwei verschiedenen Angriffen gewählt werden und die dritte Position dient zur Konfiguration des Bash Bunnys. Als Feedback steht eine RGB-LED zur Verfügung, die frei konfiguriert werden kann. Er sieht aus wie ein größerer USB-Stick.

Hacking Gadget Bash Bunny
Bash Bunny – BadUSB Multitool von Hak5
Hacking Hardware Bash Bunny Bash Bunny – BadUSB Multitool von Hak5

Einrichtung

Die Konfiguration des Bash Bunnys erfolgt sehr einfach. Der Schiebeschalter muss auf die erste Position gestellt werden, d.h. in Richtung USB-Anschluss, und kann dann an den Rechner angeschlossen werden. Dort erscheint das Gerät als neues Laufwerk. Zum Teil schlägt hier die Antivirensoftware an, da sich auf dem Laufwerk Dateien befinden, die als Schadsoftware eingestuft werden.

Updater
Hacking Gadget Updater
Bash Bunny Updater
Hacking Hardware Updater Bash Bunny Updater

Hak5 veröffentlicht regelmäßig Updates für den Bash Bunny mit Korrekturen und neuen Funktionen. Daher sollte regelmäßig ein Update durchgeführt werden. Dazu muss der Bash Bunny Updater heruntergeladen werden. Er steht für verschiedene Betriebssysteme zur Verfügung. Hier beschreibe ich beispielhaft den Vorgang für Windows. Die heruntergeladene Datei muss entpackt und auf die Hauptebene des Bash Bunnys kopiert werden. Danach kann die bunnyupdater.exe Datei mit einem Doppelklick gestartet werden. Im folgenden Fenster steht nur eine Option zur Verfügung, die mit der Eingabe einer Null und der Entertaste bestätigt werden kann. Anschließend sucht das Tool nach einem Update und falls vorhanden, lädt er es herunter. Nach dem Abschluss erscheint die Meldung, dass der Bash Bunny ausgeworfen und durch Aus- und Einstecken neugestartet werden soll. Jetzt wird das Update installiert, dies wird durch die rot und blau blinkende LED angezeigt, dies dauert ein bis zwei Minuten. Sobald das Update fertig ist, erscheint wieder das Laufwerk. Danach sollte die bunnyupdater.exe Datei noch einmal gestartet werden. Im zweiten Durchgang werden die Beispiele und vorgefertigten Payloads aktualisiert.

Sprache

Auf der Hauptebene liegt die Datei config.txt, darin kann die Sprache für die Ein- und Ausgaben noch konfiguriert werden. Dort muss der Wert „DUCKY_LANG us“ durch „DUCKY_LANG de“ ersetzt werden.

Programmierung

Das Schreiben von Payloads für den Bash Bunny ist einfach, da die Plattform auf den Erfahrungen des Rubber Ducky Projekts mit vielen verbesserten Annehmlichkeiten und Erfahrungen aufbaut. Im Gegensatz zum Rubber Ducky müssen Nutzlasttextdateien nicht speziell kodiert werden und können direkt auf dem virtuellen Laufwerk gespeichert werden. Hier nennt sich die Sprache „Bunny Script“, die zusätzlich BASH gekoppelt ist, wodurch bekannte erweiterte Logik und Bedingungen verwendet werden können.

Ablageort

Die fertigen Dateien werden im Ordner „paylaods“ und dann in den Unterordner für die passenden Schalterstellungen „switch1“ und „switch2“ abgelegt. Die Dateien müssen immer den Namen „payload.txt“ tragen. Je nachdem auf welche Position der Schalter gestellt ist, wird die eine oder die andere Datei ausgeführt.

Aufbau

Der nachfolgende Code zeigt den Aufbau eins Skripts für den Bash Bunny und öffnet Notepad und schreibt dort Hallo Welt. Mit „ATTACKMODE“ wird festgelegt, für welchen Gerätetyp agiert werden soll. Der Modus „HID“ steht für Human interface device und ermöglicht somit die Tastatureingabe. Mit dem Befehl „LED“ kann die integrierte RGB-LED gesteuert werden. Der erste Parameter steht für die Farbe (R = Rot, G = Grün, B = Blau, Y = Gelb, C = Cyan, M = Magenta und W = Weiß), der zweite für die Art (SOLID = dauerhaft leuchtend, SLOW = langsam blinkend, FAST = schnell blinkend, VERYFAST = sehr schnell blinkend, …). Danach folgen die mit einem Q vorangestellten Zeilen, mit den bekannten Rubber Ducky Befehlen.

ATTACKMODE HID 
LED M FAST
Q DELAY 6000
Q GUI r
Q DELAY 100
Q STRING notepad
Q ENTER
Q DELAY 500
Q STRING Hallo Welt
LED C SOLID
Payloads

Der Bash Bunny liefert eine große Anzahl an vorbereiteten Payloads mit. Sie befinden sich im Ordner „payloads“ und dann im Unterordner „library“. Dort sind sie dann weiter nach verschiedenen Kategorien sortiert. Es lohnt sich, einen Blick auf diese Beispiele zu werfen, da hier auch der Funktionsumfang des Bash Bunnys deutlich wird.

Erweiterungen

Die Skriptsprache wird durch zusätzliche Funktionen, die als „Extensions“ bezeichnet werden, erweitert. Sie befinden sich im Ordner „payloads“ und dann im Unterordner „extensions“. Es sind Shell-Skripte, die zur Laufzeit ausgeführt werden. Zum Beispiel kann mit der „run.sh“ das Öffnen eines Programms vereinfacht werden.

Bash Bunny Beispiele

Durch die vielen mitgelieferten Payloads, die regelmäßig aktualisiert werden, wird an dieser Stelle nur noch exemplarisch der „90s Mode Prank“ (payloads/library/prank/90sMode/) beschrieben. Hierbei wird ausgenutzt, dass der Bash Bunny bei einem Angriff auch gleichzeitig als Laufwerk verfügbar ist. Dadurch nutzt der Code für den „ATTACKMODE“ zusätzlich die Option „STORAGE“. Damit kann bei einem BadUSB-Angriff auf vorbereitete Powershell-Skripte zurückgegriffen werden.

# Options
Width=640
Height=480

LED SETUP
GET SWITCH_POSITION
ATTACKMODE HID STORAGE
LED ATTACK
RUN WIN powershell \".((gwmi win32_volume -f 'label=''BashBunny''').Name+'payloads\\$SWITCH_POSITION\r.ps1 -Width $Width -Height $Height')\"
LED FINISH

Fazit Bash Bunny

Durch die Verwendung von leistungsfähiger Hardware und einem Linux-Betriebssystem als Unterbau ist eine schnelle und flexible Hacking Hardware entstanden. Gleichzeitig wurde aber eine einfache Abstrahierung durch das virtuelle Laufwerk erreicht, die einen unkomplizierten Einstieg möglich macht. Da der Bash Bunny als eine Vielzahl von Geräten agieren und dadurch flexibel in beide Richtungen kommunizieren kann, ist er die ideale Hardware Plattform für sehr viele Anwendungsszenarien.

Allerdings ist der Bash Bunny verhältnismäßig teuer. Die Alternative ist eine Raspberry Pi Zero mit einigen zusätzlichen Bauteile zu versehen. Alex Jensen hat dazu das Tutorial „Poor mans Bash Bunny“ veröffentlicht.

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.

Interesse am Thema Hacking- & Pentest-Hardware?
  • 12.11.2024 (Workshop) Hacking- und Pentest-Hardware Workshop, scheible.it, Böblingen (weitere Infos)

Ü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

Es wurde noch kein Kommentar abgegeben.

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.