Tobias Scheible Cyber Security & IT-Forensik Dozent
Angeschlossener Key Croc von Hak5

Key Croc – smarter Keylogger von Hak5

Der Key Croc von Hak5 ist ein smarter WLAN-Keylogger. Mit ihm können Angreifer Tastatureingaben aufzeichnen und eigene Eingaben einschleusen, entweder von gespeicherten lokalen Payloads oder aus der Ferne über das Internet. Aktionen können durch vorab definierte Eingaben ausgelöst und Daten über das Netzwerk oder mit dem internen Speicher gestohlen werden.

Sonntag, 17. Januar 2021
0 Kommentare

Hak5 ist ein Anbieter für Pentest-Hardware und hat den Key Croc im Sommer 2020 auf den Markt gebracht. Er wird als Keylogger bezeichnet, kann aber durch die verwendete Hardware deutlich mehr Szenarien als die üblichen Keylogger abdecken. Wird der Key Croc zwischen Rechner und Tastatur angeschlossen, werden die USB-IDs geklont, um mögliche Sicherheitsmaßnahmen zu umgehen. Danach werden alle Eingaben auf dem internen Speicher abgelegt. Er kann so programmiert werden, dass er bestimmte Eingaben erkennt und daraufhin vorab definierte Befehle ausführt. Das kann von einfachen Tastatureingaben bis hin zum Kopieren von Dateien oder zu Netzwerkaktivitäten reichen. Denn der Key Croc kann nicht nur als virtuelle Tastatur fungieren (BadUSB-Angriff), sondern kann auch einen Datenspeicher, eine Netzwerkschnittstelle oder eine serielle Verbindung realisieren. Und per WLAN kann er von einem Angreifer in Reichweite gesteuert werden. Alternativ kann der Key Croc dauerhaft mit einem Netzwerk mit Internetverbindung verknüpft werden und so über die kostenlose und selbst gehostete Lösung Cloud C2 aus der Ferne gesteuert und alle abgefangenen Daten eingesehen werden.

Mit dem Key Croc hat Hak5 eine Hardware veröffentlicht, die durchaus mehrere eigene Produkte ersetzten kann. Er kann die gleichen BadUSB-Angriffe wie der Rubber Ducky und bietet dieselben Funktionen des nach nur kurzer Zeit wieder eingestellten Signal Owl bis auf den zusätzlichen USB-Port. Die Hardware ist leistungsfähiger als die des beliebten Bash Bunny und der Key Croc bietet durch die USB-A-Buchse mehr Möglichkeiten. Beide kosten bei Hak5 momentan gleich viel. Daher wird der Key Croc als der Nachfolger des Bash Bunny gehandelt und insgeheim als das neue Flaggschiff von Hak5.

Der Key Croc von Hak5 ist komplett in Schwarz gehalten und hat eine Abmessung von ca. 7,5 × 2,5 × 1,5 cm. Auf der einen Seite ist eine USB-A-Buchse untergebracht und auf der anderen Seite befindet sich ein ca. 11 cm langes Kabel mit einem USB-A-Stecker. Oben auf dem Gehäuse befindet sich eine ovale Aussparung, darunter befindet sich die Staus-LED. Auf der anderen Seite des Key Croc ist eine runde Öffnung, darunter befindet sich ein Taster, um damit zwischen Modi umschalten zu können. Er hat keine Markierung oder Bezeichnung aufgedruckt, wodurch der Key Croc identifizierbar wäre. Er sieht aus wie ein etwas zu groß geratener USB-Adapter.

Key Croc
Key Croc – smarter Keylogger von Hak5
Key Croc Key Croc – smarter Keylogger von Hak5

Als CPU wird ein 1.2 GHz Quad-Core Prozessor von ARM eingesetzt und mit 512 MB Arbeitsspeicher ergänzt. Als interner Speicher für das System und eventuelle Daten stehen insgesamt 8 GB zur Verfügung. Der WLAN-Chip funkt im 2,4 GHz Bereich und die Antenne ist innen liegend. Die Status-LED ist eine RGB-LED und kann dadurch den aktuellen Zustand über verschiedene Farben anzeigen.

Aktualisierung der Firmware

