Windows Event Log Analysis for Security: The Event IDs That Matter and How to Act on Them
Windows event logs contain the forensic record of nearly every security-relevant action on a Windows system — authentication attempts, privilege use, process creation, service installation, and scheduled task creation. The challenge is not data availability but signal-to-noise ratio: a busy Windows server generates tens of thousands of events per hour, and the vast majority are irrelevant to security. This guide identifies the specific Event IDs that matter, explains what attacker behavior looks like in each, covers log forwarding and retention architecture, and provides SIEM query patterns for detection.
Audit Policy Configuration: Prerequisites for Useful Logs
Before Event IDs matter, audit policy must be configured to generate them. Windows default audit policy is insufficient for security monitoring — many critical event types are not logged by default.
Use Advanced Audit Policy, not Basic Audit Policy:
Windows has two audit policy systems: the basic audit policy (9 categories in Security Settings) and the Advanced Audit Policy (53 subcategories). The two systems conflict — applying both produces unpredictable results. Use only the Advanced Audit Policy, configured via GPO at Computer Configuration > Windows Settings > Security Settings > Advanced Audit Policy Configuration.
Critical subcategories to enable:
| Subcategory | Success | Failure | Key Events Generated |
|---|---|---|---|
| Credential Validation | Yes | Yes | 4776 |
| Kerberos Authentication Service | Yes | Yes | 4768, 4771 |
| Kerberos Service Ticket Operations | Yes | Yes | 4769 |
| Logon | Yes | Yes | 4624, 4625 |
| Special Logon | Yes | No | 4672 |
| Logoff | Yes | No | 4634 |
| Account Lockout | No | Yes | 4740 |
| Process Creation | Yes | No | 4688 |
| Security Group Management | Yes | No | 4728, 4732, 4756 |
| User Account Management | Yes | Yes | 4720, 4722, 4725, 4726, 4738 |
| Sensitive Privilege Use | Yes | No | 4673, 4674 |
| Security System Extension | Yes | No | 7045 (System log) |
| Directory Service Changes | Yes | No | 5136 (DCs only) |
| File Share | No | Yes | 5140, 5145 |
Enable command line logging in Process Creation events:
GPO: Computer Configuration > Administrative Templates > System > Audit Process Creation > Include command line in process creation events → Enabled. Without this, Event ID 4688 shows the process name but not the command line arguments — reducing detection value significantly.
Authentication Events: The Most Important Event IDs
Authentication events provide visibility into who is logging in, from where, using which method — and when those patterns deviate from baseline.
Event ID 4624 — Successful Logon: The most fundamental event. Key fields: Account Name, Logon Type, Workstation Name, Source Network Address, Authentication Package.
Logon Type values decode as:
- Type 2: Interactive (local console logon)
- Type 3: Network (SMB, file share, WMI)
- Type 4: Batch (scheduled tasks)
- Type 5: Service (service account logons)
- Type 7: Unlock (screen unlock)
- Type 10: RemoteInteractive (RDP)
- Type 11: CachedInteractive (cached credential logon — no DC contact)
Detection uses: Type 3 logons from workstations to other workstations (lateral movement via SMB), Type 10 logons from unusual source IPs (RDP-based lateral movement or external attacker), authentication with unusual logon types for a given account (service account logging on interactively).
Event ID 4625 — Failed Logon: Failed authentication. Key field: Failure Reason (Sub Status Code). Common sub-status codes:
- 0xC000006A: Wrong password
- 0xC0000064: Account does not exist
- 0xC000006D: Bad username or authentication information
- 0xC0000234: Account locked out
Detection uses: burst of 4625 events from one source against multiple accounts (password spray), burst against one account from one source (brute force), high rate of 0xC0000064 sub-status (username enumeration).
Event ID 4648 — Logon Using Explicit Credentials:
Generated when a process attempts a logon using explicit credentials (e.g., using runas or passing alternate credentials). Frequently generated by lateral movement tools (Mimikatz, Impacket) attempting Pass-the-Hash or over-pass-the-hash attacks.
Event ID 4768 — Kerberos TGT Requested: Generated on domain controllers when a Kerberos Ticket-Granting Ticket is requested. Encryption type field (etype) reveals attack patterns: etype 23 (RC4) requested for modern accounts that should use AES is an indicator of Pass-the-Ticket or AS-REP roasting.
Event ID 4769 — Kerberos Service Ticket Requested: Generated on domain controllers when a service ticket is requested. Detection use: Kerberoasting generates 4769 events with Ticket Options 0x40810000 and Ticket Encryption Type 17 or 18 (AES) or 23 (RC4 — weaker and preferred by attackers for offline cracking).
Event ID 4771 — Kerberos Pre-Authentication Failed: AS-REP roasting targets accounts with pre-authentication disabled — 4771 is not generated for these accounts (which is itself a detection signal). When 4771 fires, it indicates a standard Kerberos authentication failure rather than roasting.
Briefings like this, every morning before 9am.
Threat intel, active CVEs, and campaign alerts, distilled for practitioners. 50,000+ subscribers. No noise.
Process Creation and Command Execution Events
Process creation logging captures the execution of every process on the system — the single most valuable event source for detecting attacker tooling and post-exploitation activity.
Event ID 4688 — Process Creation: Key fields: Creator Process Name (parent), New Process Name (child), Command Line (if enabled), Token Elevation Type.
High-value detection patterns:
LOLBIN (Living-Off-the-Land Binary) abuse: Attackers use legitimate Windows binaries to execute malicious commands, bypassing application allowlisting. Key suspicious parent-child process relationships:
winword.exeorexcel.exespawningpowershell.exe,cmd.exe, orwscript.exe— malicious macro executionmshta.exespawning any child process — HTA-based payload executionsvchost.exespawningpowershell.exeorcmd.exe— service-based persistence mechanismexplorer.exespawningpowershell.exewith encoded command — user-triggered malicious script
PowerShell encoded commands:
4688 events where Command Line contains EncodedCommand or -enc — attackers frequently encode PowerShell commands to evade simple signature detection. The presence of encoding alone is an indicator; the decoded content determines severity.
Suspicious process names:
Processes with names misspelling legitimate system processes: svchost32.exe, lssas.exe, csrss32.exe. Also: processes executing from unusual paths (powershell.exe running from %TEMP% instead of System32).
Event ID 4103/4104 — PowerShell Module Logging and Script Block Logging:
These events (in the Microsoft-Windows-PowerShell/Operational log, not Security log) capture PowerShell command input and output. Script block logging (4104) records the complete content of PowerShell script blocks as they execute — capturing obfuscated commands after deobfuscation. Enable via GPO: Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell.
Privilege and Persistence Events
Attackers establishing persistence and escalating privileges leave forensic traces in specific event channels.
Event ID 4672 — Special Logon (Admin Equivalent): Generated when a privileged logon occurs — when a user logs on with a token including sensitive privileges (SeDebugPrivilege, SeTakeOwnershipPrivilege, etc.) or administrative group membership. Correlate with 4624 for the same logon session. An account generating 4672 that has not done so before, or from an unusual workstation, warrants investigation.
Event ID 4673/4674 — Sensitive Privilege Use: Records when a sensitive privilege is used. SeDebugPrivilege used by non-system processes is a Mimikatz indicator (required for LSASS memory access). SeTcbPrivilege use outside of expected service accounts warrants review.
Event ID 4720 — User Account Created: A new local or domain user account was created. Attackers create backdoor accounts for persistent access. Alert on account creation outside of change control hours or by accounts not in the approved provisioning group.
Event ID 4728/4732/4756 — Member Added to Security Group: 4728: Member added to global security group 4732: Member added to local security group 4756: Member added to universal security group
Alert specifically on additions to Domain Admins, Enterprise Admins, Schema Admins, and Administrators. Any account added to these groups outside of a change window should be treated as a priority alert.
Event ID 7045 — Service Installed (System Log): A new service was installed on the system. Attackers install services for persistence and privilege escalation. Key fields: Service Name, Service File Name (path to the executable). Services installed from temp directories, user profile paths, or with names that do not match standard Windows service naming conventions are high-suspicion.
Scheduled Task Creation (Event IDs 4698/4702): 4698: Scheduled task was created 4702: Scheduled task was modified
Key field: Task Content (XML representation of the task). Alert on scheduled tasks created outside business hours, created by non-administrative accounts, or pointing to executables in temp or user profile directories.
Windows Event Forwarding (WEF): Centralized Collection Without an Agent
Windows Event Forwarding (WEF) provides agentless event log collection using native Windows functionality. All Windows systems (endpoints and servers) can forward events to Windows Event Collector (WEC) servers, which then forward to your SIEM.
WEF architecture:
- Source computers: All Windows systems you want to collect from. No agent required. Configure via GPO.
- Event Collector (WEC) server: Windows Server running the Windows Event Collector service. Receives events from source computers.
- SIEM: Ingests from WEC via syslog, Winlogbeat, NXLog, or a native connector.
Collector-initiated vs. Source-initiated subscriptions:
- Source-initiated: Each source computer pushes events to the collector. Better for large environments. Source computers query Active Directory to find the collector endpoint.
- Collector-initiated: The collector pulls events from specified source computers. Better for small/controlled environments where you can enumerate all sources.
GPO configuration for source-initiated WEF:
Computer Configuration > Administrative Templates > Windows Components > Event Forwarding > Configure target Subscription Manager→ Set toServer=http://[WEC-SERVER]:5985/wsman/SubscriptionManager/WEC- Configure the WEC service:
wecutil qcon the WEC server - Create a subscription on the WEC server specifying which Event IDs to collect
Subscription filter for security-relevant events (XPath):
<QueryList>
<Query Id="0">
<Select Path="Security">*[System[(EventID=4624 or EventID=4625 or EventID=4648 or EventID=4672 or EventID=4688 or EventID=4698 or EventID=4720 or EventID=4728 or EventID=4732 or EventID=4756 or EventID=4768 or EventID=4769 or EventID=4771)]]</Select>
<Select Path="System">*[System[(EventID=7045)]]</Select>
<Select Path="Microsoft-Windows-PowerShell/Operational">*[System[(EventID=4103 or EventID=4104)]]</Select>
</Query>
</QueryList>
SIEM Query Patterns for Common Attack Techniques
Once logs are flowing to your SIEM, these query patterns detect common attacker behaviors. Examples use Splunk SPL; adapt field names for your SIEM.
Password spray detection:
index=windows EventCode=4625 Status=0xC000006A
| bucket _time span=5m
| stats dc(Account_Name) as unique_accounts, count as attempts by _time, Source_Network_Address
| where unique_accounts > 10 AND attempts > 30
| sort -attempts
Trigger: more than 10 unique accounts attempted with wrong password from one source in 5 minutes.
Lateral movement via SMB (Type 3 logon from workstation to workstation):
index=windows EventCode=4624 Logon_Type=3
| lookup workstations hostname as Computer OUTPUT is_workstation
| lookup workstations hostname as Workstation_Name OUTPUT is_source_workstation
| where is_workstation=true AND is_source_workstation=true
| table _time, Account_Name, Computer, Workstation_Name, Source_Network_Address
Kerberoasting detection:
index=windows EventCode=4769 Ticket_Encryption_Type=0x17
| stats count by Account_Name, Client_Address, Service_Name
| where count > 5
Type 0x17 = RC4 encryption — the attacker-preferred weak encryption type for offline cracking.
Suspicious PowerShell encoded command:
index=windows EventCode=4688 Process_Command_Line="*-enc*" OR Process_Command_Line="*EncodedCommand*"
| table _time, Computer, Account_Name, Creator_Process_Name, Process_Command_Line
| sort -_time
Privileged group modification:
index=windows (EventCode=4728 OR EventCode=4732 OR EventCode=4756)
| eval group_name=coalesce('Group_Name', 'Target_Group_Name')
| where group_name IN ("Domain Admins", "Enterprise Admins", "Schema Admins", "Administrators")
| table _time, Computer, Subject_Account_Name, Member_Security_ID, group_name
The bottom line
Windows event logs are the most accessible and information-rich forensic source in most enterprise environments — provided audit policy is properly configured and logs are forwarded and retained before they are needed. Configure Advanced Audit Policy with process creation command line logging, deploy Windows Event Forwarding for agentless collection at scale, increase Security log size to at least 1 GB, and forward to your SIEM within 24 hours. Then build detection logic around the 30 Event IDs that map to documented attacker techniques — not alerts on every event type, but targeted detection where the MITRE ATT&CK mapping tells you what to look for.
Frequently asked questions
Which Windows Event IDs are most important for security monitoring?
The highest-value Event IDs for security detection are: 4624 (successful logon), 4625 (failed logon), 4648 (explicit credential logon — lateral movement indicator), 4672 (privileged logon), 4688 (process creation with command line), 4698/4702 (scheduled task creation/modification), 4720 (user account created), 4728/4732/4756 (group membership changes), 4768/4769/4771 (Kerberos ticket events for Pass-the-Ticket and Kerberoasting detection), and 7045 in the System log (service installation).
How do you configure Windows audit policy for security monitoring?
Use Advanced Audit Policy (not the basic 9-category audit policy) configured via GPO at Computer Configuration > Windows Settings > Security Settings > Advanced Audit Policy Configuration. Enable at minimum: Credential Validation (success/failure), Logon (success/failure), Process Creation (success), Security Group Management (success), User Account Management (success/failure), Kerberos Authentication (success/failure), and Sensitive Privilege Use (success). Also enable the GPO setting to include command line in process creation events.
What is Windows Event Forwarding (WEF) and how does it work?
WEF is a native Windows feature that forwards events from source computers to a central Windows Event Collector (WEC) server without installing a third-party agent. Source computers are configured via GPO to push events to the collector using WS-Management protocol. The collector aggregates events and forwards to a SIEM via syslog, Winlogbeat, or NXLog. It supports XPath subscription filters to forward only security-relevant Event IDs rather than all events.
What does a Kerberoasting attack look like in Windows Event Logs?
Kerberoasting generates Event ID 4769 (Kerberos Service Ticket Requested) with Ticket Encryption Type 0x17 (RC4-HMAC). Attackers request service tickets using the weaker RC4 encryption type because RC4 tickets are faster to crack offline than AES tickets. A burst of 4769 events with 0x17 encryption type from a single source, requesting tickets for multiple service accounts, is the primary detection signal. Normal Kerberos in modern environments predominantly uses AES encryption.
Why is the default Windows Security log size insufficient?
The default Windows Security log is 20 MB, which is overwritten within minutes on busy servers and hours on workstations. When investigating an incident, you need Security log data going back days or weeks — which does not exist if the log was overwritten. Set Security log size to at least 1 GB on servers and 512 MB on workstations. Better: forward logs to a SIEM in near-real-time so retention is independent of local log size.
What is Logon Type in Event ID 4624 and why does it matter?
The Logon Type field in Event ID 4624 identifies how the authentication occurred: Type 2 is interactive (console), Type 3 is network (SMB, WMI, file shares), Type 10 is RDP. For lateral movement detection, Type 3 logons from workstations to other workstations are anomalous — workstations should not authenticate to each other via SMB under normal circumstances. Type 10 logons from unexpected source IPs or at unusual hours are high-priority RDP-based lateral movement indicators.
Sources & references
- Microsoft Windows Security Auditing Documentation
- MITRE ATT&CK Windows Audit Policy Recommendations
- NSA Event Forwarding Guidance
- Malware Archaeology Windows ATT&CK Logging Cheat Sheet
Free resources
Critical CVE Reference Card 2025–2026
25 actively exploited vulnerabilities with CVSS scores, exploit status, and patch availability. Print it, pin it, share it with your SOC team.
Ransomware Incident Response Playbook
Step-by-step 24-hour IR checklist covering detection, containment, eradication, and recovery. Built for SOC teams, IR leads, and CISOs.
Get threat intel before your inbox does.
50,000+ security professionals read Decryption Digest for early warnings on zero-days, ransomware, and nation-state campaigns. Free, weekly, no spam.
Unsubscribe anytime. We never sell your data.

Founder & Cybersecurity Evangelist, Decryption Digest
Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals weekly.
The Mythos Brief is free.
AI that finds 27-year-old zero-days. What it means for your security program.
