
EvilCrow-Keylogger – Programmierbares Tool
Mit dem EvilCrow-Keylogger werden verschiedene Funktionalitäten, die von einzelnen anderen Keyloggern geboten werden, in einer Hardware vereint. Die erfassten Daten werden auf einer microSD-Karte gespeichert und per WLAN kann auf die gespeicherten Daten live zugegriffen werden. Über das Webinterface ist eine Keystroke-Injection (BadUSB Angriff) möglich. Der EvilCrow-Keylogger wurde von Joel Serna und Ernesto Sánchez entwickelt, die alle Informationen und den dazugehörigen Code auf der GitHub-Seite bereitstellen.
Der Keylogger besitzt kein Gehäuse. Die Platine ist in Schwarz gehalten und auf der einen Seite sitzt ein USB-A-Stecker und auf der anderen Seite eine USB-A-Buchse. Er misst inklusive Anschlüsse ca. 6,5 × 1,8 cm und ist nicht höher als die USB-Buchse selbst. Auf der Seite der USB-Buchse befindet sich um 90 Grad gedreht der microSD Karten Slot. Ist eine Karte eingelegt, steht sie leicht über das Board hinaus. Daneben befinden sich der Chip für die USB-Kommunikation und darüber und darunter jeweils eine Pin-Leiste. Auf der Unterseite befindet sich der Chip des Mikrocontrollers und des WLANs. Der Name EvilCrow-Keylogger selbst ist nicht aufgedruckt. Neben ein paar Markierungen für die Bauteile sind die Version und eine Kennung auf der Unterseite aufgedruckt.


Als Mikrocontroller kommt der Atmega32U4 zum Einsatz, der auch auf vielen anderen Boards wie dem Arduino Micro, dem Teensy 2.0 oder dem Beatle Board zum Einsatz kommt. Zusätzlich wurde der Arduino Lilypad USB-Bootloader verwendet, wodurch viele Anwendungen mit dem Mikrocontroller kompatibel sind. Für die WLAN-Kommunikation wird der bekannte ESP32 Chip in der Pico Ausführung eingesetzt. Um die USB-Host-Funktion zu realisieren, wird zusätzlich der Chip MAX3421 eingesetzt.
Konfiguration und Installation
Zur Installation der Software wird PlatformIO verwendet. PlatformIO ist ein plattform- und architekturübergreifendes multiples Framework für die Anwendungsentwicklung für eingebettete Systeme. Damit lassen sich viele Build-Prozesse automatisieren. Die Macher des EvilCrow-Keylogger nutzen es für die „Automatic Installation“ Methode. Darüber hinaus werden auf der GitHub-Seite noch die Methoden „Automatic Installation with ESP Flasher“ und „Manual Installation“ beschrieben. Bei diesen beiden Methoden wird zusätzliche Hardware benötigt und muss zum Teil gelötet werden. Nachfolgend beschreibe ich die „Automatic Installation“ Methode.
PlatformIO Core installed
Als Erstes muss PlatformIO Core installiert werden. Am einfachsten ist hier die Nutzung eines Python-Scripts des Projektes. Für die Installation habe ich ein Kali Linux System verwendet. Als Voraussetzung muss Python installiert sein.
$ python3 -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/master/scripts/get-platformio.py)"
Die Installation erfolgt im eigenen Benutzer-Verzeichnis. Daher müssen noch symbolische Links im Verzeichnis /usr/local/bin angelegt werden, damit PlatformIO von der Shell aus aufgerufen werden kann.
$ sudo ln -s ~/.platformio/penv/bin/platformio /usr/local/bin/platformio $ sudo ln -s ~/.platformio/penv/bin/pio /usr/local/bin/pio $ sudo ln -s ~/.platformio/penv/bin/piodebuggdb /usr/local/bin/piodebuggdb
Zusätzlich müssen die udev-Regeln gesetzt werden, damit ein Zugriff auf die USB-Schnittstelle möglich ist:
curl -fsSL https://raw.githubusercontent.com/platformio/platformio-core/master/scripts/99-platformio-udev.rules | sudo tee /etc/udev/rules.d/99-platformio-udev.rules sudo service udev restart
Repositories herunterladen
Jetzt können die Repositories heruntergeladen werden. Dazu wird git und der clone-Befehl verwendet. Neben dem EvilCrow-Keylogger Repository wird noch das weitere Repository keylogger-pio von Volca benötigt.
$ git clone https://github.com/joelsernamoreno/EvilCrow-Keylogger.git $ git clone https://github.com/volca/keylogger-pio.git
Bei mir trat ein Fehler auf, wodurch der Vorgang abbrach. Auf GitHub habe ich dazu einen Issue eröffnet und sehr schnell eine Antwort erhalten. In der Datei platformio.ini befinden sich zwei Zeilen (35 & 36), die entfernt werden müssen.
Datei: keylogger-pio/esp32/platformio.ini 35: platform_packages = 36: tool-esptoolpy@https://github.com/AprilBrother/esptool.git#keylogger
Modifikationen
Jetzt kann der Code noch weiter modifiziert werden. Wer schon einmal mit einem ESP8266 oder ESP32 einen Webserver realisiert hat und mit einem Arduino Board eine Tastaturausgabe realisiert hat, wird sich schnell im Code zurechtfinden.
Die wichtigste Stelle befindet sich in der Datei Keyboard.cpp. Hier kann das Tastaturlayout eingestellt werden. Um ein deutsches Tastaturlayout zu verwenden, muss die folgende Zeile geändert werden:
EvilCrow-Keylogger/libraries/Keyboard/src/Keyboard.cpp 26: #define kbd_en_us => #define kbd_de_de
Der EvilCrow-Keylogger generiert ein WLAN im AP-Modus. Die Zugangsdaten dafür können in der Datei ESP32.ino angepasst werden.
Datei: EvilCrow-Keylogger/code/ESP32/ESP32.ino 16: const char* ssid = "WiFi"; // Enter your SSID here 17: const char* password = "987654321"; //Enter your Password here
Code hochladen