Hak5 erstellt immer wieder Updates mit Korrekturen und neuen Funktionen. Gerade bei populären Geräten, die länger verkauft werden, erscheinen diese häufiger. Die Version der installierten Firmware des Key Croc kann in der Datei version.txt auf dem Laufwerk des KeyCroc-USB-Sticks eingesehen werden. Der Zugriff darauf wird im übernächsten Abschnitt beschrieben. Welche Version aktuell ist, kann über die Seite downloads.hak5.org/croc herausgefunden werden. Zum Zeitpunkt des Artikels war auf meinem Key Croc die Version 1.3_513 installiert und zum Download wurde die Version 1.3_510 angeboten.

Download

Um die neueste Firmware zu installieren, muss auf der Hak5 Website die aktuellste Version ausgewählt und das .tar.gz-Archiv heruntergeladen werden. Es darf nicht entpackt werden, Safari-Benutzer müssen das automatische Entpacken extra deaktivieren.

Kopieren

Als Nächstes wird der Key Croc an den Rechner angeschlossen und nach ca. 30 Sekunden muss der kleine Taster mit einer Büroklammer oder etwas Ähnlichem betätigt werden. Daraufhin blinkt die LED blau und das Laufwerk des KeyCroc-USB-Sticks erscheint. Die heruntergeladene Firmware-Datei muss auf die oberste Verzeichnisebene des KeyCroc-Laufwerks kopiert werden. Wenn das Kopieren der Firmware-Datei abgeschlossen ist, muss das KeyCroc-Laufwerk sicher ausgeworfen oder entfernt werden.

Neustart

Als letzter Schritt muss der Key Croc ausgesteckt und nach ein paar Sekunden wieder eingesteckt werden. Beim Startvorgang wird automatisch nach einer Firmware-Datei gesucht und die Installation eingeleitet. Die LED blinkt währenddessen für etwa 10 Minuten abwechselnd rot und blau. Der Key Croc darf während der Installation nicht vom Rechner getrennt werden, ansonsten besteht die Gefahr eines dauerhaften Fehlerzustandes. Wenn die Aktualisierung der Firmware abgeschlossen ist, wird das Gerät automatisch neu gestartet, was durch eine grüne LED angezeigt wird. Sollte der Key Croc nicht automatisch neu starten, muss 5 Minuten, nachdem die LED erloschen ist, gewartet werden. Anschließend muss er neu aus- und eingesteckt werden. Weitere Informationen dazu gibt es in der Anleitung.

Jetzt ist die aktuellste Firmware installiert. Die Aktualisierung kann wie oben beschrieben anhand der Datei version.txt überprüft werden.

Key Croc Nutzung

Der Key Croc ist, wie auch die anderen Tools von Hak5, auf eine einfache Bedienung ohne tiefgreifendes Wissen ausgelegt. Über eine TXT-Datei können die meisten Funktionen genutzt werden.

Im Auslieferungszustand oder nach einem Firmware Update ist der Key Croc so konfiguriert, dass alle Tastatureingaben gespeichert werden. Um dies zu testen, wird er einfach mit einem Rechner verbunden und eine Tastatur angeschlossen. Empfehlenswert ist eine zweite Tastatur zu verwenden, da bei einem Zugriff auf die gespeicherten Daten keine Eingaben über die angeschlossene Tastatur mehr möglich sind. Sobald eine Tastatur angeschlossen wird, übernimmt der Key Croc die USB-IDs der Tastatur und simuliert diese. Während des Startvorgangs leuchtet die Status-LED weiß, danach schaltet sie sich ab, dies wird als „Stealth Modus“ bezeichnet. Jetzt kann ein beliebiger Editor geöffnet werden und eine Eingabe getätigt werden.

Arming Mode

Um auf die Daten zuzugreifen, muss der „Arming Mode“ aktiviert werden. Hak5 unterscheidet zwischen dem normalen Betrieb, „Attack Mode“ genannt, und dem „Arming Mode“ für den Zugriff auf die Daten und die Konfiguration. Um den angeschlossenen Key Croc in den „Arming Mode“ zu versetzen, muss der kleine Taster mit einer Büroklammer oder etwas Ähnlichem betätigt werden. Daraufhin schaltet er in einen USB-Stick-Modus und ein neues Laufwerk erscheint am Rechner.

