Every logon attempt, every failed password, every process launched, every scheduled task created, every time an administrator clears the audit log — the Windows Security event log records it all. For investigators, Security.evtx is the authoritative record of who did what, when, and from where. It is the first artifact examined in every intrusion investigation, every insider threat case, and every privilege escalation incident.
| Property | Detail |
|---|---|
| Full Name | Windows Security Event Log |
| Location | C:\Windows\System32\winevt\Logs\Security.evtx |
| Format | EVTX (binary XML chunks with CRC32 checksums) |
| Introduced | Windows Vista (2007); replaced EVT format from NT/2000/XP |
| Default Size | 20 MB rolling (configurable via Group Policy or registry) |
| Retention | Overwrite oldest events when maximum size is reached (default behavior) |
| Managed By | Windows Event Log service (wevtsvc.dll / svchost.exe) |
What Is Security.evtx?
Security.evtx is the Windows Security event log — the primary audit log for the operating system. It is generated by the Local Security Authority Subsystem Service (LSASS) and written by the Windows Event Log service. Unlike the System and Application logs, which record operational events from services and software, the Security log records security-relevant events: authentication attempts, privilege use, audit policy changes, object access, and process creation. Every event in the Security log is the result of an audit policy configuration — if an audit category is not enabled, the corresponding events are not generated.
The EVTX format was introduced in Windows Vista, replacing the legacy EVT format from Windows NT/2000/XP. EVTX files are structured as a header followed by 64 KB chunks, each containing binary XML records with CRC32 integrity checksums. This format supports Unicode strings, structured XML data (including nested key-value pairs for event-specific fields), and per-chunk checksums that enable detection of record tampering. Each event record contains a System section (EventID, TimeCreated, Computer, Security) and an EventData section containing event-specific fields like LogonType, TargetUserName, IpAddress, and CommandLine.
The default configuration on Windows desktop editions generates a minimal set of events — primarily logon/logoff (4624/4634) and account management events. On domain controllers, a broader set is enabled by default. However, many of the most forensically valuable events — including process creation with command-line logging (4688), detailed object access (4663), and scheduled task creation (4698) — require explicit audit policy configuration via Group Policy or auditpol.exe. Organizations that have not configured Advanced Audit Policy will have significant gaps in their Security log.
Security.evtx is the single most important log source in Windows forensics, but its value is directly proportional to the audit policy configuration. A system with default audit settings will log basic logon events. A system with properly configured Advanced Audit Policy will log process creation with command lines, object access, Kerberos operations, and scheduled task activity — the events that actually solve cases.
Location & Format
File Paths
| File | Path | Purpose |
|---|---|---|
| Security.evtx | C:\Windows\System32\winevt\Logs\Security.evtx | Primary Security event log; all authentication, privilege, and audit events |
| Archive logs | C:\Windows\System32\winevt\Logs\Archive-Security-*.evtx | Archived logs if “Archive the log when full” retention policy is enabled |
| Forwarded Events | C:\Windows\System32\winevt\Logs\ForwardedEvents.evtx | Events collected from remote systems via Windows Event Forwarding (WEF) |
| Sysmon log | C:\Windows\System32\winevt\Logs\Microsoft-Windows-Sysmon%4Operational.evtx | If Sysmon is installed, provides complementary process, network, and file events |
EVTX Binary Format
An EVTX file begins with a 4,096-byte file header containing the signature ElfFile\x00, the oldest and newest record numbers, the chunk count, and file-level flags. The remainder of the file consists of 64 KB chunks, each beginning with the signature ElfChnk\x00 and containing a chunk header, binary XML event records, and a CRC32 checksum over the chunk data. Each event record is a binary XML structure containing a System element (with EventID, TimeCreated, Computer, Channel, Security SID) and an EventData element with event-specific key-value pairs.
The binary XML encoding uses opcodes for element start, element end, attribute, and value tokens. Strings are stored as UTF-16LE with length prefixes. Templates are used to avoid repeating the same XML structure for events of the same type — the template defines the structure, and each record only stores the variable data. This encoding makes EVTX files compact but not human-readable without a parser.
Key Event IDs
| Event ID | Category | Description | Key Fields |
|---|---|---|---|
4624 | Logon | Successful logon | TargetUserName, LogonType, IpAddress, WorkstationName, LogonProcessName |
4625 | Logon | Failed logon | TargetUserName, LogonType, IpAddress, FailureReason, Status, SubStatus |
4634 | Logon | Logoff | TargetUserName, TargetLogonId (correlate with 4624) |
4648 | Logon | Explicit credential logon (RunAs, runas /user:) | SubjectUserName, TargetUserName, TargetServerName, ProcessName |
4672 | Privilege | Special privileges assigned to new logon (admin logon) | SubjectUserName, PrivilegeList |
4688 | Process | Process created (requires audit policy) | NewProcessName, CommandLine, ParentProcessName, SubjectUserName, TokenElevationType |
4689 | Process | Process terminated | ProcessName, SubjectUserName |
4698 | Task | Scheduled task created | TaskName, TaskContent (full XML of the task definition) |
4720 | Account | User account created | TargetUserName, SubjectUserName (who created it) |
4732 | Account | Member added to security-enabled local group | MemberSid, TargetUserName (group name), SubjectUserName |
4663 | Object | Object access attempt (file, registry, etc.) | ObjectName, ObjectType, AccessMask, ProcessName |
4769 | Kerberos | Kerberos service ticket requested | TargetUserName, ServiceName, TicketEncryptionType, IpAddress |
1102 | Audit | Audit log was cleared | SubjectUserName, SubjectDomainName (who cleared the log) |
LogonType Values
| LogonType | Name | Description | Forensic Significance |
|---|---|---|---|
2 | Interactive | Console logon (keyboard at the machine) | Physical access to the workstation |
3 | Network | Network authentication (SMB, mapped drives) | Lateral movement; credentials not cached on target |
4 | Batch | Scheduled task execution | Persistence via scheduled tasks |
5 | Service | Service startup | Service account activity; persistence via services |
7 | Unlock | Workstation unlock | User presence at the workstation |
9 | NewCredentials | runas /netonly | Alternate credential use; process uses different creds for network |
10 | RemoteInteractive | Remote Desktop (RDP) | RDP access; credentials cached on target via CredSSP |
11 | CachedInteractive | Cached domain credentials used (DC unavailable) | Offline authentication; domain controller was not contacted |
Many critical events require explicit audit policy configuration. Event ID 4688 (process creation with command-line logging) requires Audit Process Creation to be enabled and the Include command line in process creation events GPO setting. Event ID 4663 (object access) requires both Audit Object Access and a SACL (System Access Control List) on the target object. Event ID 4698 (scheduled task) requires Audit Other Object Access Events. Without these policies, the Security log will contain only logon events — which is insufficient for most investigations.
What It Reveals
Security.evtx provides answers to the foundational questions of any intrusion investigation. The following investigative questions are directly answerable from Security event log data:
- Who authenticated to this system, and from where? — Event ID 4624 records the
TargetUserName,LogonType,IpAddress, andWorkstationNamefor every successful logon. Type 10 (RemoteInteractive) logons from unexpected IP addresses are the primary indicator of RDP-based lateral movement. - Were there brute-force or password-spraying attacks? — Event ID 4625 clusters reveal failed authentication attempts. The
StatusandSubStatusfields distinguish between wrong password (0xC000006A), unknown user (0xC0000064), and account lockout (0xC0000234). High-volume 4625 events from a singleIpAddressindicate brute force; low-volume 4625 events spread across many accounts indicate password spraying. - What processes were executed, and by whom? — Event ID 4688 records
NewProcessName,CommandLine(if configured),ParentProcessName, andSubjectUserName. This is the primary evidence for PowerShell-based attacks, LOLBin abuse, and malware execution. - Was privilege escalation performed? — Event ID 4672 records when special privileges (SeDebugPrivilege, SeImpersonatePrivilege, SeTcbPrivilege) are assigned to a logon session. Event ID 4732 records when a user is added to a privileged group (Administrators, Domain Admins).
- Were scheduled tasks created for persistence? — Event ID 4698 contains the complete XML definition of a newly created scheduled task, including the command to execute, the trigger schedule, and the user context. This is one of the most common persistence mechanisms.
- Was there Kerberoasting activity? — Event ID 4769 with
TicketEncryptionType0x17 (RC4-HMAC) requested for a service account from a workstation IP (not a server) indicates Kerberoasting — an attacker requesting service tickets encrypted with a weak cipher to crack offline. - Were new user accounts created? — Event ID 4720 records user account creation. An account created at 03:00 by a compromised service account is a strong indicator of persistence.
- Was the audit log cleared to destroy evidence? — Event ID 1102 is generated in the new, empty log after the Security log is cleared. It records the user who performed the clearance. This event cannot be suppressed — clearing the log always generates 1102.
- Were files accessed? — Event ID 4663 records object access attempts. Combined with a properly configured SACL, it can prove that a specific user accessed a specific file at a specific time — critical for data exfiltration and insider threat cases.
- Were explicit/alternate credentials used? — Event ID 4648 records when a process authenticates using credentials different from the current logon session. This detects
runasusage, Pass-the-Hash, and credential theft tools.
A cluster of 4625 (failed logon) events from a single source IP, followed by a single 4624 (successful logon) Type 3 from the same IP, followed by 4672 (special privileges assigned), then 4688 events showing powershell.exe with encoded command-line arguments — this sequence tells the complete story of a brute-force attack that succeeded, gained administrative access, and executed a PowerShell-based payload. The entire attack narrative is in the Security log.
Forensic Use Cases
1. Brute-Force and Password-Spraying Detection
An investigation reveals a compromised domain admin account. The Security log on the domain controller shows 4,200 Event ID 4625 entries for the account svc_backup over a 90-minute window, all from a single source IP that belongs to an employee workstation. The SubStatus code 0xC000006A (wrong password) is consistent across all failures. At 02:47:12 UTC, a single Event ID 4624 (Type 3) from the same source IP indicates the password was guessed correctly. Within 60 seconds, Event ID 4672 shows special privileges assigned, and 4688 events show cmd.exe spawning net group "Domain Admins" /add attacker_user /domain. The timeline from initial brute force to domain compromise is 92 minutes.
2. Lateral Movement via RDP
After an initial compromise, an attacker pivots through the network using stolen credentials. The Security log on each host shows Event ID 4624 with LogonType 10 (RemoteInteractive) from the source IP of the previously compromised host. By correlating 4624 Type 10 events across multiple systems, the investigator maps the complete lateral movement chain: Workstation A (initial access) to Server B (file server) to Server C (domain controller). Each hop is timestamped with sub-second precision. The TargetUserName field shows the attacker used three different accounts during the lateral movement, escalating from a standard user to a domain admin.
3. Kerberoasting Detection
An attacker with a compromised standard domain user account requests Kerberos service tickets for service accounts. The domain controller’s Security log shows Event ID 4769 entries with TicketEncryptionType 0x17 (RC4-HMAC) for service accounts svc_sql, svc_exchange, and svc_backup, all requested from a workstation IP within a 30-second window. Normal service ticket requests use AES-256 (0x12). The RC4 encryption type is specifically requested because it is weaker and the resulting ticket can be cracked offline. The investigator identifies the attacking workstation, the compromised user, and the targeted service accounts from a single query of the Security log.
4. Persistence via Scheduled Tasks
During an incident response engagement, the investigator finds Event ID 4698 in the Security log showing a scheduled task named WindowsUpdateCheck created at 03:14 UTC by user SYSTEM. The TaskContent XML within the event data reveals the task executes powershell.exe -ep bypass -enc [base64] every 4 hours. Decoding the Base64 reveals a PowerShell download cradle that fetches and executes a second-stage payload from an attacker-controlled domain. The task was created via schtasks.exe, which is also visible in Event ID 4688 with the full command line.
5. Log Tampering Detection
An attacker who has gained SYSTEM-level access attempts to cover their tracks by clearing the Security log using wevtutil cl Security. The act of clearing the log generates Event ID 1102 in the fresh, empty log — recording the username and timestamp of the clearance. The investigator also finds Event ID 7036 in the System log showing the Windows Event Log service was restarted. On systems with Windows Event Forwarding (WEF) configured, the forwarded copies of the pre-clearance events survive on the collection server, providing a complete record despite the local log destruction.
Acquisition Methods
Security.evtx is actively written by the Event Log service. While the file can be copied directly on a live system (unlike ESE databases, EVTX files can be read while the service is writing), the copy may be inconsistent if events are being written during the copy operation. For forensic integrity, use Volume Shadow Copy or wevtutil epl which exports a consistent snapshot. Always collect all EVTX files from winevt\Logs\, not just Security.evtx — System, PowerShell Operational, Sysmon, and TaskScheduler logs provide critical corroborating evidence.
Live System — wevtutil Export
:: Export a consistent copy of the Security log wevtutil epl Security C:\Evidence\Security.evtx :: Export with locale-independent rendering wevtutil epl Security C:\Evidence\Security.evtx /lf:true :: Export all event logs (recommended for complete collection) for /f "tokens=*" %l in ('wevtutil el') do wevtutil epl "%l" "C:\Evidence\EventLogs\%l.evtx" 2>nul :: Query recent Security events as XML (live triage) wevtutil qe Security /q:"*[System[TimeCreated[timediff(@SystemTime) <= 86400000]]]" /f:xml > C:\Evidence\Security_Last24h.xml
Live System — KAPE and Velociraptor
:: Using KAPE (Kroll Artifact Parser and Extractor) kape.exe --tsource C: --tdest C:\Evidence\KAPE_Output --target EventLogs :: Using Velociraptor (remote collection via VQL) :: Artifact: Windows.KapeFiles.Targets with target "EventLogs" :: Or directly: :: SELECT * FROM glob(globs="C:/Windows/System32/winevt/Logs/*.evtx") :: Using PowerShell (live query for quick triage) Get-WinEvent -LogName Security -MaxEvents 1000 | Export-Csv C:\Evidence\Security_Recent.csv -NoTypeInformation
Forensic Image — Direct Extraction
# Mount the forensic image (read-only) mount -o ro,noexec,nodev /dev/sdb1 /mnt/evidence # Copy all event logs cp /mnt/evidence/Windows/System32/winevt/Logs/*.evtx /analysis/eventlogs/ # Verify file integrity (check for truncation) ls -la /analysis/eventlogs/Security.evtx # A Security.evtx that is exactly 20,971,520 bytes (20 MB) has reached # its maximum configured size and has been rolling over
Parsing Tools & Analysis
| Tool | Author | License | Output | Notes |
|---|---|---|---|---|
| EvtxECmd | Eric Zimmerman | Free | CSV / JSON | Industry standard for bulk EVTX parsing; supports custom event maps for detailed field extraction |
| Get-WinEvent | Microsoft | Built-in (PowerShell) | Objects / CSV | Native PowerShell cmdlet; supports XPath queries; best for live triage |
| evtx_dump | omerbenamram | Open source (Rust) | JSON / XML | Linux-native EVTX parser; fast, handles corrupted files gracefully |
| Chainsaw | WithSecure (F-Secure) | Open source (Rust) | Table / JSON / CSV | EVTX threat hunting tool; applies Sigma rules to detect attack patterns automatically |
| LogParser | Microsoft | Free | SQL-like queries | Powerful SQL engine for EVTX queries; legacy but still useful for complex aggregations |
| Hayabusa | Yamato Security | Open source (Rust) | CSV / JSON | Fast EVTX analysis with Sigma-compatible detection rules; timeline generation |
| AXIOM | Magnet Forensics | Commercial | GUI + export | Full forensic suite; correlates event log entries with other artifacts |
Parsing with EvtxECmd (Eric Zimmerman)
:: Parse Security.evtx to CSV with event map resolution EvtxECmd.exe -f C:\Evidence\Security.evtx --csv C:\Analysis\EvtxOutput --csvf Security_Parsed.csv :: Parse all EVTX files in a directory EvtxECmd.exe -d C:\Evidence\EventLogs --csv C:\Analysis\EvtxOutput :: Output fields include: :: TimeCreated, EventId, Level, Provider, Channel, :: Computer, UserId, MapDescription, PayloadData1-6
Threat Hunting with Chainsaw
# Run Chainsaw with Sigma rules against collected event logs chainsaw hunt /analysis/eventlogs/ \ --sigma-rules /opt/sigma/rules/ \ --mapping /opt/chainsaw/mappings/sigma-event-logs-all.yml \ --output /analysis/chainsaw_results.json \ --json # Search for specific event IDs chainsaw search /analysis/eventlogs/ \ --kind evtx \ --event-id 4624,4625,4672,4688,1102 \ --output /analysis/key_events.json
Analysis Script — Failed Logon Clustering
# Identify brute-force attacks by clustering failed logon events import pandas as pd df = pd.read_csv('/analysis/EvtxOutput/Security_Parsed.csv', low_memory=False) # Filter for failed logon events (4625) failed = df[df['EventId'] == 4625].copy() failed['TimeCreated'] = pd.to_datetime(failed['TimeCreated']) # Group by source IP and target account clusters = failed.groupby(['PayloadData3', 'PayloadData1']).agg( FailCount=('EventId', 'count'), FirstAttempt=('TimeCreated', 'min'), LastAttempt=('TimeCreated', 'max') ).sort_values('FailCount', ascending=False) clusters.columns.name = None print('=== Brute Force Candidates (>10 failures) ===') print(clusters[clusters['FailCount'] > 10].head(20).to_string()) # Check if any attacking IPs also have successful logons success = df[df['EventId'] == 4624] attacker_ips = clusters[clusters['FailCount'] > 10].reset_index()['PayloadData3'].unique() compromised = success[success['PayloadData3'].isin(attacker_ips)] print(f'\n=== Successful logons from attacking IPs: {len(compromised)} ===') for _, row in compromised.iterrows(): print(f' {row["TimeCreated"]} {row["PayloadData1"]} from {row["PayloadData3"]} Type {row["PayloadData2"]}')
Sample Output
=== Brute Force Candidates (>10 failures) === FailCount FirstAttempt LastAttempt PayloadData3 PayloadData1 192.168.14.22 svc_backup 4,217 2026-03-15 01:14:32 2026-03-15 02:46:58 10.0.50.8 administrator 312 2026-03-14 22:08:11 2026-03-14 23:41:07 192.168.14.22 admin 47 2026-03-15 00:52:14 2026-03-15 01:14:28 === Successful logons from attacking IPs: 1 === 2026-03-15 02:47:12 svc_backup from 192.168.14.22 Type 3
The workstation at 192.168.14.22 attempted 4,217 password guesses against svc_backup over 92 minutes. At 02:47:12, the first successful logon (Type 3 — network) appeared from the same IP. The attacker first tried the admin account (47 failures, then gave up) before pivoting to svc_backup. The attack originated from an internal workstation, indicating a compromised endpoint was used as a pivot point for credential attacks against service accounts.
Retention & Persistence
| Property | Default Behavior | Configurable |
|---|---|---|
| Maximum log size | 20 MB (Security); 20 MB (System); 20 MB (Application) | Yes — via Group Policy or wevtutil sl Security /ms:<bytes> |
| Retention policy | Overwrite oldest events when full (“circular” mode) | Yes — can be set to “Archive” (save full log, start new) or “Do not overwrite” (stop logging when full) |
| Effective retention period | Varies enormously: hours on a busy DC, weeks on a quiet workstation | Increase /ms: to extend retention; recommended 1 GB+ for DCs |
| Survives reboot | Yes — file is persistent on disk | N/A |
| Survives OS reinstall | No — file is replaced during installation | Collect before reinstall |
| Archived logs | Not enabled by default | Yes — “Archive the log when full, do not overwrite events” |
| Windows Event Forwarding | Not enabled by default | Yes — WEF forwards events to a central collector in near-real-time |
The default 20 MB Security log on a domain controller with standard audit policies retains approximately 4–12 hours of events during business hours. On a busy file server with object access auditing, the log may roll over in under 2 hours. This means that by the time an investigation begins — often days or weeks after the initial compromise — the critical early events may have been overwritten. Organizations should increase the Security log to at least 1 GB on domain controllers and configure Windows Event Forwarding to a central SIEM for long-term retention.
Set domain controller Security log to 4 GB minimum. Configure Windows Event Forwarding to send events to a central collector. Implement a SIEM with 90+ day retention. The single most common failure in incident response is insufficient log retention — the evidence existed but was overwritten before anyone looked for it.
Anti-Forensics Resilience
The Security event log is a high-value target for attackers who want to cover their tracks. Unlike SRUM.db or Windows.edb, which are rarely targeted because they are not widely known, the Security log is the first thing a sophisticated attacker will attempt to manipulate after gaining administrative access.
| Technique | Method | Detection |
|---|---|---|
| Full log clear | wevtutil cl Security (requires admin) | Event ID 1102 is generated in the new log recording who cleared it. System.evtx Event ID 7040/7036 may show the Event Log service restart. A Security.evtx file that is suspiciously small for a system’s uptime is itself an indicator. |
| Selective record deletion | Tools like Invoke-Phant0m, EvtMute, or manual binary editing of the EVTX file | Breaks the sequential Record ID numbering (gaps in RecordId). CRC32 checksums on EVTX chunks will fail. Timeline gaps where events are expected (e.g., no 4624 events during business hours on a busy server). |
| Event log service kill | Thread-killing techniques that suspend the Event Log service threads while keeping the service “running” | Events stop being generated while the service appears healthy. Detectable by monitoring for Event Log thread termination or by comparing expected vs. actual event volume. |
| Audit policy modification | auditpol /set /subcategory:“Logon” /success:disable | Event ID 4719 (System audit policy was changed) records the modification. Before/after audit policy snapshots from auditpol /get /category:*. |
| CCleaner / BleachBit | Does not target Security.evtx | N/A — consumer cleanup tools do not have Event Log modules. They target browser history, temp files, and recycle bin. |
Event ID 1102 cannot be suppressed. The act of clearing the Security log always generates this event in the fresh, empty log. An empty Security log with a single Event ID 1102 at its beginning is definitive proof of deliberate log destruction. The event records the SubjectUserName, SubjectDomainName, and SubjectLogonId of the account that performed the clearance — attributing the anti-forensics action to a specific user.
MITRE ATT&CK Detection Mapping
Security.evtx data provides evidentiary support for detecting the following MITRE ATT&CK techniques:
| Technique | Name | Security.evtx Evidence |
|---|---|---|
T1078 T1078 | Valid Accounts | Event ID 4624 with legitimate credentials from unexpected IpAddress or at unusual times. Type 10 logons from external IPs indicate compromised credentials used for RDP access. |
T1110 T1110 | Brute Force | High-volume Event ID 4625 clusters from a single source IP. SubStatus 0xC000006A (wrong password) vs. 0xC0000064 (unknown user) distinguishes brute force from password spraying. |
T1021 T1021 | Remote Services | Event ID 4624 Type 10 (RDP), Type 3 (SMB/network). Correlating source IPs across multiple hosts reveals lateral movement paths. Event ID 4648 reveals explicit credential use during pivoting. |
T1053 T1053 | Scheduled Task/Job | Event ID 4698 contains the complete scheduled task XML including the command, schedule, and user context. Malicious tasks often execute PowerShell with encoded commands or binaries from staging directories. |
T1070.001 T1070.001 | Clear Windows Event Logs | Event ID 1102 in Security.evtx proves the log was cleared and identifies the responsible account. An empty Security log on a system with weeks of uptime is itself evidence of anti-forensics. |
T1558 T1558 | Steal or Forge Kerberos Tickets | Event ID 4769 with TicketEncryptionType 0x17 (RC4-HMAC) requested for service accounts from workstation IPs indicates Kerberoasting. Multiple service ticket requests in rapid succession for different SPNs is a strong indicator. |
Related Artifacts & Case Studies
Corroborating Artifacts
| Artifact | Relationship to Security.evtx | Cross-Correlation Value |
|---|---|---|
| Prefetch | Confirms application execution independently of Event ID 4688 | If process creation auditing was not enabled, Prefetch proves an executable ran. Prefetch timestamps corroborate Security log event times. The file reference list in Prefetch provides behavioral context that 4688 does not capture. |
| SRUM.db | Records per-application network transfer volumes | SRUM proves how much data an application transferred even if Security log 4688 events have rolled over. Correlate SRUM BytesSent spikes with 4624 logon events to connect network activity to authentication events. |
| Windows.edb | Contains full-text content of indexed documents | If Security.evtx 4663 events show a user accessed specific files, Windows.edb may contain the full text of those files even after deletion. GatherTime in Windows.edb provides an independent timestamp that corroborates 4663 event times. |
| $MFT | File creation/modification timestamps | $MFT provides sub-second precision on when files were created on disk. Correlate $MFT creation times for malware binaries with 4688 process creation events to establish the full attack chain. |
| PowerShell Operational Log | Microsoft-Windows-PowerShell/Operational.evtx | If Security.evtx 4688 shows powershell.exe execution but command-line logging was not enabled, the PowerShell Operational log (Event IDs 4103, 4104) may contain the full script block content. |
| Sysmon Log | Microsoft-Windows-Sysmon/Operational.evtx | Sysmon provides richer process creation events (Event ID 1) with hashes, network connections (Event ID 3), and file creation (Event ID 11). Sysmon data fills gaps when Security log audit policy is incomplete. |
Case Study
Credential Stuffing to Healthcare Data Breach — A credential stuffing attack against a healthcare portal resulted in unauthorized access to patient records. The Security event log on the authentication server showed 47,000 Event ID 4625 failures over 6 hours from a rotating set of proxy IPs, followed by 312 successful 4624 logons using compromised patient portal credentials. Event ID 4663 entries confirmed which patient records were accessed, and the timestamps were correlated with SRUM.db network transfer data to prove data exfiltration volume.
AiTM Phishing to Insider Threat — An adversary-in-the-middle phishing attack captured a user’s session token. The Security log showed Event ID 4624 Type 3 logons from a foreign IP address using the compromised account, followed by 4672 special privilege events indicating the attacker had escalated to local admin. Event ID 4698 revealed a persistence mechanism via a scheduled task. The complete attack chain — from initial access to persistence — was reconstructed from Security.evtx alone.
References
- Eric Zimmerman, “EvtxECmd — EVTX Command Line Parser” — https://ericzimmerman.github.io/
- Microsoft, “Advanced Security Auditing FAQ” — https://learn.microsoft.com/en-us/windows/security/threat-protection/auditing/
- UltimateWindowsSecurity.com, “Windows Security Log Encyclopedia” — https://www.ultimatewindowssecurity.com/securitylog/encyclopedia/
- WithSecure, “Chainsaw — Rapid Windows Event Log Forensics” — https://github.com/WithSecureLabs/chainsaw
- Yamato Security, “Hayabusa — Windows Event Log Fast Forensics Timeline Generator” — https://github.com/Yamato-Security/hayabusa
- SANS Institute, “Windows Event Log Analysis Poster” — https://www.sans.org/posters/windows-forensic-analysis/
- omerbenamram, “evtx — A cross-platform parser for the Windows EVTX format” — https://github.com/omerbenamram/evtx
- SigmaHQ, “Sigma Detection Rules for SIEM” — https://github.com/SigmaHQ/sigma
Mjolnir Security — Digital Forensics & Incident Response
Mjolnir Security provides 24/7 incident response, digital forensics, and expert witness testimony. Our DFIR team specializes in event log analysis, lateral movement reconstruction, credential attack detection, and forensic timeline building from Windows Security event logs.
mjolnirsecurity.com — 24/7: +1 833 403 5875