5 minutes
Windows Log Analysis Cheat Sheet (+ Chainsaw)
This Windows Event Logs cheat sheet is designed for digital forensics, threat hunting, and security event analysis. It summarises critical Windows event IDs, logon types, and log source locations (Security.evtx, System.evtx, PowerShell logs, and more). Perfect for SOC analysts, incident responders, and malware investigators, this guide helps identify suspicious activity and map attack chains using native event logs.
Important Event IDs by Log Source
Security.evtx
C:\Windows\System32\winevt\Logs\Security.evtx
4624 # Account successfully logged on (watch types 2, 3, 10, 11)
4625 # Account failed to log on (watch for error codes and type)
4634 # Account successfully logged off
4648 # Logon attempt using explicit credentials (pass-the-hash indicator)
4672 # Special privileges assigned to new logon (admin logon)
4688 # A new process has been created (monitor parent-child chains)
4697 # Service installation detected
4698 # Scheduled task creation
4699 # Scheduled task deletion
4700 # Scheduled task enabled
4701 # Scheduled task disabled
4702 # Scheduled task updated/modified
4720 # A user account was created
4722 # A user account was enabled
4723 # A user attempted to change password
4724 # A user reset another user’s password
4732 # Account added to a group
4733 # Account removed from a group
4736 # Account deleted
4738 # User account changed
4740 # A user account was locked out
4767 # A user account was unlocked
4768 # Kerberos authentication ticket (TGT) requested
4769 # Kerberos service ticket requested (TGS)
4770 # Kerberos service ticket renewed
4771 # Kerberos pre-authentication failed (watch for 0x18, 0x10, 0x17)
4776 # DC attempted to validate credentials
4778 # RDP session reconnected
4779 # RDP session disconnected
1102 # Audit log cleared (potential anti-forensic)
4614 # Security system extension loaded (can indicate new security packages)
Logon Type Breakdown (4624 / 4625)
Type | Description |
---|---|
0 | System (used internally by the OS) |
2 | Interactive (user at keyboard) |
3 | Network (SMB, RDP with NLA) |
4 | Batch (Scheduled Task) |
5 | Service (Service account logon) |
7 | Unlock (user unlocked workstation) |
8 | NetworkCleartext (credentials sent in cleartext) |
9 | NewCredentials (RunAs /netonly ) |
10 | RemoteInteractive (Terminal Services/RDP) |
11 | CachedInteractive (domain unreachable, cached creds) |
12 | CachedRemoteInteractive (auditing remote cached login) |
13 | CachedUnlock (unlock using cached credentials) |
System.evtx
C:\Windows\System32\winevt\Logs\System.evtx
6005 # Event log service started (system boot)
6006 # Event log service stopped (clean shutdown)
6008 # Unexpected shutdown
7036 # Service state change
7040 # Service start type change (e.g., auto → manual)
7045 # New service installed
Application.evtx
1000 # Application error (useful for malware crashing)
1026 # .NET Runtime error (malicious .NET payloads may trigger this)
App-specific # Look for entries from security tools (AV, EDR, backup failures, etc.)
PowerShell Operational
C:\Windows\System32\winevt\Logs\Microsoft-Windows-PowerShell%4Operational.evtx
4100 # PowerShell engine state change
4103 # Module logging (e.g., internal commands, pipelines)
4104 # Script block logging (critical for threat hunting)
4105 # Script block rejected by policy
4106 # Script block execution started
Windows Defender Operational
C:\Windows\System32\winevt\Logs\Microsoft-Windows-Windows Defender%4Operational.evtx
1116 # Malware detected
1117 # Malware action taken (e.g. removed, quarantined)
1118 # Malware remediation failed
5001 # Real-time protection disabled
5004 # Real-time protection restored
5007 # Configuration change (may indicate tampering)
1006 # Scan started
1007 # Scan completed
Sysmon.evtx
C:\Windows\System32\winevt\Logs\Sysmon.evtx
1 # Process creation (command-line, parent, hashes) — must-have
3 # Network connection (IP, port, process) — beaconing, C2
7 # Image loaded (DLLs, LOLBins) — great for lateral movement/abuse
10 # Process access (injection, token theft) — attack surface
11 # File created (sensitive paths) — payload delivery
12 # Registry object created/deleted — persistence, tampering
13 # Registry value set — auto-run keys, config mods
22 # DNS query (process + domain) — domain-based IOCs
25 # Process tampering (hollowing, manipulation) — evasive malware
Chainsaw Usage
Basic Hunt
chainsaw hunt --directory ./evtx --rules ./sigma
Search by Event ID
# Chainsaw v1
chainsaw search log.evtx -e 4104
# Chainsaw v2
chainsaw search log.evtx -t "Event.System.EventID: =4104"
Search by String Match
# Chainsaw v1
chainsaw search log.evtx -s "IEX"
# Chainsaw v2
chainsaw search log.evtx -e "IEX"
Timestamp Filtering
# Chainsaw v1 – string-based date filtering
chainsaw search ./ -s "2025-06-29"
# Chainsaw v2 – structured timestamp filtering
chainsaw search ./ \
--timestamp Event.System.TimeCreated_attributes.SystemTime \
--from 2022-06-21T00:00:00 \
--to 2025-06-29T00:00:00
Useful Chainsaw Searches
Security.evtx
# 4624 - Logons
chainsaw search log.evtx -e 4624 -i -s "JoeBloggs" | grep -i "ipaddress" | sort | uniq -c | sort -nr # Count all ip addresses obervered for a particular user
chainsaw search log.evtx -e 4624 -i -s "username_or_ip" | grep -iE "ipaddress|targetusername|logontype|systemtime" # Show users or ip logon time and type Hint: remove "-i -s "Username/IP"" to show all users
# 4625 - Failed Logons
chainsaw search log.evtx -e 4625 | grep -i targetusername | sort | uniq -c | sort -nr # Count Failed Logon for each user, useful for brute force
chainsaw search log.evtx -e 4625 -i -s "JoeBloggs" | grep -i systemtime # Display time for each logon for specific users
System.evtx
# 7045 - Service Creation
chainsaw search log.evtx -e 7045 -i -s "service_name" | grep -iE "ImagePath|ServiceName|SystemTime" # Show Service Creation Details
Powershell Operational
# 4014 - Powershell Script Blocks
chainsaw search log.evtx -e 4104 | grep -i "scriptblocktext" # Show just the clear text script block
chainsaw search log.evtx -e 4104 | grep -i "IEX" | sort | uniq -c # Script blocks containing text "IEX" <- Change for desired string/command
- Look for
4104
events with:IEX
,Invoke-WebRequest
,New-Object
- Obfuscated/encoded strings (
FromBase64String
)
- Check for AMSI bypass or download cradle patterns
- Correlate with
4688
for execution chain context
Useful Tools for Static Analysis
Tool | Use |
---|---|
Chainsaw | Fast hunting with Sigma |
EvtxECmd | Convert .evtx to CSV |
EventLog Explorer | GUI log viewer |
KAPE | Forensic triage |
Sigma | Rule format used by Chainsaw |
Hayabusa | Log Parser |
950 Words
2025-06-02 00:00