Key Croc Laufwerk
Key Croc Laufwerk unter Windows
Key Croc Laufwerk Key Croc Laufwerk unter Windows

Die abgefangenen Tastatureingaben sind im Ordner loot in der Datei croc_char.log zu finden.

Dateien und Verzeichnisstruktur

Das KeyCroc-Laufwerk, auch als udsik bezeichnet, hat den internen Pfad /root/udisk. Dieses Laufwerk hat im „Attack Mode“ und im „Arming Mode“ unterschiedliche Inhalte (weitere Infos). Im „Arming Mode“ hat die udsik den folgenden Aufbau:

  • config.txt Zentrale Konfigurationsdatei
  • upgrade.html Link zur Firmware Update Anleitung
  • version.txt Datei mit der aktuellen Firmware Versionsnummer
  • docs/ Lizenzdateien (EULA & LICENSE) und Kurzanleitung (readme.txt)
  • languages/ Tastaturbelegungen in verschiedenen Sprachen
  • library/ Sammlung von Payloads, die inaktiv sind
  • loot/ Gespeicherte Tastatureingaben und weitere Protokolldateien
  • payloads/ Aktive Payloads, die ausgeführt werden
  • tools/ Wird für die Installation zusätzlicher Pakete verwendet

Status-LED

Über die RGB-LED kann der Status des Kec Croc mit unterschiedlichen Farben angezeigt werden:

  • Grün Startvorgang
  • Rot Fehler
  • Cyan WLAN
  • Magenta Konfigurieren des Keyloggers
  • Blau Arming Mode
  • Gelb Speicherplatz voll

Zugansgdaten

Wenn der Key Croc sich im „Arming Mode“ befindet, kann per serielle Schnittstelle auf ihn zugegriffen werden. Die folgenden Standardzugangsdaten sind vorkonfiguriert:

  • Benutzer: root
  • Passwort: hak5croc
  • Hostname: croc

Spracheinstellungen

Der Key Croc ist in der Lage, Tastatureingaben aus verschiedenen Tastaturlayouts, auch Tastatursprachen genannt, zu verarbeiten. Leider wird keine dynamische Konfiguration der Sprache oder gar eine Erkennung unterstützt. Daher muss das Tastaturlayout manuell vorab konfiguriert werden. Standardmäßig ist das US-Tastaturlayout voreingestellt.

Die verfügbaren Sprachen liegen auf dem Key Croc im Verzeichnis languages. Die Dateien verwenden als Dateinamen den zweistelligen Ländercode und sind im json-Dateiformat gespeichert. Demnach heißt die Datei für das deutsche Tastaturlayout de.json.

Um den Key Croc mit dem deutschen Tastaturlayout zu verwenden, muss die Datei config.txt auf der Hauptebene mit einem beliebigen Texteditor geöffnet werden. In der neunten Zeile muss us durch de ersetzt werden.

Datei: /config.txt
9: DUCKY_LANG de

Payloads

Während der Key Croc als Keylogger fungieren kann, der Tastatureingaben stillschweigend in Protokolldateien aufzeichnet oder sie in Echtzeit über das Internet an einen Cloud-C2-Server streamt, liegt seine Stärke in der Erkennung der Eingaben in Verbindung mit den Payload-Fähigkeiten. Mit den Payloads stehen eine Mischung aus Ducky Script, eine von Hak5 für den Rubber Ducky entwickelter Code mit einfacher Syntax für die Tastaturausgabe und Bash-Skripte zur Verfügung. Dadurch können Funktionen mit dem Ducky Script Syntax sehr einfach aufgerufen werden. Auf der anderen Seite können aber auch auf die Tools des Key Croc Betriebssystems zurückgegriffen werden und unterschiedliche USB-Geräte simuliert werden.

