MS-SQL: Betriebssystem Übernahme durch xp_cmdshell und CLR-Assembly

Table of Contents

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.

Related Posts

DNS-Tunneling: verdeckte Kommunikation und Tracking möglich

Eine Fallstudie von Unit42 zeigt zwei Anwendungen von DNS-Tunneling die über die bisher bekannten Verwendungen von DNS-Tunneling für Command-and-Control (C2) und virtuelle private Netzwerke (VPN) hinausgehen.

Read More

Bösartige Go-Binärdatei mittels Steganografie in PyPI verteilt

Am 10. Mai 2024 alarmierte die Risikodetektionsplattform von Phylum über eine verdächtige Veröffentlichung auf PyPI. Das Paket namens requests-darwin-lite erschien als ein Fork des beliebten requests-Pakets, jedoch mit einer kritischen Abweichung: einer bösartigen Go-Binärdatei, die in eine große Version des tatsächlichen requests-Seitenleisten-Logos (PNG) eingebettet war.

Read More

Kritische Sicherheitslücken in Arcserve Unified Data Protection

In der Software Arcserve Unified Data Protection (UDP) Version 9.2 wurden mehrere schwerwiegende Sicherheitslücken identifiziert, die ernsthafte Bedrohungen für die IT-Sicherheit darstellen.

Read More