
Powershell ist ein fester Bestandteil moderner Windows-Systeme und bietet durch .NET-Anbindung mächtige Möglichkeiten zur Automatisierung. Diese Eigenschaften machen es auch für Angreifer attraktiv:
Living off the Land-Taktiken nutzen Powershell, um Angriffe unauffällig und ohne zusätzliche Tools durchzuführen.
Powershell wird häufig verwendet, um Dateien oder Skripte aus dem Internet zu laden z. B. zur:
Einige Gründe für die proaktive Suche nach Powershell-Downloads:
Angreifer nutzen verschiedene Techniken, um Inhalte via Powershell herunterzuladen.
Dieses Cmdlet, verfügbar ab Powershell Version 3, fungiert ähnlich wie wget oder curl unter Linux. Es sendet HTTP-, HTTPS- oder FTP-Anfragen an eine angegebene URL und kann die Antwort verarbeiten oder, mithilfe des Parameters -OutFile, direkt in eine Datei speichern. Es unterstützt komplexere Webinteraktionen wie Authentifizierung und benutzerdefinierte Header.
Legitim für Web-Scraping, Herunterladen von Ressourcen oder Interaktion mit APIs. Wird von Angreifern häufig zum Herunterladen von Payloads verwendet, oft in Kombination mit -OutFile, um die Datei auf der Festplatte zu speichern, oder die Ausgabe wird an Invoke-Expression (IEX) weitergeleitet, um eine dateilose Ausführung zu erreichen. Invoke-WebRequest kann relativ langsam sein und hat eine potenzielle Abhängigkeit von Internet Explorer-Komponenten.
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/ByteRay-Labs/NG-SIEM/refs/heads/main/README.md" -OutFile "README.md"Nutzt die .NET Framework-Klasse System.Net.WebClient. Bietet Methoden wie DownloadFile, die eine Datei von einer URL herunterlädt und auf der Festplatte speichert, und DownloadString, die den Inhalt einer Ressource direkt als Zeichenkette zurückgibt. DownloadString wird häufig in Kombination mit Invoke- Expression für die dateilose Ausführung von Skripten verwendet.
Legitim für programmgesteuerte Dateidownloads in Skripten. Wird von Angreifern intensiv missbraucht, sowohl zum Herunterladen ausführbarer Payloads (DownloadFile) als auch zur dateilosen Ausführung (DownloadString + IEX). Ist mit Server Core kompatibel.
(New-Object System.Net.WebClient).DownloadFile("https://raw.githubusercontent.com/ByteRay-Labs/NG-SIEM/refs/heads/main/README.md", "$PWD\README.md")Verwendet den Background Intelligent Transfer Service (BITS), einen Windows-Dienst, der für asynchrone, gedrosselte und wiederaufnehmbare Dateiübertragungen konzipiert ist. Erfordert, dass der BITS-Dienst ausgeführt wird und das BitsTransfer-Modul importiert ist. Gut geeignet für große Dateien oder Hintergrundübertragungen.
Legitim für große Dateiübertragungen und Updates. Wird seltener für den initialen Zugriff durch Malware verwendet als IWR/WebClient, kann aber von Angreifern genutzt werden, um größere Werkzeuge, Payloads oder gestohlene Daten zu übertragen. Seine asynchrone Natur könnte zur Tarnung genutzt werden. Erfordert den BITS-Dienst; kann fehlschlagen, wenn der Dienst deaktiviert ist oder der Benutzer (abhängig von der Konfiguration) nicht angemeldet ist.
1#event_simpleName=CommandHistory
2| CommandHistory=/Invoke\-WebRequest|Net\.WebClient|Start\-BitsTransfer/i
3| regex("(?<URL>https?://[^'\"]+)", field=CommandHistory)
4| replace("https://", with="", field=URL, as=ShortURL)
5| replace("\/.*", with="", field=ShortURL, as=otx_lookup)
6| UrlBase:="https://otx.alienvault.com/indicator/domain/"
7| format(format="[Alienvault](%s%s)", field=[UrlBase, otx_lookup], as=DomainLookup)
8| table([DomainLookup, URL, ComputerName, UserName, CommandHistory], limit=20000)
Vom Exploit bis zur Defense: Echte Security-Insights aus unserem SOC und Research-Lab