Suchen

Sicherheitslücke in der Befehlszeile von Windows Hacking-Attacken über die PowerShell

Autor / Redakteur: Martin Zeitler* / Stephan Augsten

Die Microsoft PowerShell ist ein mächtiger Ersatz für die Windows-Eingabeaufforderung. Damit ist sie aber nicht nur bei Systemadministratoren beliebt. Auch Cyber-Kriminelle haben ihre Vorzüge für sich entdeckt und nutzen Schwachstellen aus.

Firmen zum Thema

Ohne Hintergrundwissen lässt sich kaum herausfinden, dass Angreifer ihre Befehle über die PowerShell absetzen.
Ohne Hintergrundwissen lässt sich kaum herausfinden, dass Angreifer ihre Befehle über die PowerShell absetzen.
(Bild: Joos/Microsoft)

Das vorinstallierte Windows-Programm PowerShell wird zunehmend von Cyber-Kriminellen genutzt, wie FireEye im verlinkten Bericht ausführlich aufzeigt. Bei gezielten Angriffen auf Netzwerke, beispielsweise von Unternehmen, nutzen Angreifer die Windows-Befehlszeilen-Shell, um Command-and-Control-Aktivitäten auszuführen.

Die PowerShell gehört seit Einführung von Microsoft Windows 7 SP 1 und Windows Server 2008 R2 zu den vorinstallierten Werkzeugen des Betriebssystems und erfreut sich großer Beliebtheit bei Programmierern. Das aktuelle Windows-Betriebssystem Windows 8.1 ist mit der mittlerweile vierten PowerShell-Generation ausgestattet.

Das Tool wird von einer großen Zahl von Systemadministratoren genutzt, am weitesten ist aktuell die Version PowerShell 2.0 verbreitet. Diese war die erste Variante des Programms, die von Microsoft vorinstalliert wurde. PowerShell kommt in Unternehmen aus den verschiedensten Branchen zum Einsatz.

Durch die rasante Verbreitung der Shell sind aber auch Cyberkriminelle auf das Tool aufmerksam geworden. Sie haben früh damit begonnen, sich damit auseinanderzusetzen, wie sie PowerShell für ihre Zwecke nutzen können. Es vereinfacht sowohl ihre Bemühungen, Daten zu erlangen, als auch die Anstrengungen, in dem betroffenen Netzwerk nicht aufzufallen.

Dabei bietet die PowerShell für die Kriminellen einen entscheidenden Vorteil: Die Nutzung des vorinstallierten Tools erspart die Implementierung externer Werkzeuge oder Malware. Außerdem sind diese Angriffstaktiken – einmal erlernt – dank der Vorinstallation auf unzähligen Rechnern anwendbar.

Mit der Zeit hat sich eine steigende Zahl an Netzwerk-Einbrüchen entwickelt, bei denen PowerShell genutzt wurde. Dabei hat die Verwendung der Shell nicht zum Ziel, in ein Netzwerk einzudringen. Es geht um die möglichst einfache Ausführung von Befehlen innerhalb eines Netzwerks, sobald der Angreifer eingedrungen ist.

Kriminelle suchen immer neue Wege ins System

Forscher von FireEye haben beobachtet, dass Cyberkriminelle häufig versuchen, unmittelbar oder kurze Zeit nach der erfolgreichen Kompromittierung Administratorenrechte auf einem oder mehreren Windows-Systemen zu erlangen. So ist in jüngerer Vergangenheit eine zunehmende Anzahl von zielgerichteten Angriffen beobachtet worden, in deren Zusammenhang auch PowerShell genutzt wurde.

Dabei kam das Befehlszeilen-Programm in der Phase nach der initialen Kompromittierung zum Einsatz. In der Regel konnten die grundlegenden Funktionen der Shell unentdeckt verwendet werden. Vorgehensweisen wie diese sind nur erste Versuche, mit denen Cyberkriminelle lernen, vorhandene Bestandteile des Betriebssystems auszunutzen, anstatt aufwändig externe Tools oder Malware einbringen zu müssen – die letztlich schneller erkannt werden würden.

Bei ihren Nachforschungen sind Mitarbeiter von FireEye auf verschiedene Möglichkeiten gestoßen, durch die PowerShell zur Gefahr für die Sicherheit von Unternehmensnetzwerken werden kann. Ebenso fanden sie Wege, die unautorisierte Verwendung als Administrator zu erkennen.

