Der erste Zugang erfolgte über eine SQL-Injection-Schwachstelle in einer öffentlich zugänglichen Java-Anwendung auf Apache Tomcat . Eine Autocomplete-Suchfunktion der Anwendung filterte Benutzereingaben nicht ausreichend, sodass die Angreifer über eine JDBC-Verbindung eigene SQL-Befehle in die Oracle-Datenbank einschleusen konnten . Wie die Forscher von Huntress betonen: SQL-Injection ist keine neue Angriffsform – sie passiert, wenn Eingaben, die an den SQL-Server gehen, nicht ordnungsgemäß bereinigt werden .
Die Angreifer setzten kein einziges Schadprogramm auf die Festplatte. Stattdessen nutzten sie Oracles JVM und speicherten das Toolkit als Java-Schema-Objekte in der Datenbank . Dadurch blieb es für Betriebssystem-Ebene unsichtbar, da EDR- und AV-Tools Java-Klassen und PL/SQL-Wrapper in Oracle nicht überprüfen .
Das Toolkit bestand aus folgenden Komponenten, die jeweils als Datenbankobjekt abgelegt waren:
| Komponente | Funktion |
|---|---|
| KhuntCmd | Lädt cmd.exe und führt beliebige Betriebssystembefehle aus, die als SQL-Statements an die Datenbank gesendet werden |
| KhuntHash | Extrahiert Benutzernamen und Passwort-Hashes aus Oracles internen Benutzertabellen und speichert sie in einer Datei |
| KhuntFS / KhuntFS2 | Datei-Explorer zum Auflisten, Lesen, Durchsuchen und Prüfen von Dateigrößen |
| KhuntT | Ein einfaches „Ping“-Tool, um die Installation des Toolkits zu bestätigen |
| KhuntUnzip | Dienstprogramm zum Entpacken von ZIP-Dateien |
| khunt_ PL/SQL-Wrapper* | PL/SQL-Wrapper-Prozeduren zum Aufruf der zugrunde liegenden Java-Methoden |
Die Angreifer beschränkten sich nicht auf die Datenbank. Über das Toolkit gelangten sie in mehreren Schritten zur vollständigen Kontrolle über den Windows-Server :
cmd.exe /c whoami und stellten fest, dass sie mit SYSTEM-Rechten arbeiteten – der höchsten Berechtigungsstufe unter Windows .reg.exe auf und kopierten die Registry-Hives „SECURITY“ und „SYSTEM“ in die Dateien khuntSECURITY.hiv und khuntSYSTEM.hiv im Verzeichnis F:\Oracle\ .tasklist /svc laufen und speicherten die Ausgabe in khunttasks.txt .esentutl.exe kopierten sie die SAM- sowie eine zweite Kopie der SECURITY-Hives und speicherten sie als khuntSAM.hiv und khunt_SECURITY.hiv .Die erbeuteten Registry-Hives können offline genutzt werden, um die Passwort-Hashes aller lokalen Konten zu extrahieren und zu entschlüsseln .
Huntress‘ Untersuchung offenbarte mehrere kritische Sicherheitslücken, die diesen Angriff ermöglichten :
Huntress empfiehlt aufgrund dieses Vorfalls :
Dieser Angriff ist eine eindringliche Erinnerung daran, dass Datenbank-Engines mit eingebauten Programmierumgebungen (wie Oracles JVM) zu heimtückischen Angriffsplattformen werden können – selbst durch eine einzige ungeprüfte Eingabe von außen. Sicherheitsteams müssen ihren Fokus über das Betriebssystem hinaus auf die Datenbank-Objektebene ausdehnen.