Um den Programmier-Modus des EvilCrow-Keyloggers zu aktivieren, muss eine Jumper-Brücke gesetzt werden. Diese silbernen Drahtstücke in U-Form werden in einem kleinen Plastikbeutel mitgeliefert. Hierbei wird GND mit GPIO0 verbunden.
Nachdem der Jumper gesetzt wurde, kann der EvilCrow-Keylogger per USB mit dem Rechner verbunden und der Installationsvorgang kann gestartet werden:
$ sudo ./keylogger-pio/flash.sh
Wenn dreimal die Meldung „success“ erscheint, war der Vorgang erfolgreich. Danach muss der Stick ausgesteckt und der Jumper entfernt werden.
Anwendung und Einsatz
Nachdem die aktuellste Softwareversion auf dem EvilCrow-Keylogger installiert wurde, kann er bestückt mit einer microSD-Karte an einem Rechner angeschlossen werden. Um die Funktionen zu testen, muss eine Tastatur an die USB-Buche angeschlossen werden. Nach kurzer Zeit erscheint das WLAN des Sticks, mit dem eine Verbindung aufgebaut wird. In der Standardkonfiguration lautet die SSID „Keylogger“ und das Passwort „123456789“. Danach kann in einem Webbrowser die IP-Adresse 192.168.4.1 aufgerufen werden und die Startseite des EvilCrow-Keylogger Interface erscheint.


Die aktuelle Softwareversion wird in der obersten Zeile neben dem Namen angezeigt. Darunter befindet sich das Menü mit den Optionen „Live Payload“, „View Log“ und „Delete Log“. Der Button „Menu“ führt immer zur Startseite zurück.
Nachdem mit der an den EvilCrow-Keylogger angeschlossenen Tastatur eine Eingabe vorgenommen wurde, werden die Inhalte in der Datei LOG.TXT auf der SD-Karte gespeichert. Die Inhalte können auch über den Menüpunkt „View Log“ eingesehen werden.


Alle gespeicherten Eingaben können über den Button „Delete Log“ gelöscht werden. Als Bestätigung wird eine weiße Seite mit der Meldung „File cleared!“ angezeigt.


Live Payload
Über den Menüpunkt „Live Payload“ können automatische Tastatureingaben programmiert werden. Wie die Eingaben funktionieren, werden auf der EvilCrow Keylogger Seite erläutert. Um einfachen Text auszugeben, wird der Befehl pritnt oder println für Ausgaben mit anschließendem Zeilenumbruch verwendet. Mit delay, gefolgt von einer Zeitangabe in Millisekunden, können Pausen definiert werden. Um Sondertasten zu drücken, werden die Keyboard Modifiers von Arduino verwendet. Weitere Tasten für Tastenkombinationen werden entsprechend ihrer Nummer der ASCII-Tabelle angegeben. Mit dem nachfolgenden Beispiel wird unter Windows der Editor Notepad geöffnet und Hello World darin geschrieben. Mit einem Klick auf den Button „Run Payload“ wird der Vorgang gestartet.
delay 1000 press 131 press 114 release delay 1000 print notepad delay 500 rawpress 176 delay 2000 print Hello World


Logger Artikelserie
Dieser Artikel ist Teil der Artikelserie „Logger als Angriffstools“, die dem Themenschwerpunkt Hacking Hardware angehört. In dieser Artikelserie beschreibe ich verschiedene Arten von Loggern, damit diese erkannt und effektive Gegenmaßnahmen getroffen werden können.
- Tastaturüberwachung per Keylogger
- EvilCrow-Keylogger – Programmierbares Tool
- Heimliche Screenshots per Screenlogger
- WLAN Screenlogger Screen Crab
- 21.05.2025 (Vortrag) VDI-Vortrag Hacking-Hardware, VDI Zollern-Baar, Albstadt (weitere Infos)
- 22.05.2025 (Vortrag) Vortrag am Innovationscampus Sigmaringen, WFS-Wirtschaftsförderung, Sigmaringen (weitere Infos)
- 24.06.2025 (Workshop) Hacking- und Pentest-Hardware Workshop, Scheible UG, Mannheim (weitere Infos)
- 26.06.2025 (Workshop) Hacking- und Pentest-Hardware Workshop, Scheible UG, Zürich (weitere Infos)
- 10.07.2025 (Workshop) Hacking- und Pentest-Hardware Workshop, Scheible UG, Stuttgart (weitere Infos)
- 08.10.2025 (Workshop) Hacking- und Pentest-Hardware Workshop, Scheible UG, Balingen (weitere Infos)