Um einen Payload auszuführen, muss dieser in einer Textdatei mit der Dateiendung .txt oder .sh im Verzeichnis payloads gespeichert werden. Sobald der Key Croc angeschlossen wird, ist der Payload aktiv. Das nachfolgende Beispiel ist bereits vorinstalliert und in der Datei example_payload.txt gespeichert. Der MATCH-Befehl analysiert die Eingabe. Sobald die dahinterstehende Zeichenkette eingeben wurde, wird der Payload, also der Rest der Datei, ausgeführt. In diesem Fall wird auf die Eingabe von „hello“ gewartet und anschließend mit dem Befehl QUACK STRING die Tastaturausgabe „ world!“ ausgeführt.

MATCH hello
QUACK STRING " world!"

Der MATCH-Befehl wird durch eine Funktion gesteuert, die auch Eingaben erkennt, die durch die Löschentaste korrigiert wurden. Das bedeutet, dass in unserem Beispiel „MATCH hello“ den Payload sowohl in den Fällen ausführen wird, in denen genau „hello“ getippt wurde, als auch in dem Fall, dass der Benutzer „helo“ gefolgt von der Löschentaste und dann „lo“ getippt hat. Zusätzlich kann der MATCH-Befehl auch mit regulären Ausdrücken umgehen. Zum Beispiel kann mit „MATCH [0-9]{4}“ eine Aktion ausgelöst werden, wenn eine vierstellige Zahl eingeben wurde. Wird der MATCH-Befehl weggelassen, wird der Payload automatisch nach dem Bootvorgang des Key Crocs ausgeführt.

Key Croc Befehle

LED

Die integrierte RGB-LED des Key Crocs kann beliebig gesteuert werden. Dazu wird der Befehl LED gefolgt von einem Buchstaben für die Farbe – R (Rot), G (Grün), B (Blau), C (Cyan), M (Magenta), Y (Gelb) und W (Weiß) – verwendet. Als zweiter Parameter erfolgt die Angabe, wie die LED leuchten soll. Dabei steht SOLID für dauerhaft leuchten, SLOW für langsam blinkend und FAST für schnell blinkend. Darüber hinaus gibt es noch weitere Sequenzen mit verschiedenen Schlüsselworten wie SETUP, damit werden vorab definierte die Farbe mit der Leuchtsequenz gekoppelt. Alle Möglichkeiten werden in der Anleitung von Hak5 beschrieben. In diesem Beispiel blinkt die LED blau:

LED B SLOW
SAVEKEYS

Mit dem Befehl SAVEKEYS kann eine Eingabe nach Erkennung des MATCH-Befehls in einer Datei gespeichert werden. Dabei wird die Option NEXT gefolgt von einer Zahl zwischen 1 und 125 verwendet, um nach dem MATCH-Befehl die angegebene Anzahl an Zeichen zu speichern. Das nachfolgende Beispiel speichert die nächsten 40 Zeichen, nachdem die Eingabe „http“ erkannt worden ist.

MATCH http
SAVEKEYS /root/loot/urls.txt NEXT 40

Präziser kann mit der Option UNTIL die Aktion definiert werden. Hier werden die Eingaben bis zu 255 Zeichen bis zu einer bestimmten Eingabe gespeichert. Das Beispiel zeigt, wie nach der Eingabe von „sudo su“ oder „sudo user“ gefolgt von einem Enter die weiteren Eingaben bis zum nächsten Enter in einer Datei gespeichert werden.

MATCH sudo(.*?)\[ENTER\]
SAVEKEYS /root/loot/root-pass.txt UNTIL \[ENTER\]
QUACK & ATTACKMODE

Der nachfolgende Payload für macOS wird ausgeführt, wenn der Key Croc die Eingabe „cp“ erkannt hat. Mit QUACK LOCK kann der Benutzer keine Eingaben über die Tastatur mehr durchführen und ist damit ausgesperrt. Mit ATTACKMODE HID STORAGE wird neben der Tastatureingabe (HID) auch das Laufwerk (STORAGE) aktiviert. Dann wird mit der Textausgabe der Kopierbefehl ausgegeben und mit einem Enter (QUACK ENTER) ausgeführt. Damit werden die SSH-Keys auf das Laufwerk des Key Crocs kopiert. Anschließend wird das Laufwerk wieder deaktiviert (ATTACKMODE HID) und der Benutzer kann wieder Tastatureingaben ausführen (QUACK UNLOCK).

