Die Windows PowerShell, eine von Microsoft entwickelte Alternative zum Windows-Kommandozeilenprogramm und zum Windows Script Host, wird zunehmend als Einfallstor für Schadsoftware genutzt. Darauf macht Security-Software-Hersteller-Anbieter ESET aufmerksam. Die betreffenden Informationen möchte ich euch nicht vorenthalten.
Anzeige
Die Gründe für diesen Trend liegen einerseits im großen Funktionsumfang der PowerShell, andererseits in der engen Verknüpfung zum Windows-Betriebssystem. Denn die PowerShell ist seit Windows 7 Bestandteil des Betriebssystems. Allerdings ist die PowerShell-Konsole aus Sicherheitsgründen standardmäßig deaktiviert (siehe mein Artikel PowerShell-Skripte lassen sich nicht ausführen). Wer als Privatanwender die PowerShell nicht für die Scriptausführung aktiviert, hat also erst einmal nichts zu befürchten.
Ist die PowerShell aktiviert, kann allerdings auch Malware auf deren Funktionen zugreifen. Laut ESET fällt es Security-Programmen schwer, bösartige Software, die PowerShell ausnutzt, auch als solche zu identifizieren. In einem aktuellen Artikel auf seinem Security-Blog WeLiveSecurity zeigt ESET anhand einer PowerShell-Malware auf, welche Tücken und Sicherheitsrisiken von der PowerShell ausgehen. Hier die Ausführungen von ESET zum Thema.
Gefahr durch Dateitransfer über PowerShell
Mit Hilfe der Konsole lassen sich Dateien auf verschiedenen Wegen herunterladen. Die Befehle dazu lauten:
- DownloadFile
Erlaubt den Download von einer Internetadresse direkt auf den PC - DownloadString
Erlaubt den Download und die Ausführung eines PowerShell-Skripts - Invoke-WebRequest
Eine weitere Möglichkeit, eine Datei aus dem Internet herunterzuladen - Start-BitsTransfer
Erlaubt, mit Hilfe des intelligenten Hintergrundübertragungsdienstes von Windows (BITS) und dem Standard-Cmdlet Start-BitsTransfer einen Auftrag zu erstellen, um eine Datei herunterzuladen. Hier muss zuvor das Modul BitsTransfer mit dem Befehl Import-Module importiert werden
Die genannten Befehle werden von PowerShell-Schädlingen genutzt, um zusätzlichen Schadcode auf den Computer des Opfers zu laden. Die Methode DownloadString bietet darüber hinaus den Vorteil, dass ein PowerShell-Skript direkt nach dem Download im Speicher ausgeführt werden kann – ohne notwendige Kopie auf die Festplatte.
Anzeige
Malware, die (fast) ohne Dateien auskommt
Eine Schadsoftware, die sich die genannten Befehle der Windows PowerShell zu Nutze macht, ist Win32/Bedep. Nachdem sich das Opfer damit infiziert hat, erstellt Bedep einen Eintrag in der Windows-Registry, dadurch bleibt die Software auch nach einem System-Neustart aktiv.
Der Registrierungseintrag bewirkt, dass der Windows Explorer bei jedem Systemstart eine Instanz des Kommandozeilenprogrammes cmd.exe ausführt, die wiederum eine unsichtbare, nicht interaktive Instanz der PowerShell startet. Hierbei werden mehrere Befehle übergeben, um den Command & Control-Server (C&C Server) des Botnetzes zu kontaktieren.
Daran interessant ist, dass es sich bei den Daten um ein PowerShell-Skript handelt, das für den Nutzer unsichtbar einen x86-Shellcode ausführt. Dieser Shellcode ähnelt in seinem Aufbau stark den Shellcodes des quelloffenen Penetrationtesting-Werkzeugs Metasploit. Er besorgt sich zunächst die Adressen der benötigten Windows API-Funktionen, indem er den sogenannten Process Environment Block (PEB) durchläuft. Der PEB wird intern vom Betriebssystem verwendet und beinhaltet eine Reihe an Daten, die für den fehlerfreien Betrieb eines Prozesses notwendig sind, unter anderem auch eine doppelt verkettete Liste mit den Adressen der API-Funktionen der verwendeten Laufzeitbibliotheken (DLLs).
Nachdem sich der Shellcode die Adressen besorgt hat, reserviert er einen Speicherbereich und kontaktiert den C&C-Server. Als Antwort sendet der C&C-Server einen zweiten x86-Shellcode in den zuvor reservierten Speicherbereich zurück. Dieser zweite, zweistufige Shellcode beinhaltet auch die eigentliche Payload in Form einer mit PECompact komprimierten DLL-Datei. Zunächst entschlüsselt die erste Stufe die verschlüsselte zweite Stufe. Hierbei handelt es sich um eine einfache XOR-Verschlüsselung mit dem Schlüssel 0x21.
Die zweite Stufe besteht aus einem Loader und der eigentlichen Payload. Der Loader kümmert sich zunächst darum, dass die aktuellen Windows API-Funktionsadressen in den sogenannten Import Address Table (IAT) der Payload geschrieben werden. Diese Aufgabe übernimmt normalerweise der Windows-Loader vor dem Ausführen einer Datei, damit das eigentliche Programm die API-Funktionen während der Laufzeit aufrufen kann. Da die Payload aber direkt vom Speicher aus von einem Shellcode gestartet wird, muss sich der Shellcode selbst um diese Aufgabe kümmern.
Nachdem die aktuellen Funktionsadressen in den IAT der Payload geschrieben wurden, ruft der Loader die Startadresse der Payload auf. Anschließend führt das Betrugs-Modul im Speicher seine schädlichen Routinen aus.
ESETs Fazit: Noch nicht ausgereift, aber Vorbild für neue Malware
Die beschriebene Variante des Bots Win32/Bedep nutzt laut ESET eine interessante Technik, um mittels Windows PowerShell und einem einfachen Registry-Eintrag die dauerhafte Präsenz auf dem Computer eines Opfers zu bewerkstelligen. Die einzige Spur der Schadsoftware auf dem System ist dabei der Registry-Schlüssel, alle weiteren Teile werden unsichtbar im Arbeitsspeicher ausgeführt.
Win32/Bedep lief im ESET-Labor instabil und brachte gelegentlich das Windows-Testsystem zum Absturz. Richtig implementiert könnte diese Methode jedoch eine ernsthafte Bedrohung sein, auch wenn sie durch die Ausführung von cmd.exe und dem damit verbundenen Kommandozeilenfenster nach jedem Systemstart visuell recht auffällig ist – für erfahrene Nutzer eine deutliche, ebenso große Auffälligkeit wie der Aufbau einer Internetverbindung durch die PowerShell.
Abschließende Betrachtung
Um sich vor Malware wie Win32/Bedep bestmöglich zu schützen, rät ESET zum Einsatz einer aktuellen Security-Software, beispielsweise ESET Smart Security oder ESET NOD32 Antivirus. Hier bekomme ich persönlich aber heftige Bauchschmerzen, habe ich doch erst vor einigen Tagen im Artikel Google Projekt Zero: Antivirus-Software als Archillesferse die Produkte als "Archillesferse" für Systeme thematisiert. Und wer die Scriptausführung nicht aktiviert hat, braucht die Gefahrenstelle imho nicht zu fürchten. Ergänzung: Ein Cheat-Sheet für Metasploits findet sich übrigens hier.
Anzeige