Sysmon-Event-ID 1 erklärt: Prozesserstellung für die DFIR-Triage
Sysmons Event 1 ist der reichhaltigste Prozesserstellungs-Datensatz, den Windows produzieren kann. Hier steht, was drin ist und wie man ihn schnell triagiert.
Sysmon ist ein kostenloses Microsoft-Tool, das das Windows-Event-Log um Telemetrie ergänzt, die das Base-OS nicht in nutzbarer Form erfasst. Sein Event-ID 1 — ProcessCreate — ist der meistzitierte Sysmon-Datensatz in IR-Playbooks. Wenn du nur einen einzigen Sysmon-Kanal aus einem Host extrahierst, dann diesen.
Wo es lebt und was es erfasst
Sysmon schreibt auf den Kanal Microsoft-Windows-Sysmon/Operational (auf Disk: Microsoft-Windows-Sysmon%4Operational.evtx). Ein ProcessCreate-Datensatz enthält:
<Data Name="UtcTime">2026-05-17 14:02:11.123</Data>
<Data Name="ProcessGuid">{...}</Data>
<Data Name="ProcessId">7842</Data>
<Data Name="Image">C:\Windows\System32\powershell.exe</Data>
<Data Name="CommandLine">powershell -enc SQBFAFgA...</Data>
<Data Name="CurrentDirectory">C:\Users\alice\</Data>
<Data Name="User">CORP\alice</Data>
<Data Name="LogonId">0x3e7</Data>
<Data Name="Hashes">SHA256=...</Data>
<Data Name="ParentProcessGuid">{...}</Data>
<Data Name="ParentImage">C:\Program Files\Microsoft Office\winword.exe</Data>
<Data Name="ParentCommandLine">"winword.exe" /n /dde</Data>
Die Felder, die Untersuchungen tragen: CommandLine (die volle argv, nicht nur die Binary), Image + Hashes (die exakte Binary, die lief, Hash in VT/Hybrid Analysis nutzbar) und das Parent*-Set (der aufrufende Prozess — kritisch für Makro- und LOLBin-Ketten).
Triage in drei Pivots
Wenn du eine Triage-Sysmon-Datei hast, decken drei Queries die meisten Fälle ab:
- Verdächtige Parents: filtere auf
ParentImage, das aufwinword.exe,excel.exe,outlook.exe,mshta.exeoder einen Browser endet, mitImageals Shell (cmd.exe,powershell.exe,pwsh.exe,wscript.exe,cscript.exe,rundll32.exe). Eine Dokumenten-App, die eine Shell spawnt, ist fast immer bösartig. - Encoded PowerShell:
Imageendet aufpowershell.exeundCommandLineenthält-enc,-encodedcommandoderFromBase64String. Dekodiere die Payload, schau, was sie tut — und quergleiche den PowerShell-4104-Scriptblock-Datensatz auf demselben Host, um zu sehen, was tatsächlich lief. - LOLBins aus ungewöhnlichen Orten: signierte Microsoft-Binaries (
certutil,regsvr32,mshta,installutil,bitsadmin), die ausC:\Users\,%TEMP%oderC:\ProgramData\laufen.
Warum die Parent-Kette zählt
Ein einzelner ProcessCreate ist ein Snapshot; die Kette ist die Geschichte. ProcessGuid und ParentProcessGuid sind GUIDs, die Sysmon vergibt, um Abstammung über Prozessende hinweg zu verfolgen — sie sind zuverlässiger als PIDs, weil PIDs wiederverwendet werden. Rekonstruiere den Baum (jedes ParentProcessGuid eines Datensatzes ist das ProcessGuid eines anderen) und die Kill Chain wird offensichtlich: Outlook → Word → PowerShell → cmd → certutil → mshta.
Beispiel-Sigma-Regel — Office-App spawnt Shell
title: Office Application Spawning Shell or Scripting Host (Sysmon)
id: 7a4c1f2b-6e3d-4a5f-9c2a-1b3d4e5f6a7c
status: stable
description: A Microsoft Office or document-rendering process spawned cmd, powershell, wscript, cscript, mshta, rundll32 or regsvr32.
references:
- https://attack.mitre.org/techniques/T1566/001/
- https://attack.mitre.org/techniques/T1059/
logsource:
product: windows
service: sysmon
category: process_creation
detection:
selection:
EventID: 1
ParentImage|endswith:
- '\winword.exe'
- '\excel.exe'
- '\powerpnt.exe'
- '\outlook.exe'
- '\mshta.exe'
- '\acrord32.exe'
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
condition: selection
falsepositives:
- Office add-ins running approved scripts
- Document automation pipelines
level: high
tags:
- attack.execution
- attack.t1059
- attack.initial_access
- attack.t1566.001
Beispiel-KQL — encodierte PowerShell mit Parent-Kontext
DeviceProcessEvents
| where InitiatingProcessFileName =~ "powershell.exe" or FileName =~ "powershell.exe"
| where ProcessCommandLine matches regex @"(?i)\b-e(?:nc|ncodedcommand)?\b\s"
or ProcessCommandLine contains "FromBase64String"
| project Timestamp, DeviceName, AccountName, ProcessCommandLine,
InitiatingProcessFileName, InitiatingProcessCommandLine, SHA256
| order by Timestamp desc
InitiatingProcessCommandLine ist das Defender-XDR-Äquivalent zu Sysmons ParentCommandLine — die 4688 nicht liefert.
Beispiel-Splunk — LOLBins aus user-schreibbaren Pfaden
sourcetype=xmlwineventlog source="*Sysmon/Operational"
EventCode=1
( Image="*\\certutil.exe" OR Image="*\\regsvr32.exe" OR Image="*\\mshta.exe"
OR Image="*\\bitsadmin.exe" OR Image="*\\installutil.exe" OR Image="*\\msbuild.exe" )
( ParentImage="*\\Users\\*" OR CommandLine="*\\Users\\*"
OR CommandLine="*%TEMP%*" OR CommandLine="*ProgramData*" )
| table _time Computer User ParentImage Image CommandLine Hashes
ATT&CK-Mapping
- T1059 — Command and Scripting Interpreter und Subtechniken
.001PowerShell,.003Windows Command Shell,.005Visual Basic,.007JavaScript. - T1566.001 — Phishing: Spearphishing Attachment: Office-→-Shell-Ketten.
- T1218 — System Binary Proxy Execution und Subtechniken
.005Mshta,.010Regsvr32,.011Rundll32,.007Msiexec. - T1036.003 — Masquerading: Rename System Utilities:
OriginalFileName≠ Dateiname vonImage. - T1055 — Process Injection: Sysmons
IntegrityLevelund Parent-Kette helfen, anomale Parents für Prozesse wielsass.exeoderservices.exezu erkennen.
False Positives, die wie Angriffe aussehen
- Software-Update-Agenten spawnen routinemäßig Shells unter SYSTEM (Chocolatey, WinGet, Vendor-MSI). Markiere bekannte Auto-Update-Hosts.
- Vulnerability-Scanner imitieren während authentifizierter Scans offensive Prozessbäume. Markiere Scanner-IPs.
- Citrix / RDS Multi-Session-Hosts erzeugen dichten Process-Create-Traffic, der mit Angreifermustern überlappt. Filtere nach Source Range.
- Defender- / EDR-Scans laufen signierte Microsoft-Binaries aus ungewöhnlichen Pfaden während On-Demand-Scans.
Coverage-Vorbehalte
Sysmon erfasst nur, was seine Config ihm sagt. Die Default-Config protokolliert nichts; die kanonischen Referenzen sind SwiftOnSecurity's sysmon-config und Olaf Hartongs sysmon-modular. Ohne eine echte Config im Einsatz sind deine Event-1-Datensätze spärlich, das CommandLine-Feld kann redacted sein und Hashes kann fehlen. Lies die Sysmon-Config des Hosts neben seinen Logs.