Administratoren müssen auf der Hut sein

So existieren beispielsweise unterschiedlichste Methoden, um PowerShell-Befehle nach einem Neustart des Computers ausführen zu lassen. Solche „Persistent PowerShell“-Methoden werden auch von Keyloggern eingesetzt und umfassen Autostart-Schlüssel in der Registry, geplante Tasks oder den Startup-Ordner eines Benutzers. Mit WMI-Events & PowerShell Profile existiert darüber hinaus eine Methode, die es Angreifern erlaubt, sehr versteckt zu operieren.

Das Ausführen von PowerShell-Skripts, -Befehlen oder -Remotebefehlen hinterlässt keine Spuren innerhalb der Registry. Die Möglichkeiten der Skriptausführung sind aber durch einen Schlüssel für die Execution-Policy begrenzt, welche standardgemäß auf „Restricted“ gesetzt ist. Cyberkriminelle können diese Registry-Konfiguration jedoch modifizieren, um sich die Arbeit zu erleichtern.

Wird der Standardwert geändert, beeinflusst dies jedoch das Modifikationsdatum – für Administratoren kann dies ein Hinweis auf einen Sicherheitsvorfall sein. Fortschrittliche Angreifer haben jedoch einen Weg gefunden, das Ändern des Wertes komplett zu umgehen, indem die Option „–ExecutionPolicy Bypass“ direkt in die Befehlszeile miteingegeben wird. Das Problem besteht also weiterhin.

Eine wenig komplizierte Möglichkeit, unautorisierte Verwendungen der PowerShell zu entdecken, ist die Überwachung mithilfe verschiedener Ereignisprotokolle, die durch Windows zur Verfügung stehen. In diesen können Start und Stopp von Befehlen, ausgeführte Befehle und Remotebefehle ausgelesen werden. Leider existieren viele dieser Protokolle erst ab der Version PowerShell 3.0. So auch die in dieser Hinsicht vielversprechende Modulprotokollierung.

Den Missbrauch von PowerShell kann man auch auf anderen Wegen bemerken. Wurde die Shell auf einem System gestartet, existiert eine dazugehörige Prefetch-Datei. Diese ist bei forensischen Ermittlungen hilfreich, da unter anderem Informationen zum Zeitpunkt der Ausführungen, deren Anzahl und betroffenen Dateien bereitgestellt werden. Auf diese Weise können auch bösartige PowerShell-Skripte nachgewiesen werden.

Verdeckte Angriffe mittels PowerShell speichern keinerlei Daten auf einer Festplatte. Im Arbeitsspeicher des Computers jedoch, so haben forensische Ermittler festgestellt, bleiben PowerShell-Objekte bis zum Ende der Ausführung eines Remotebefehls bestehen. Fragmente der Objekte sind dort noch bis zum nächsten Neustart des Rechners auffindbar.

Solche Remote-Befehle werden standardgemäß über HTTP oder HTTPS übertragen. Im Netzwerkverkehr kommen dabei standardmäßig die Ports 5985 und 5986 zum Einsatz. Anomalien im Netzwerkverkehr, bei denen Abweichungen vom Standard auf den beiden Ports registriert werden, können ebenfalls ein Hinweis auf einen möglichen unautorisierten Gebrauch der Shell sein.

Geschärftes Bewusstsein kann Schäden verhindern

Als vorinstalliertes Windows-Programm neuerer Windows-Generationen bietet Microsofts PowerShell eine Möglichkeit, mit der Cyberkriminelle mit gleicher Methodik und ohne zusätzliche Werkzeuge oder Malware eine große Zahl von Netzwerken angreifen können.

Systemadministratoren müssen sich der Gefahren des Missbrauchs von PowerShell bewusst sein und können schwerwiegende Folgen für ihr Unternehmen durch umfassenden Schutz verhindern. Ein guter Anfang kann es sein, auf bestimmte Signale – ob modifizierte Registry oder unerwartete Prefetch-Dateien – zu achten.

Martin Zeitler
Martin Zeitler
(Bild: FireEye)
* Martin Zeitler ist Senior Manager im Bereich „Systems Engineering – Central Europe“ bei FireEye.

(ID:43069119)