MATCH cp
QUACK LOCK
ATTACKMODE HID STORAGE
QUACK STRING "cp ~/.ssh/id_rsa /Volumes/KeyCroc/loot/
QUACK ENTER
ATTACKMODE HID
QUACK UNLOCK
Weitere Beispiele

Die oben beschriebenen Befehle sind eine Auswahl, um zu zeigen, welche Szenarien mit dem Key Croc abgedeckt werden können. Weitere Beispiele für Key Croc Payloads liegen im Verzeichnis libary > examples. Hak5 stellt selbst auf der Key Croc GitHub Website noch weitere Payloads bereit. Auf der offiziellen Hilfeseite gibt es eine Übersicht aller Key Croc Befehle, um selbst Payloads zu entwickeln.

Erweiterte Nutzung

Neben der einfachen Nutzung per TXT-Dateien kann der Kec Croc auch mit der CLOUD C2 Lösung genutzt werden oder per serieller Schnittstelle auf das Debian basierte System zugegriffen werden. Alle Möglichkeiten sind in der Key Croc Anleitung beschrieben.

WLAN

Der Key Croc verfügt über ein integriertes WLAN-Modul für die Verbindung mit 2,4-GHz-Netzwerken. Damit ist es möglich, eine Verbindung mit einer CLOUD C2 Installation aufzunehmen oder aufgezeichnete Tastatureingaben oder andere Dateien auf einen entfernten Server zu laden.

Um WLAN zu aktiveren, müssen die Zugangsdaten in die Datei config.txt eingetragen werden. Die beiden Optionen WIFI_SSID (Netzwerkname) und WIFI_PASS (Passwort) sind bereits vorhanden, es muss nur das Kommentarzeichen (#) entfernt und die Daten angepasst werden.

Datei: /config.txt 
19: WIFI_SSID wlanname
21: WIFI_PASS passwort

Sollten Leerzeichen oder Sonderzeichen im Namen oder im Passwort vorhanden sein, müssen diese mit einem Backslash „\“ escaped werden. Für offene Netzwerke, die kein Passwort erfordern, wird der Eintrag WIFI_PASS weggelassen.

CLOUD C2

Um über das Internet auf den Key Croc zuzugreifen, muss er mit dem WLAN verbunden sein und eine Cloud C2 Installation vorhanden sein. Bei der Cloud C2 Lösung von HAK5 handelt es sich um keinen klassischen Cloud-Dienst, sondern um eine selbst gehostete webbasierte „Command and Control“ Lösung. Damit können verschiedene Geräte von Hak5 mit dem Webbrowser konfiguriert und gesteuert werden. Es steht die kostenlose Community Variante für Linux-, Mac- und Windows-Rechner zur Verfügung. Diese kann unkompliziert in einem lokalen Netzwerk ohne Server getestet werden. Die Einrichtung von Cloud C2 habe ich im Artikel Screen Grab beschrieben.

Um den Key Croc mit einer CLOUD C2 Instanz zu verbinden, muss dort in der Geräteliste auf die Schaltfläche (+) für Gerät hinzufügen geklickt werden. Als Gerätetyp muss „Key Croc“ ausgewählt werden und nach der Eingabe eines Namens kann es hinzugefügt werden. Auf der Übersichtsseite wird auf „Setup“ geklickt, um den Download der Datei device.config zu starten. Diese Datei wird einfach auf der obersten Verzeichnisebene des Key Croc abgelegt. Beim nächsten Start im „Attack Mode“ meldet sich der Key Croc beim CLOUD C2 Server.

Serielle Kommunikation

Sobald der Key Croc im „Arming Mode“ ist und auf das Laufwerk zugegriffen werden kann, ist auch gleichzeitig die serielle Schnittstelle aktiv. Je nach Betriebssystem ist die Verbindung unterschiedlich. Unter Windows wird über die COM-Ports zugegriffen. Für den Zugriff werden die oben genannten Zugangsdaten (Benutzer: root und Passwort: hak5croc) verwendet.

Damit ist ein Shell-Zugriff möglich und somit können installierte Tools wie Nmap genutzt werden. Weitere Tools, die dann auch in den Payloads genutzt werden können, können installiert werden.

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

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.