Der Bash Bunny von Hak5 ist eine fortschrittliche Angriffsplattform für Penetrationstester. Das IT-Gerät emuliert in sekundenschnelle Gigabit-Ethernet und serielle Schnittstellen und kann als Flash-Speicher oder Tastatur an beliebige Hardware angeschlossen werden. Damit eröffnet sich ein breiter Angriffsvektor, der im Post-Exploitation Prozess zur Verteilung von Daten und Exploits bzw. zur Installation von Hintertüren unabhängig vom Betriebssystem genutzt werden kann.
Mit einem einfachen Umschalter lässt sich der Bash Bunny von Setup-Modus in Angriffsmodus versetzen. Die so mit einer einfachen Skriptsprache erstellte Datei im Flash-Laufwerk, wird nach Anschluss an einem Computer z.B. in Tastaturbefehle umgewandelt und ausgeführt. Der jeweilige Zustand des Gerätes bzw. der Angriffsfortschritt sind über ein Multi-Color-LED ablesbar.
Die Hardwareausstattung kann sich für die Größe des Gerätes sehen lassen. So verfügt es über eine Quad-Core-CPU und eine 8 GB SSD der Desktop-Klasse. Der interner RAM-Speicher ist mit 512 MB bemessen.
Bash Bunny technische Daten:
- Quad-core ARM Cortex A7
- 32 K L1/512 K L2 Cache
- 512 MB DDR3 Memory
- 8 GB SLC NANO Disk
Folgenden Angriffsmethoden lassen sich so umsetzen:
Keystroke Injektion
Um in aktuellen Betriebssystemen u.a. vertrauenswürdig externe Tastaturen anschließen zu können, wurde der HID-Standard (Human Interface Device) geschaffen. Diesen Zustand nutzen die Penetrationstester spätestens nach Einführung des USB Rubber Ducky für sich aus. Mit Hilfe der sogenannten Ducky-Skriptsprache lassen sich die einfachen Textzeilen in Tastaturbefehle umwandeln. Der Bash Bunny erweitert nun diese Möglichkeiten durch die Emulation von Gigabit-Ethernet und seriellen Schnittstellen. Auch die nun neu eingebrachte BASH (Bourne-again-shell), als freie verfügbare Unix-Shell, erweiterte das Anwendungsspektrum erheblich.
Netzwerk- Hijacking
Bring-Your-Own-Device ist ein aktueller Trend. Die von Mitarbeitern in Unternehmensnetzwerken eingebrachten IT-Geräte (z.B. Mobiltelefone, Laptops, Tablets etc.) haben aber auch ein nicht zu unterschätzendes Angriffspotential.
An einen beliebigen Computer über die USB-Schnittstelle angeschlossen, emuliert der Bash Bunny einen Gigabit-Ethernet-Adapter, der im Regelfall über einen DHCP-Server eine IP-Adresse zugewiesen bekommt. Somit ist gewährleistet, dass das Gerät automatisch und vertrauenswürdig in einem Netzwerk agieren kann.
In diesem Zusammenhang lassen sich z.B. Anmeldeinformationen von Nutzern des Netzwerkes abgreifen. Der Angreifer verfügt somit über schier endlose Möglichkeiten, da er auf alle gängigen Linux-Tools zurückgreifen kann.
Intelligente Exfiltration
Der integrierte Flash-Speicher des Bash Bunny erlaubt die intelligente Speicherung von Daten, die sowohl auf das Zielobjekt gebracht werden sollen (z.B. Payloads, Skripte, Exploits etc.) als auch von Dateien die aus dem jeweiligen System abgezogen werden sollen. Dabei ist es egal ob es sich beim Zielobjekt um ein Smartphone, Computer, Tablet oder ein anderes IT-Gerät handelt.
Sollte ein Exploit bzw. Payload auf de Zielsystem nicht ordnungsgemäß funktionieren, so kann der Angreifer die Daten durch den einfachen Umschaltmechanismus „on the fly“ bearbeiten und danach erneut in Aktion bringen.
Funktionsweise des Bash Bunny
Der Penetrationstester hat über die emulierte serielle Schnittstelle oder per Ethernet Shell-Zugriff auf das Linux-Terminals des Bash Bunnys. Hier kann er unabhängig vom eingesetzten Betriebssystem auf die gesamte Vielfalt der Linux-Befehle zugreifen. Von hier lässt sich die installierte Software aktualisieren und pflegen.
Die Bereitstellung von Payloads erfolgt durch einfaches Kopieren einer Textdatei in die dafür vorgesehenen Ordner des Gerätes. Dabei ist die Speicherung mehrere Skripte möglich. Um Gegensatz zu der noch beim USB Rubber Ducky angewendeten Vorgehensweise, müssen nun die erstellten Skripte nicht mehr umständlich kodiert werden. Der dafür notwendige Kartenleser konnte somit wegfallen.
Firmware aktualisieren
Derzeit wird der Bash Bunny noch sehr stark weiterentwickelt und Fehler ausgebessert. Deshalb sollte nach Auslieferung zunächst die Firmware auf den neusten Stand gebracht werden. Diese lässt sich von der Webseite des Herstellers herunterladen.
Wenn die SHA256 Checksumme mit dem auf der Webseite angezeigten Code übereinstimmt, kann die Firmware, ohne sie auszupacken, ins Root-Verzeichnis des Bash Bunny kopiert werden. Hierzu stellt man den Switch auf Arming Mode (Schalter am dichtesten zum USB-Stecker). Danach wird er aus der USB-Schnittstelle sicher entfernt und dann mit den gleichen Switch-Einstellungen wieder eingesteckt. Der Update-Vorgang dauert nun ungefähr 10 Minuten. Das eingebaute LED wechselt in diesem Prozess die Farben von rot (Update wird ausgeführt) zu grün (Neustart des Gerätes) bis blau (Update erfolgreich beendet).
Verbindung zum Bash Bunny per SSH herstellen
Grundsätzlich ist es möglich mit dem Bash Bunny unter Windows, Linux oder MacOS eine Verbindung ins Internet herzustellen. Hier wird exemplarisch die Konfiguration unter Windows 7 erläutert.
Damit das Gerät als Ethernet-Adapter erkannt wird, muss die Datei payload.txt in den Unterverzeichnissen Switch 1 oder 2 angepasst werden. Hier reicht der Eintrag ATTACKMODE RNDIS_ETHERNET (für Windows) bzw. ATTACKMODE ECM_ETHERNET (für MacOS und Linux) bereits aus, um die entsprechenden Geräteeinstellungen im jeweiligen Betriebssystem zu veranlassen. Unter Windows 7 wird im Gerätemanager ein weiterer Netzwerkadapter (NDIS-Remotenetzwerkgerät) hinzugefügt.
Um nun über diese Schnittstelle das Internet zu erreichen, sind weitere Einstellungen notwendig. In einem ersten Schritt wählt man nun den Netzwerkadapter aus, über den eine Verbindung hergestellt werden soll. In unserem Beispiel ist dies der WLAN-Adapter. Unter Eigenschaften ist hier die Freigabe für die neue Netzwerkverbindung (in unserem Beispiel LAN-Verbindung 6) zu erlauben.
Im zweiten Schritt (Bild 2) werden die IP-Einstellungen in der LAN-Verbindung des NDIS-Adapters konfiguriert. Als Standardgateway ist die IP-Adresse 172.16.64.1 zu nutzen. Alle anderen Einstellungen können dem aktuellen Netzwerk angepasst werden.
Ist alle richtig eingerichtet, so sollte eine ersten Verbindung per SSH mittels PuTTY nun nichts mehr im Wege stehen. Für den ersten Login ist die Nutzer-Passwort-Kombination root:hak5bunny zu wählen. Nun kann, wie in einem Linux-Terminal gewohnt, auf die Umgebung zugegriffen werden.