Skip to content
PowerShell Operational

PowerShell Event-ID 4104: Skriptblockprotokollierung

Skriptblocktext wird erstellt (Creating Scriptblock text)PowerShell-Event-ID 4104 protokolliert den Text ausgeführter Skriptblöcke nach der Dekodierung — der beste Nachweis dessen, was PowerShell ausführte.
4104
Event-ID
4104
Protokoll
Microsoft-Windows-PowerShell/Operational
Anbieter
Microsoft-Windows-PowerShell
Datei
Microsoft-Windows-PowerShell%4Operational.evtx
Kategorie
PowerShell
Standardprotokollierung
Muss konfiguriert werden

Was Ereignis 4104 bedeutet

Event 4104 wird von der PowerShell-Engine geschrieben, wenn sie einen Skriptblock kompiliert. Das Feld ScriptBlockText enthält den Code so, wie PowerShell ihn sieht: an der Eingabeaufforderung eingegebene Befehle, ganze Skripte, Funktionen und — entscheidend — Code, der Base64-kodiert, heruntergeladen oder zur Laufzeit zusammengesetzt wurde, denn die Protokollierung erfolgt, nachdem diese Schicht entfernt ist.

Große Skripte werden auf mehrere Events mit gemeinsamer ScriptBlockId aufgeteilt; MessageNumber und MessageTotal zeigen, wie sie wieder zusammenzusetzen sind. Das Feld Path ist befüllt, wenn der Block aus einer Skriptdatei stammt.

Auch ganz ohne Richtlinie protokollieren PowerShell 5 und neuer Skriptblöcke mit bekannten verdächtigen Schlüsselwörtern auf der Stufe Warnung. Die vollständige Protokollierung jedes Blocks erfordert die Richtlinie für Skriptblockprotokollierung — sie macht 4104 zum Rückgrat von PowerShell-Untersuchungen.

Wann es protokolliert wird

Überwachungsrichtlinie / Konfiguration

Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell > Turn on PowerShell Script Block Logging (Protokollierung von PowerShell-Skriptblöcken aktivieren) oder per Registry HKLM\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging\EnableScriptBlockLogging = 1.

Ohne die Richtlinie protokolliert Windows PowerShell 5.x als verdächtig eingestufte Blöcke dennoch als 4104 der Stufe Warnung. PowerShell 7 schreibt in den Kanal PowerShellCore/Operational und hat eigene Richtlinieneinstellungen.

Wichtige Felder

FeldAussage
ScriptBlockTextDer Code des Skriptblocks, nachdem Verschleierungsschichten wie -EncodedCommand entfernt wurden.
ScriptBlockIdGUID, die alle Teile eines Skriptblocks teilen; danach gruppieren, um lange Skripte wieder zusammenzusetzen.
MessageNumberTeilnummer dieses Events bei einem aufgeteilten Skriptblock.
MessageTotalGesamtzahl der Teile des Skriptblocks.
PathSkriptdatei, aus der der Block stammt; leer bei interaktivem oder In-Memory-Code.

Häufige legitime Ursachen

  • Administrative Skripte, Konfigurationsmanagement (SCCM, Intune, DSC) und Monitoring-Agenten.
  • PowerShell-eigene Module und Profilskripte, die beim Start geladen werden.
  • Software-Installer und IT-Automatisierung, die im Hintergrund PowerShell nutzen.

Welche Angreiferaktivität es erzeugt

  • Download-Cradles wie IEX (New-Object Net.WebClient).DownloadString(...) und Invoke-WebRequest, die Payloads nachladen.
  • Kodierte oder verschleierte Befehle, die hier in lesbarer Form wiederhergestellt werden.
  • Im Speicher geladene offensive Frameworks und Tools (Credential Dumping, AD-Aufklärung, Versuche zur AMSI-Umgehung).
  • Befehle zur Manipulation der Abwehr wie Set-MpPreference -DisableRealtimeMonitoring.

Tipps für die Untersuchung

  • Zuerst nach Level 3 (Warnung) filtern — das sind die Blöcke, die PowerShell selbst als verdächtig markiert hat.
  • Aufgeteilte Blöcke vor dem Lesen per ScriptBlockId in der Reihenfolge von MessageNumber zusammensetzen.
  • ScriptBlockText nach Netzwerkindikatoren (URLs, IPs), FromBase64String, Invoke-Expression, -bxor, Reflection.Assembly und AMSI-bezogenen Zeichenfolgen durchsuchen.
  • Den Prozess, der den Block ausgeführt hat, über Sysmon 1 / Security 4688 (Befehlszeile von powershell.exe) und Event 400 des klassischen Protokolls (HostApplication) finden.

MITRE-ATT&CK-Techniken

TechnikTaktiken
T1059.001 Command and Scripting Interpreter: PowerShellExecution
T1027.010 Obfuscated Files or Information: Command ObfuscationStealth
T1140 Deobfuscate/Decode Files or InformationStealth
T1105 Ingress Tool TransferCommand and Control

MITRE ATT&CK v19.2. Technik- und Taktiknamen wie von MITRE veröffentlicht (Englisch).

Sigma-Regeln für dieses Ereignis

162 SigmaHQ-Erkennungsregeln (Release r2026-07-01) zielen auf dieses Ereignis. Angezeigt werden die 25 Regeln mit dem höchsten Schweregrad.

  • Kritisch · 2
  • Hoch · 51
  • Mittel · 89
  • Niedrig · 20

Regeln der genannten Autoren, von SigmaHQ unter der Detection Rule License (DRL) 1.1 veröffentlicht.

Diese Regeln auf Ihre Logs anwenden

Ziehen Sie eine .evtx-Datei in den Viewer: Alle 2.395 mitgelieferten SigmaHQ-Regeln laufen lokal im Browser. Nichts wird hochgeladen.

Ausführlicher LeitfadenEvent ID 4104: PowerShell-Scriptblock-Logging erklärt

Quellen und weiterführende Links