Microsoft SQL Server (MS-SQL) sind ein bevorzugtes Ziel für Brute-Force-Angriffe. Ein Blogbeitrag von secoia.io zeigt auf warum das so ist. Die MS-SQL Features xp_cmdshell und CLR-Assembly erlauben es Angreifern, Rechte zu eskalieren und Befehle auf Betriebssystemebene auszuführen – ideale Vorraussetzungen für Ransomware und Malware Deployments.
Exploit-Muster
1. Aktivierung von „TRUSTWORTHY“ und „clr enabled“ Parametern
Die Angreifer aktivieren die „TRUSTWORTHY“-Parameter für die Master-Datenbank, die standardmäßig deaktiviert sind. Diese Parameter ermöglichen es Datenbankbenutzern, andere Benutzer mit der Anweisung EXECUTE AS zu imitieren. Zusätzlich wird der Parameter „clr enabled“ aktiviert, der es dem SQL Server erlaubt, benutzerdefinierte Assemblies auszuführen. Die Aktivierung beider Parameter ist eine Voraussetzung für die Ausnutzung von CLR Assembly.
2. Erstellen einer „shell“-Assembly
Die Angreifer erstellen eine Assembly namens „shell“ und speichern sie in der „msdb“-Datenbank mit „Unsafe“-Berechtigungen. Diese Assembly ist eine .NET-DLL, die eine Klasse namens StoredProcedure enthält, welche die Funktion cmd_exec beinhaltet. Diese Funktion führt Befehle aus, die ihr über cmd.exe als Parameter übergeben werden. Diese Assembly entspricht einem CLR SqlShell-Malware, die von Asec im Zusammenhang mit der Kompromittierung eines MS-SQL-Servers durch die Trigona-Ransomware dokumentiert wurde.
3. Erstellen und Ausführen von gespeicherten Prozeduren
Die Angreifer erstellen eine gespeicherte Prozedur namens cmd_exec, die die SqlShell-Malware aufruft. Diese Prozedur führt dann folgende Aktionen aus:
- Erstellen eines PowerShell-Skripts mittels echo und redirect, das eine Binärdatei herunterlädt und im ProgramData-Ordner speichert.
- Ausführen des Skripts mit PowerShell.
- Ausführen der Binärdatei mit WMIC.
Obwohl die weitere Ausführung durch Microsoft Defender blockiert wird, bleibt unklar, ob die nachfolgenden Aktionen iterativ durch das Skript ausgeführt werden oder ob sie aufgrund der Blockierung des vorherigen Befehls ausgeführt werden.
4. Nutzung von xp_cmdshell und OLE Automation Procedures
Die Angreifer aktivieren die Parameter xp_cmdshell, um dem SQL Server zu ermöglichen, eine Windows-Befehlszeile zu starten und einen String zur Ausführung zu übergeben. Dies ist eine bekannte Technik, die von Angreifern zur Kompromittierung von MS-SQL-Servern verwendet wird. Sie nutzen xp_cmdshell, um denselben Befehl wie im ersten Fall auszuführen und aktivieren zusätzlich die Ole Automation Procedures, um dem SQL Server die Interaktion mit anderen COM-Objekten zu ermöglichen.
5. Erstellen und Ausführen von OLE-Objekten
Schließlich erstellen die Angreifer ein OLE-Objekt namens wscript.shell mittels sp_oacreate und rufen dieses Objekt dann über sp_oamethod auf, um beliebige Befehle auf dem zugrunde liegenden Betriebssystem auszuführen.
Die Kombination aus den oben beschriebenen Exploit-Mustern und der Flexibilität von MS-SQL-Servern macht sie zu einem attraktiven Ziel für Hacker. Die Möglichkeit, erweiterte Rechte zu erlangen und beliebige Befehle auf dem Betriebssystem auszuführen, bietet Angreifern eine mächtige Plattform für weitergehende Angriffe und die Verbreitung von Malware. Organisationen, die MS-SQL-Server verwenden, sollten daher aufpassen, dass Ihre Datenbanken ausreichend sichere Passwörter haben und idealerweise hinter einem Schutz vor Brute-Force Rateangriffen versteckt sind.
Professionelle Hilfe erwünscht?
Sentiguard ist spezialisiert auf Notfallhilfe nach Cyberattacken, IT Sicherheitsbeauftragte und IT Sicherheitskonzepte nach BSI Standard. Haben Sie Fragen und wünschen Sie unverbindliche Beratung, dann melden Sie sich gerne bei uns: