Hak5 bezeichnet ihren Bash Bunny Nachfolger als “smarten Keylogger” für Penetrationstester. Wir haben uns den Key Croc besorgt und erklären in diesem Beitrag, wie Sie ihn für Penetrationstests einsetzen können.
Key Croc Hardware
Wenn man den Key Croc mit seinem Vorgänger vergleicht, so wird man keine großen Unterschiede in der Hardware feststellen. Auch hier arbeiten ein Vierkern-Prozessor, 512 MB und eine 8 GB große SSD (Solid-State-Disk).
Die Hersteller haben, die im Bash Bunny noch fest eingebaute USB-Schnittstelle, an ein flexibles Kabel angebracht und zusätzlich eine WLAN-Schnittstelle verbaut. Im Einsatz soll der Key Croc zwischen einer externen Tastatur und einem Desktop-Computer geschaltet werden. Der installierte USB-Keyboard-Port ist in der Lage, die Hardware ID der angeschlossenen Tastatur zu klonen. Das schließt aber auch aus, dass er an mobilen Gerät mit eingebauter Tastatur (z.B. Notebooks) zum Einsatz kommt.
Das folgende Bild zeigt links oben den Vorgänger Bash Bunny und rechts den Key Croc:
Die folgende Grafik zeigt die Hardwarespezifikation des Key Croc:
Kick -start mit dem Key Croc
Wir halten uns nicht lange auf und wollen sehen, wie der Key Croc “out of the box” funktioniert. Dazu schließen wir ihn zwischen Tastatur und Computer an einem PC in unserem Testlabor an. Sehr schnell fällt auf, dass er nur an Geräten mit USB-Tastatur zum Einsatz kommen kann und nicht für die veraltete PS/2 Schnittstelle geeignet ist.
Nach einer kurzen Zeit signalisiert uns das Gerät durch Aufleuchten der LED in der Farbe Magenta, dass der Keylogger installiert wurde und wir mit unserem Test starten können. Dazu rufen wir einen Texteditor (z.B. Wordpad) auf und tippen auf der Tastatur “Hello” ein. In Windeseile ergänzt der Key Croc die Zeichenfolge “World”.
Dies ist natürlich keine große Leistung, verdeutlicht aber die Arbeitsweise des Key Crocs. Scheinbar ist er in der Lage die Tastatureingaben zu erkennen und auf entsprechende “Schlüsselwörter” zu reagieren. Gesteuert wird dieses Verhalten durch Payloads, die im Speicher des Key Crocs abgelegt sind.
Wer bereits mit der Funktionsweise des Bash Bunny vertraut ist oder sogar selbst Payloads für dieses Gerät erstellt hat, dem erschließen sich schnell weitere Anwendungsbereiche, die weit über das eben gezeigte hinausgehen.
Eine Verbindung zum Key Croc herstellen
Sie haben verschiedene Möglichkeiten, auf den Key Croc zuzugreifen. Nachfolgend zeige wir, wie Sie über die serielle Schnittstelle und WLAN Zugriff auf den Key Croc erlangen können.
Serielle Schnittstelle
Zuerst müssen Sie den Key Croc in den sogenannten “Arming-Mode” versetzen. Dazu befindet sich auf der Rückseite ein “Hidden Button” (siehe Grafik oben). Verwenden Sie eine Büroklammer oder ein SIM-Werkzeug und drücken Sie die Taste so lange bis die LED blau blinkt.
Je nach verwendetem Betriebssystem haben Sie nun die Möglichkeit auf die serielle Schnittstelle zuzugreifen. Dieser PowerShell-Befehl stellt die verfügbaren seriellen Ports auf Ihrem Windows-System dar.
PS C:\Users\frank> [System.IO.Ports.SerialPort]::getportnames()
COM1
COM2
COM3
Wir empfehlen auf einem Windows-System die Software PuTTY zu nutzen. Bei unserem Testsystem wurde COM3 als Schnittstelle zum Key Croc erkannt:
Verwenden Sie für den Log-in den Nutzernamen: root und als Passwort: hak5croc
Wer Linux oder macOS als Betriebssystem nutzt, den empfehlen wir die hier beschriebene Software für den Zugriff auf den Key Croc zu verwenden.
Auf dem Key Croc werkelt ein Linux System, das auf Debian basiert. Sie können also die herkömmlichen Linux-Befehle in Ihre Skripte einbauen. Sie haben außerdem mithilfe des INSTALL_EXTRAS Kommandos die Möglichkeit, zusätzliche Software (wie z.B. Metasploit, Responder und Impacket) auf dem Key Croc zu installieren.
Wenn wir uns nun schon im “Arming-Mode” befinden, dann ist es sinnvoll auch die Dateistruktur auf dem Key Croc zu erkunden. Auf unserem Testsystem wurde ein Laufwerk E: eingerichtet, das die folgenden Unterverzeichnisse enthält.
Auch hier werden die Nutzer des Bash Bunny wieder viele Gemeinsamkeiten finden. Uns interessiert zuerst das Verzeichnis payloads. Hier finden wir die Textdatei hell.txt, die uns bei Eingabe von “hello” die Zeichenkette “world” auf dem Bildschirm “zauberte”.
Abschließend werfen wir einen Blick in das Unterverzeichnis loot. Hier legt der Key Croc alle Tastenanschläge ab, die der Nutzer auf dem System vorgenommen hat. In der Datei chroc_char.txt finden wir auch relativ schnell unser eingetipptes Log-in-Passwort:
Zugriff über WLAN
Als neues Feature hat Hak5 eine WLAN-Schnittstelle hinzugefügt, die uns nun den kabellosen Zugriff auf den Key Croc ermöglicht. Leider kann das Gerät nur die Verbindung zu einem vorhandenen Access-Point herstellen und nicht selbst eine Basisstation einrichten. Aus unserer Sicht wäre hier noch Optimierungspotenzial. So hat z.B. der Entwickler des P4wnP1 es geschafft, beide Optionen in seinem Gerät bereitzustellen.
Die WLAN-Anbindung lässt sich auf den ersten Blick leicht konfigurieren, birgt aber auch ein paar Tücken in sich, wenn man Sonderzeichen verwendet. Die Anleitung zieht vor, dass auf dem Key Croc eine Textdatei config.txt hinterlegt wird, die die Einstellungen für WIFI_SSID und WIFI_PASS enthält. Dabei sollten nachfolgende Sonderzeichen und Leerzeichen mit einem Backslash gekennzeichnet werden, um sie ordnungsgemäß zu verarbeiten.
WIFI_SSID This\ is\ my\ network
WIFI_PASS The\ P\@$$word\ is\ 1337\!\!
Die in config.txt gemachten Angaben werden beim Reboot des Key Crocs in die Datei /etc/wpa_supplicant.conf übernommen. Wir haben bessere Ergebnisse erzielt, indem wir sie dort gleich eingetragen haben. Versetzten Sie dazu das Gerät in den “Arming-Mode” (z.B. wie oben über die serielle Schnittstelle) und befüllen Sie die Datei mit folgendem Inhalt:
network={
ssid="Monday"
psk="10Erhatxyzklmnhoecker!20"
priority=1
}
Wir gehen davon aus, dass der von Ihnen verwendete Access-Point so konfiguriert ist, dass er automatisch IP-Adressen per DHCP vergibt. Nutzen Sie ggf. die dort zur Verfügung gestellten Werkzeuge, um die vergebene IP-Adresse festzustellen und loggen Sie sich dann per ssh auf der Konsole ein. Verwenden Sie dazu die gleichen Zugangsdaten, die Sie auch beim Zugriff über die serielle Schnittstelle verwendet haben. Gleichzeitig sind Sie nun in der Lage, das Gerät mit dem Internet zu verbinden, um zusätzliche Tools herunterzuladen.
Was sollten Sie über das angeschlossene Filesystem auf dem Key Croc wissen?
Standardmäßig stellt der Key Croc eine emulierte “USB Flash Disk” (udisk) zur Verfügung. Dabei funktioniert die Synchronisation zwischen der primären Partition und der udisk in den verschiedenen Angriffsmodi automatisch.
Insgesamt verfügt der Key Croc über 8 GB Speicher. Darunter befindet sich eine 2 GB große FAT32-formatierte Partition, die als /root/udisk bereitgestellt wird. Wir bezeichnen diese Partition im folgenden als udisk.
Die udisk kann entweder mit dem Host (also dem Key Croc selbst) oder mit dem Ziel (dem angeschlossenen Computer) verbunden sein. Der gleichzeitige Zugriff aus beiden Richtungen sollte unbedingt verhindert werden.
Was passiert im Arming-Mode?
Wird der Arming-Mode eingenommen (siehe Beschreibung weiter oben), so wird die udisk an das Ziel (also den angeschlossenen Computer) gekoppelt. Auf Windows-Systemen erhalten Sie ein weiters Laufwerk (z.B. E:), das als KeyCroc bezeichnet ist. Gleichzeitig werden die in der primären Partition im Verzeichnis /root/loot gesammelten Tastenanschläge, mit dem Verzeichnis /loot in der udisk synchronisiert.
Wie verhält sich die udisk im Angriffsmodus (Attack-Mode)?
Beim Neustart des Key Croc nimmt er automatisch den Attack-Mode ein. Dabei ist die udisk mit dem Host (also dem Key Croc) verbunden. Zeitgleich werden die in der udisk gespeicherte Payloads (Verzeichnis /payloads) in das Cache-Verzeichnis (/root/cache) der primären Partition kopiert. Hier sollten Sie nicht bearbeitet werden. Dies könnte zu schwerwiegenden Fehlern führen.
Was sollte in diesem Zusammenhang bei der Arbeit mit Payloads beachtet werden?
Wer erlangte Daten (z.B. Passwörter oder Dateien) vom Zielsystem (also dem angeschlossenen Computer) auf den Key Croc speichern möchte, der sollte diese während des Angriffs im Verzeichnis /root/loot ablegen. So ist sichergestellt, dass diese beim Einnehmen des “Arming-Mode” mit der udisk synchronisiert und im Verzeichnis /loot abgelegt werden.
Besondere Sorgfalt sollten Nutzer darauf legen, wenn sie die Option ATTACKMODE STORAGE verwenden. In diesem Fall wird die udisk an das Ziel (also den angeschlossenen Computer) gekoppelt. In diesem Zustand muss unbedingt verhindert werden, dass der Host (also der Key Croc) schreibenden oder lesenden Zugriff auf die Daten erlangt.
Fazit
Damit schließen wir den kurzen Exkurs in die Grundlagen des Key Croc ab. Sie sollten nicht verpassen, einen Blick in die Dokumentation zu werfen, um komplexere Themen zu erschließen.
Aus unserer Sicht bereichert der Key Croc die Möglichkeiten für Penetrationstests und birgt ein Potenzial in sich, dass weitgehend noch nicht ausgeschöpft ist. Die Anzahl der derzeit vorhandenen Payloads lässt aber vermuten, dass sich zahlreiche Entwickler mit dem Gerät beschäftigen und so ständig neue Skripte bereitstellen.
Wir werden in einem der nächsten Beiträge selbst einen Payload erstellen, um weitere Erfahrungen in der Arbeit mit diesem Gerät zu sammeln.