Tobias Scheible Cyber Security & IT-Forensik Dozent
BadUSB Board MalDuino - Hacking Gadget

MalDuino – BadUSB mit Schalter

Der MalDuino ist ein kleines Board mit USB-Anschluss, das speziell für BadUSB-Angriffe entwickelt worden ist und damit Tastatureingaben simulieren kann. Zwei Varianten - Lite und Elite – werden angeboten. Die Elite-Variante besitzt mehrere Schalter, womit aus mehreren vorbereiteten BadUSB-Angriffen ausgewählt werden kann.

Donnerstag, 03. Oktober 2019
0 Kommentare

Der MalDuino wurde von Jhonti Todd-Simpson mittels einer Crowdfunding-Kampagne auf Indiegogo realisiert. Verwendet wird wieder der Prozessor Atmega32U4, der auch im Arduino Micro und Arduino Leonardo verwendet findet. Durch die Verwendung des gleichen Chips wie die Arduino Produkte, wird der MalDuino Lite direkt in der Arduino IDE unterstützt, ohne dass eine Erweiterung installiert werden muss.

Die Lite-Version ist klein, sie enthält neben dem USB-Anschluss nur eine etwas größere Platine mit einem Schalter, damit kann zwischen dem Ausführ- und Programmiermodus umgeschaltet werden. Eine LED ist vorhanden, die anzeigt, wenn ein Skript fertig ausgeführt worden ist. Der MalDuino Lite ist vergleichbar mit dem Digispark bzw. dem Beetle Board. Mit dem MalDuino Converter können „Ducky Script“ Dateien einfach inklusiver Unterstützung für das deutsche Tastaturlayout konvertiert werden. Anschließend erfolgt der Upload über die Arduino IDE, dort wird der MalDuino Lite als Arduino Micro angesprochen.

MalDuino Elite - Hacking Gadget
MalDuino Elite – BadUSB Entwicklerboard mit DIP-Schalter
MalDuino Elite - Hacking Tool MalDuino Elite – BadUSB Entwicklerboard mit DIP-Schalter

Die Elite-Version ist größer, verfügt über einen Micro-SD-Kartenleser und vier kleinen DIP-Schaltern. Damit kann der Benutzer wählen, welches Skript von der SD-Karte ausgeführt werden soll. Das Board hat auch eine LED, die anzeigt, wenn ein Skript fertig ausgeführt wurde. Die eigentliche Firmware muss nicht jedes Mal neu geschrieben werden. Stattdessen muss nur der Inhalt auf der SD-Karte angepasst werden. Dadurch funktioniert der MalDuino Elite ähnlich wie der Rubber Ducky.

MalDuino Elite

BadUSB - MalDuino Elite
MalDuino Elite – Rückseite mit Mico SD-Kartenlesegerät
BadUSB - MalDuino Elite MalDuino Elite – Rückseite mit Mico SD-Kartenlesegerät

Der MalDuino Elite ist die konsequente Weiterentwicklung einer BadUSB-Hardware. Er funktioniert ähnlich einfach wie der Rubber Ducky, kann aber „Ducky Script“ Dateien direkt ausführen und durch die Schalter können mehrere Angriffsszenarien mit einem Gerät abgedeckt werden, ohne die Dateien oder die SD-Karte zu tauschen. Nach dem Kauf muss der MalDuino Elite einmalig initialisiert werden.

Initialisierung

Im Unterschied zum MalDuino Lite wird der MalDuino Elite von der Arduino IDE nicht direkt unterstützt, sondern muss zusätzlich hinzugefügt werden. Das liegt an dem SD-Kartenlesegerät und eine daraus resultierende andere Spannungsversorgung.

Installation

Laden Sie die Arduino IDE für Ihr Betriebssystem herunter. Wenn Sie Windows benutzen, können Sie die erste Variante „Windows Installer, for Windows XP and up“ auswählen. Klicken Sie auf der nächsten Seite auf den Link „JUST DOWNLOAD“, der sich unten links neben dem Button befindet, um den Download zu starten. Nachdem der Download abgeschlossen ist, installieren Sie die Arduino IDE entsprechend der Anleitung (Windows, Linux und macOS).

Voreinstellungen

Starten Sie nun die Arduino IDE. Um den MalDuino Elite zu programmieren, muss das Board noch hinzugefügt werden. Es wird dabei auf die Boards von Sparkfun zurückgegriffen. Gehen Sie dazu im Menü auf „Datei“ und wählen den Punkt „Voreinstellungen“ aus. Im unteren Bereich des Dialogs gibt es den Punkt „Zusätzliche Boardverwalter-URLs:“ mit einem Eingabefeld. In dieses Eingabefeld muss der folgende Eintrag hinzugefügt werden:

https://raw.githubusercontent.com/sparkfun/Arduino_Boards/master/IDE_Board_Manager/package_sparkfun_index.json

Ist hier schon ein Eintrag vorhanden, kann auf das Icon ganz rechts geklickt werden und die URL in das Eingabefenster eingetragen werden. Jede URL muss in einer extra Zeile stehen. Danach kann das Fenster „Voreinstellungen“ mit einem Klick auf den Button „OK“ rechts unten geschlossen werden.

Boardverwalter

Jetzt muss das Softwarepaket für das MalDuino Elite Board hinzugefügt werden. Klicken Sie dafür auf den Menüpunkt „Werkzeuge“ und gehen auf den Menüpunkt „Board …“ und wählen dort im Untermenü den obersten Punkt „Boardverwalter…“ aus. Geben Sie in das nun erscheinende Fenster oben in das Suchfeld „sparkfun“ ein. Als Ergebnis erscheint der Eintrag „SparkFun AVR Boards“. Klicken Sie auf den Button „Installieren“, um das Board hinzuzufügen. Nach der Installation können Sie das Fenster schließen.

