Skip to content

Windows Security Event ID cheat sheet for DFIR

The Windows event IDs that matter in an investigation, grouped by attack phase — with the log they live in, a one-line meaning, and a link to the deep-dive for each. A reference for incident response and threat hunting.

By Florian AmettePublished 5 {n} min read

Windows logs thousands of distinct event IDs; only a few dozen carry most investigations. This is the working subset, grouped by attack phase, with the channel each lives in, what it means in one line, and a link to the deep-dive where there is one. Keep it open next to the browser parser while you triage.

A note on prerequisites: many Security events require the relevant audit subcategory to be enabled, and some require command-line process auditing or Sysmon. An empty result often means "not logged," not "didn't happen" — see Sysmon configuration and the per-event posts.

Authentication & logon

IDChannelMeaning
4624SecurityAn account successfully logged on — read the logon type
4625SecurityA logon failed — read the sub-status code
4634 / 4647SecurityLogoff / user-initiated logoff (join by LogonId)
4648SecurityLogon with explicit credentials (runas)
4768Security (DC)Kerberos TGT requested
4769Security (DC)Kerberos service ticket requested (Kerberoasting)
4771Security (DC)Kerberos pre-authentication failed
4776Security (DC)NTLM credential validation

The whole picture, and how the DC and host halves correlate: reading Windows logons end to end.

Remote access (RDP)

IDChannelMeaning
1149RemoteConnectionManager/OperationalRDP network auth succeeded — carries source IP
21 / 22LocalSessionManager/OperationalRDP session logon / shell start
24 / 25LocalSessionManager/OperationalRDP session disconnected / reconnected
4778 / 4779SecuritySession reconnected / disconnected (client name + address)
1024RDPClient/OperationalOutbound RDP attempt — names the destination

Full constellation: RDP forensics · investigation: did someone RDP in? · hunting: RDP lateral movement.

Execution

IDChannelMeaning
4688SecurityProcess created (command line if auditing on)
1Sysmon/OperationalProcess create (hashes, parent, command line)
4104PowerShell/OperationalScript-block logging — the actual code
4103PowerShell/OperationalModule/pipeline logging
400 / 600Windows PowerShellEngine start / provider lifecycle (classic)

Background: PowerShell logging for forensics.

Privilege & account management

IDChannelMeaning
4672SecuritySpecial privileges assigned to a logon
4720SecurityUser account created
4722 / 4725 / 4726SecurityAccount enabled / disabled / deleted
4723 / 4724SecurityPassword change vs admin reset
4740 / 4767Security (DC)Account locked out / unlocked
4728 / 4732 / 4756SecurityMember added to global / local / universal security group
4729 / 4733 / 4757SecurityMember removed from those groups

Persistence

IDChannelMeaning
4698SecurityScheduled task created (full task XML)
4699 / 4700 / 4701 / 4702SecurityTask deleted / enabled / disabled / updated
106 / 140 / 141TaskScheduler/OperationalTask registered / updated / deleted
200 / 201TaskScheduler/OperationalTask action ran / completed
7045SystemService installed
7034 / 7036SystemService crashed / changed state
5861WMI-Activity/OperationalWMI permanent event consumer registered
5858 / 5860WMI-Activity/OperationalWMI operation error / temporary consumer

Lateral movement & access to resources

IDChannelMeaning
4624 type 3SecurityNetwork logon (SMB, etc.) — fan-out = lateral movement
4648SecurityExplicit-credential logon (often pivoting)
4663SecurityObject access attempt
5140 / 5145SecurityNetwork share accessed / detailed file share access

Defense evasion & anti-forensics

IDChannelMeaning
1102SecuritySecurity audit log cleared — who & when
104SystemA different log was cleared
1100SecurityEvent Log service shut down

Reading what survives tampering: tampered logs and what survives · log clearing as evidence · carving deleted records.

The format underneath

TopicReference
What an EVTX file iswhat is an EVTX file
Byte-level formatcomplete format reference · decoded · chunks
The binary XML encodinghow BinXML works
Collecting & openingcollect from a live host · open an EVTX file

How to use this

  1. Scope the question (subject + window), then pull the right channels.
  2. Filter to the IDs for the phase you're chasing — with PowerShell, Sigma tooling, or the browser parser.
  3. Correlate by LogonId, source IP, account, and time; bring in the DC, not just the victim.
  4. Assemble the confirmed events into a UTC timeline, and annotate the gaps.

Every bolded ID above has a deep-dive — follow the link for the fields, the false positives, and the hunting patterns.

Related posts

Reading account-lockout and password-change events in the Security log — 4740 (locked out) and its caller computer, 4767 (unlocked), 4723/4724 (password change vs admin reset), and what each pattern means for an investigation.
How attackers move host-to-host over RDP and the event-log trail it leaves — chaining RDPClient 1024 to RemoteConnectionManager 1149, spotting jump-host fan-out, restricted-admin and tunnelled RDP, and the gaps to watch for.
A practical workflow for answering 'was there a remote desktop session' from EVTX alone — which logs to pull, which event IDs to filter, how to confirm a real interactive session, and how to read the source and timing.