Windows PowerShell wird zunehmend zum Einfallstor für Malware

SicherheitSicherheitsmanagement
Eset (Grafik: Eset)

Das befürchtet der Sicherheitsanbieter ESET. Dessen Experten beschreiben exemplarisch die Funktionsweise des Trojaners Win32/Bedep, der sich mittels der cmd.exe-Alternative und einem einfachen Registry-Eintrag dauerhaft auf einem Rechner einnisten kann. Die einzige Spur der PowerShell-Malware auf dem System ist der Registry-Schlüssel, alle weiteren Teile werden unsichtbar im RAM ausgeführt.

Eset hat einen neuen Malware-Trend ausgemacht, wonach die Windows PowerShell zunehmend von Kriminellen als Einfallstor für Schadsoftware genutzt wird. Dem slowakischen Sicherheitsanbieter zufolge liegt das zum einen an dem großen Funktionsumfang der cmd.exe-Alternative und zum anderen an der engen Verknüpfung zum Microsoft-Betriebssystem.

Green_Code_Eset (Bild: Eset)

Das soll es der auf den Rechnern der Opfer installierten Sicherheitssoftware erschweren, Schadprogramme als solche zu identifizieren. Auf die durch die PowerShell entstehenden Tücken und Sicherheitsrisiken geht Eset auch in einem Blogbeitrag ein und zeigt diese dort anhand der Funktionsweise einer exemplarischen PowerShell-Malware auf.

Neben einer grafischen Entwicklungsumgebung bietet das seit Windows 7 in allen Betriebssystemversionen vorinstallierte Administrationswerkzeug auch eine eigene Skript-Sprache namens “PowerShell Scripting Language”. Zudem lassen sich mithilfe der Konsole auf mehrren Wegen und mit unterschiedlichen Befehlen Dateien herunterladen. Während etwa das Kommando DownloadFile den direkten Download einer Datei auf den PC ermöglicht, erlaubt DownloadString das Herunterladen und Ausführen eines PowerShell-Skripts.

Diese und andere PowerShell-Befehle würden von Kiminellen im Allgemeinen genutzt, um zusätzlichen Schadcode auf den Rechner eines Opfers zu laden. Der Befehl DownloadString versetze sie sogar in die Lage, ein PowerShell-Skript direkt nach dem Herunterladen im Speicher auszuführen – und das ohne Kopie auf der Festplatte. Somit kann sich die auf den Computer gespielte Schadsoftware den Kontrollen durch die Sicherheitssoftware entziehen.

Ein Schädling, der sich beispielsweise die Befehle der Windows PowerShell zu Nutze macht, ist laut Eset der Trojaner 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 Registry-Eintrag bewirkt überdies, dass der Windows Explorer bei jedem Systemstart eine Instanz des Kommandozeilenprogramms cmd.exe ausführt, die wiederum eine unsichtbare, nicht interaktive Instanz der PowerShell startet. Hierbei werden mehrere Befehle übergeben, um den Command-and-Control-Server eines dahinter stehenden Botnetzes zu kontaktieren.

Bei den zum Kommandoserver übermittelten Daten handelt es sich Eset zufolge um ein PowerShell-Skript, das für den Nutzer unsichtbar einen x86-Shellcode ausführt. Dieser soll in seinem Aufbau stark den Shellcodes des quelloffenen Penetration-Testing-Tools Metasploit ähneln. Der x86-Shellcode besorgt sich zunächst die Adressen der in den entsprechenden Laufzeitbibliotheken verwendeten Windows-API-Funktionen, indem er den sogenannten Process Environment Block (PEB) durchläuft. Der wird wiederum intern vom Betriebssystem eingesetzt und umfasst zahlreiche Daten, die für den fehlerfreien Betrieb eines Prozesses notwendig sind. Dazu zählt auch eine doppelt verkettete Liste mit eben jenen Adressen der erforderlichen API-Funktionen.

Nachdem sich der Shellcode die Adressen besorgt hat, reserviert er einen Speicherbereich und kontaktiert den C&C-Server. Als Antwort sendet der einen x86-Shellcode in den zuvor reservierten Speicherbereich zurück. Dieser zweite, zweistufige Shellcode beinhaltet auch die eigentliche Payload – also die unmittelbar schädigend wirkenden Funktionen der Malware – in Form einer mittels des Kompressionstools PECompact verkleinerten DLL-Datei. Zunächst muss die zweite XOR-verschlüsselte Shellcode-Stufe allerdings noch durch die erste Stufe entschlüsselt werden.

Registry_Bedep (Screenshot: Eset)
Der rot markierte Registry-Eintrag wird durch den Trojaner Win32/Bedep erstellt, um bei einem Neustart des Systems dauerhaft präsent zu bleiben (Screenshot: Eset).

Die zweite Shellcode-Stufe besteht neben der eigentlichen Payload noch aus einem zugehörigen Loader. Der kümmert sich zunächst darum, dass die aktuellen Windows-API-Funktionsadressen in die sogenannten Import Address Table (IAT) des Payloads geschrieben werden. Diese Aufgabe übernimmt vor dem Ausführen einer Datei für gewöhnlich der Windows-Loader, damit das eigentliche Programm die API-Funktionen während der Laufzeit aufrufen kann. Da der Payload aber direkt vom Speicher aus von einem Shellcode gestartet wird, muss der sich selbst um diese Aufgabe kümmern.

Nachdem die aktuellen Funktionsadressen in den IAT der Payload geschrieben wurden, ruft der Loader deren Startadresse auf. Anschließend führt das Betrugs-Modul im Speicher seine schädlichen Routinen aus. Win32/Bedep lief im Eset-Labor nach Angaben des Unternehmens instabil und brachte dessen Windows-Testsystem zum Absturz. Richtig implementiert könne 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 sei. Für erfahrene Nutzer sei zudem der Aufbau einer Internetverbindung durch die PowerShell unübersehbar. Um sich vor Win32/Bedep und ähnlicher Malware bestmöglich zu schützen, rät Eset Windows-Anwendern wenig überraschend zum Einsatz einer aktuellen Security-Software.

Zu dem Schluss, dass die Windows PowerShell immer häufiger das Ziel von Malware-Attacken ist, kam im August 2014 auch schon der Sicherheitsdienstleister FireEye. Dessen Bericht zufolge nutzen Cyberkriminelle Schwachstellen in dem Administrationswerkzeug aus, um Command-and-Control-Aktivitäten in kompromittierten Netzwerken auszuführen. Das immer häufiger auch in Unternehmen verwendete Tool könne selbst dann missbraucht werden, wenn es gar nicht aktiv genutzt werde.

Tipp: Kennen Sie die Geschichte der Computerviren? Überprüfen Sie Ihr Wissen – mit 15 Fragen auf silicon.de

Anklicken um die Biografie des Autors zu lesen  Anklicken um die Biografie des Autors zu verbergen