Einstellungen

Nun ist das Board im Menü verfügbar. Um es auszuwählen, selektieren Sie im Menü wieder den Punkt „Werkzeuge“ und gehen Sie auf den Unterpunkt „Board: …“. Dort sind jetzt mehrere Einträge von Sparkfun vorhanden. Wählen Sie den Eintrag „Sparkfun Pro Micro“ aus. Danach müssen Sie unbedingt unter „Werkzeuge“ im Unterpunkt „Prozessor“ den Eintrag „ATmega32u4 (3.3v, 8MHz)“ auswählen. Damit wird die richtige Spannungsversorgung sichergestellt.

Script Converter

Gehen Sie auf den MalDuino Converter und wählen oben den Reiter „ELITE“ aus. Fügen Sie einen Beispiel Code als „Ducky Script“ ein und wählen Sie links unten bei „Keyboard Layout:“ den Eintrag „de_DE“ aus. Geben Sie rechts in das Eingabefeld einen Namen ein und klicken Sie auf „DOWNLOAD“. Sie können den folgenden Beispielcode nehmen:

DELAY 1000
STRING hello world

Sie erhalten eine ZIP-Datei als Download. Entpacken Sie Dateien und öffnen Sie den Ordner „elite“. Darin befindet sich die Datei elite.ino, die mit der Arduino IDE geöffnet werden muss. Laden Sie die Datei mit den obigen Einstellungen auf den MalDuino Elite hoch. Nun ist er einsatzbereit.

MalDuino Elsite & Lite - MalDuino Converter
MalDuino Converter zum Erstellen der Arduino-Datei für die Initialisierung
MalDuino Elsite & Lite - MalDuino Converter MalDuino Converter zum Erstellen der Arduino-Datei für die Initialisierung

Skripte ausführen

Im selben Ordner wie die .ino-Datei befindet sich auch eine .txt-Datei. Dort ist der gleiche Inhalt wie im MalDuino Converter im „Ducky Script“-Format. Der MalDuino Elite kann die „Ducky Script“-Datei direkt ausführen, eine Umwandlung ist nicht erforderlich. Legen Sie diese txt-Datei in das Stammverzeichnis Ihrer Micro SD-Karte, die als FAT32 formatiert sein muss, und benennen Sie die Datei in „1111.txt“ um. Stecken Sie nun die Speicherkarte in Ihren MalDuino Elite und stellen Sie alle Schalter auf „on/up“. Wenn Sie nun den Stick an einen Rechner anschließen, wird das Skript ausgeführt.

Schalter

Wie Sie vielleicht schon gemerkt haben, entspricht der Dateinamen der Position der Schalter. Soll ein Skript ausgeführt werden, wenn der erste Schalter auf „on“ gestellt wird und alle andere auf „off“, lautet der Dateinamen „1000.txt“.

MalDuino Beispiele

Da der MalDuino Elite „Ducky Script“-Dateien ohne Kompilierung verarbeitet, können einfach vorhandene Beispiele aufgegriffen werden.

Microsoft Edge öffnen

Zum Einstieg öffnen wir den Webbrowser Microsoft Edge unter Windows. Die Pausen werden benötigt, da zum einen das Betriebssystem Zeit benötigt, das Gerät zu initialisieren und zum anderen die Dialoge Zeit zum Öffnen benötigen. Erfolgt zu schnell die nächste Eingabe, geht diese verloren. Mit dem Befehl „GUI r“ wird der Ausführen-Dialog gestartet. Darin wird „microsoft-edge:“ geschrieben und mit der Enter-Taste bestätigt.

DELAY 1000
GUI r
DELAY 250
STRING microsoft-edge:
ENTER

Website aufrufen

Eine Website lässt sich sehr einfach aufrufen. Dazu wird einfach der Ausführen-Dialog gestartet, die URL eingetragen und mit Enter bestätigt. Windows öffnet daraufhin die URL mit dem Standard-Webbrowser.

DELAY 1000
GUI r
DELAY 250
STRING https://scheible.it
ENTER

Im Editor schreiben

Das nachfolgende Beispiel zeigt das Öffnen des Ausführen-Dialogs und den Start von Notepad. Mit dem Befehl „GUI r“ wird der Ausführen-Dialog gestartet. Darin wird „notepad“ geschrieben und mit der Enter-Taste bestätigt. Anschließend wird der Text „MalDuino“ im Editor geschrieben.

DELAY 1000
GUI r
DELAY 250
STRING notepad
ENTER
DELAY 250
STRING MalDuino

Weitere Skripte

Fertige Ducky Skripte können einfach über die offizielle Github Seite von Hak5 heruntergeladen werden. Weitere spannende Beispiele für den Rubber Ducky gibt es auf der Ducktoolkit Website.

Fazit MalDuino

Die beiden MalDuinos stellen eine sehr spannende Hardware dar, die speziell für BadUSB-Angriffe entwickelt worden sind. Sehr interessant ist auch der Prozess, wie sie hergestellt wurden – handymade in Großbritannien (YouTube Video). Die kleinere Variante entspricht in etwa dem Digispark. Die Elite-Variante hingegen besitzt einmalige Eigenschaften. Die integrierten Schalter für die Auswahl der Skripte machen ihn zu einem vielseitigen Werkzeug. Und die direkte Ausführung der Rubber Skripte von den Mikro SD-Karten machen den MalDuino Elite zu einer Hardware mit sehr niedrigen Einstiegshürden.

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.

Interesse am Thema Hacking- & Pentest-Hardware?
  • 12.11.2024 (Workshop) Hacking- und Pentest-Hardware Workshop, scheible.it, Böblingen (weitere Infos)

Ü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.