+2 Daumen
93 Aufrufe

Die englischsprachige Version dieses Artikels ist (samt Implementierung des Compilers und Inject-File) auf https://www.cyber-security.online/usb-rubber-ducky-as-a-security-token/ abrufbar. 

image(1).png

1. Einleitung

In diesem Artikel geht es um den durch die Amazon Original-Serie Mr. Robot bekannt gewordenen USB Rubber Ducky \(-\) ein als USB-Stick getarnter Mikrocontroller, mit dem sogenannte Keystroke-Injection Attacken als Teil eines Social-Engineering Angriffs durchgef├╝hrt werden k├Ânnen. Wie Ihnen aber mit Sicherheit nicht entgangen ist, enth├Ąlt dieser Artikel keinen Disclaimer. Das liegt daran, dass wir das Ger├Ąt zweckentfremden und ausnahmsweise f├╝r "das Gute" einsetzen. Dass der USB Rubber Ducky dem Target vorgaukelt eine gew├Âhnliche Tastatur zu sein, nutzen wir zu unserem Vorteil, indem wir statt Schaden verursachende Befehle in CMD/Powershell einzutippen, ein praktisch sicheres Passwort eingeben lassen. Sie fragen sich vielleicht:

Welchen Benefit habe ich dadurch?

Nun, wie lautet Ihr derzeitiges Passwort? Ist es sicher? Und was bedeutet f├╝r Sie sicher? Haben Sie es vielleicht aufgeschrieben und denken, dass eine sichere Aufbewahrung alleine das Passwort sicher macht? Bevor Ihre Augen das n├Ąchste Kapitel auch nur anvisieren, sollten Sie mit einem MD5-Hash Generator (https://www.md5-generator.de/) den MD5-Hash Ihres Passwortes generieren und einen Reverse-Lookup wagen (z. B. hier: http://www.md5online.org/). Sollte Ihnen nun Ihr Passwort im Klartext angezeigt werden, dann haben Sie ein Problem und werden f├╝r die in diesem Artikel vorgeschlagene L├Âsung sehr dankbar sein.

2. Was ist ein Security Token?

F├╝r die Authentisierung eines Anwenders gegen├╝ber einem IT-System/einer Anwendung unterscheidet man in der Regel zwischen dem, 

- was der Anwender wei├č (PIN, Passwort, Passphrase, Pattern, ...)

- was der Anwender besitzt (Security-Token, SmartCard, ...)

- was der Anwender ist (Biometrie (Fingerabdruck, Retina, Behavioral, ...) 

Ein Security-Token f├Ąllt in die zweite Kategorie ("was der Anwender besitzt"). Er authentisiert sich mit einer Art Schl├╝ssel gegen├╝ber einem IT-System/einer Anwendung, das/die ihn dann wiederum authentifiziert. ├ťblicherweise wird ein Security-Token in Kombination mit einem Verfahren aus einem der ├╝brigen Kategorien (Wissen, Biometrie) gepaart, was man als Multifaktor-Authentifizierung (MFA) bezeichnet. MFA ist Ihnen bestimmt schon einmal bei der Online-Zahlung mit Kreditkarte begegnet. W├Ąhrend des Zahlungsvorgangs werden Sie in einer App auf Ihrem Smartphone (Token) dazu aufgefordert, einen Key zu generieren, der dann eingegeben werden muss, um zu verifizieren, dass Sie der sind, f├╝r den Sie sich ausgeben und tats├Ąchlich <hier beliebiges Produkt einf├╝gen> kaufen wollen.

3. Schritte zum Bau eines USB Rubber Ducky Security-Tokens

Sie ben├Âtigen (offensichtlich) einen USB Rubber Ducky und eine entsprechende Payload, die Sie sich bspw. auf https://www.cyber-security.online/usb-rubber-ducky-as-a-security-token/ generieren lassen k├Ânnen. Geben Sie hierf├╝r Ihr gew├╝nschtes Passwort, das so kompliziert wie m├Âglich sein sollte (immerhin m├╝ssen Sie es sich nicht merken), ein und klicken Sie auf 'Generate'.

1.png

Anschlie├čend erscheint der Button 'Download', mit dem Sie sich das Inject-File mit der Bezeichnung 'inject.bin' herunterladen k├Ânnen.

2.png

Doch wie entsteht dieses Inject-File? Die Payload wird in DuckyScript geschrieben und anschlie├čend mit einem entsprechenden Compiler in ein Binary-File ├╝bersetzt. Der Content des Binary-Files ist die Payload und das File selbst das Inject-File, das auf einer Mikro-SD-Karte gespeichert und in den auf dem USB Rubber Ducky vorgesehenen Schacht gesteckt wird. Das Ducky-Skript enth├Ąlt lediglich \(4\) Befehle:

DELAY 3000
STRING your password
DELAY 500
ENTER
Diese bedeuten im Einzelnen:

DELAY 3000

Warte \(3000\)ms (\(3\) Sekunden), bis der USB Rubber Ducky vom System erkannt wurde. 

STRING your password

Tippe das Passwort your password.

DELAY 500

Warte \(500\)ms (eine halbe Sekunde).

ENTER

Dr├╝cke Enter (und best├Ątige damit die Passworteingabe).

F├╝r das sehr schwache Passwort '123456Seven' wird mit dem Compiler ein Binary-File erzeugt, dessen Content man in einem Hex-Editor untersuchen kann:

image(2).png

Den Compiler selbst stelle ich auf meiner Website kostenfrei zur Verf├╝gung: https://www.cyber-security.online/usb-rubber-ducky-as-a-security-token/

4. Security-Flaws

Obwohl die vorgeschlagene L├Âsung auf den ersten Blick sicher zu sein scheint, gibt es trotzdem einige (offensichtliche) Probleme, die von Ihnen verlangen Ihren USB Rubber Ducky wie den eigenen Augapfel zu h├╝ten:

- Das Passwort wird als Klartext (ungehasht) in das Binary-File 'inject.bin' geschrieben.

- Das 'inject.bin' File kann mit wenig Aufwand wieder in ein DuckyScript ├╝bersetzt werden. Besitzt der Angreifer Ihr Inject-File, besitzt er faktisch Ihr Passwort und ben├Âtigt nicht Ihr Security-Token.

- Die Eingaben des USB Rubber Ducky k├Ânnen mit einem Keylogger aufgezeichnet werden (in K├╝rze erscheint ein Artikel, in dem wir einen eigenen Keylogger programmieren werden).

- Der Angreifer muss nicht einmal Ihren USB Rubber Ducky oder das darauf gespeicherte Inject-File stehlen. Er kann theoretisch einen beliebigen Editor ├Âffnen, Ihr Token in einen freien USB-Port stecken und das im Klartext getippte Passwort am Bildschirm begutachten. Dieses braucht er sich dann nur zu merken oder analog/digital zu speichern. Mit dem Schlie├čen des Editors ist der Tatort bereinigt. 

5. Eine Alternative

Unter Linux kann man durch die Nutzung von pam_usb (https://wiki.archlinux.org/index.php/Pam_usb) einen beliebigen USB-Stick zum hardwarebasierten Security-Token erkl├Ąren. Die Funktionsweise unterscheidet sich jedoch von der des Ducks, da man hiermit z. B. keine Authentifizierung durch eine Web-App erreichen und als Fallback-Mechanik nicht auf das in den grauen Zellen vielleicht vorhandene Wissen um das Passwort zur├╝ckgreifen kann. Nicht selten beklagen Nutzer, dass sie sich mit pam_usb ausgesperrt haben, weshalb ich einen Testrun innerhalb einer virtuellen Maschine vor dem Go-Live empfehle.

Das Mitglied hat durch den Artikel 50 Bonuspunkte erhalten. Schreib auch du einen Artikel.
geschlossen: Stack-Artikel
von 8,3 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community
...