- Event-ID
4103- Log-Kanal
- PowerShell
- Quelle
Microsoft-Windows-PowerShell- Angriffsrelevanz
- mittel
- Taktik
- Defense Evasion, Discovery, Execution
Event 4103 („Executing Pipeline“) entsteht durch die PowerShell-Modulprotokollierung und landet im Log Microsoft-Windows-PowerShell/Operational. Während 4104 den Quelltext eines Skriptblocks zeigt, protokolliert 4103 die tatsächliche Ausführung: welches Cmdlet oder welche Funktion aufgerufen wurde und mit welchen Parameterwerten. Das ist besonders dann hilfreich, wenn Werte erst zur Laufzeit entstehen, etwa aus Variablen oder dekodierten Strings.
Die wichtigsten Felder
ContextInfo: Kontext der Ausführung, darunter Host-Anwendung mit Kommandozeile, Benutzer, Befehlsname, Skriptname und Sitzungs-ID.Payload: die Aufrufe im FormatCommandInvocation(Get-ADUser): "Get-ADUser"gefolgt vonParameterBinding(Get-ADUser): name="Filter"; value="*".UserData: zusätzliche Daten, häufig leer.
Worauf du bei der Detection achtest
- Defender abschalten:
Set-MpPreferencemitDisableRealtimeMonitoringoder neuen Ausschlüssen überExclusionPath. - AD-Aufklärung: massenhafte Aufrufe von
Get-ADUser,Get-ADComputeroderGet-ADGroupMembermit Filter*, ebenso PowerView-Funktionen wieGet-DomainUseroderFind-LocalAdminAccess. - Download und Ausführung:
Invoke-WebRequestoderStart-BitsTransfermit externen URLs, gefolgt vonInvoke-Expression. - Ungewöhnliche Host-Anwendung: in
ContextInfosteht als Host nichtpowershell.exe, sondern ein anderer Prozess. Das deutet auf „unmanaged PowerShell“ hin, also PowerShell, die in fremde Prozesse geladen wird. - Lokale Kontenverwaltung:
New-LocalUserundAdd-LocalGroupMember, ergänzend zu 4720 und 4732.
Typische False Positives
Module Logging erzeugt deutlich mehr Events als Script Block Logging, weil jeder einzelne Pipeline-Aufruf protokolliert wird. Konfigurationsmanagement, Monitoring-Agents und Admin-Skripte dominieren das Volumen. Filtere bekannte Skriptpfade und Dienstkonten und plane ausreichend Log-Größe ein.
Voraussetzung
Aktiviere die Gruppenrichtlinie Modulprotokollierung aktivieren unter Administrative Vorlagen → Windows-Komponenten → Windows PowerShell und trage als Modulnamen * ein, damit alle Module erfasst werden. Wie bei 4104 gilt: PowerShell 2.0 unterstützt diese Protokollierung nicht. Einen Wechsel auf die alte Version erkennst du in Event 400.
Sigma-Regel (Beispiel)
title: Defender-Schutz per PowerShell abgeschaltet
status: experimental
description: Erkennt Set-MpPreference-Aufrufe, die Echtzeitschutz oder andere Defender-Funktionen deaktivieren oder Ausschluesse setzen.
references:
- https://attack.mitre.org/techniques/T1562/001/
author: blue-team.net
tags:
- attack.defense-evasion
- attack.t1562.001
logsource:
product: windows
category: ps_module
definition: Module Logging muss aktiviert sein
detection:
selection_cmd:
Payload|contains: 'Set-MpPreference'
selection_param:
Payload|contains:
- 'DisableRealtimeMonitoring'
- 'DisableBehaviorMonitoring'
- 'DisableIOAVProtection'
- 'ExclusionPath'
- 'ExclusionProcess'
condition: selection_cmd and selection_param
falsepositives:
- Admin-Skripte, die Ausschluesse fuer Fachanwendungen setzen
level: highBeispielregel als Ausgangspunkt. Vor dem produktiven Einsatz an die eigene Umgebung, Log-Quellen und Ausnahmen anpassen.