SOC 安全分析必备:常用 Windows 事件 ID(Event ID)详解与速查表
前言
无论你是刚入门的安全分析师,还是负责 SIEM 规则编写的资深工程师,都绕不开 Windows 事件日志。攻击者从初始访问、权限提升、凭据窃取到横向移动、持久化、痕迹清理,几乎每一步都会在日志里留下蛛丝马迹。
问题在于:Windows 的事件 ID 多达上千个,真正在 SOC 实战中高频出现、具备明确检测价值的其实是有限的一批。本文就把这批"核心 ID"按攻击阶段和功能分类讲清楚,帮助你建立日志分析的肌肉记忆。
大部分关键事件位于 Security(安全) 日志中,但服务安装、日志清除等也会出现在 System(系统) 日志,Sysmon 与 PowerShell 则有各自独立的运营日志通道(Applications and Services Logs)。分析时一定要分清来源。
一、登录与认证类(Logon & Authentication)
这是 SOC 分析中接触最频繁的一类,用于排查暴力破解、异常登录、凭据滥用等。
4624 --- 账户成功登录
最核心的事件,没有之一。它记录了"谁、从哪、用什么方式"登录成功。分析时务必关注 Logon Type(登录类型)、源 IP、账户名。例如:大量来自异常 IP 的 Type 3(网络登录)可能意味着横向移动;非工作时间的 Type 10(RDP)登录值得警惕。
4625 --- 账户登录失败
排查**暴力破解 / 密码喷洒(Password Spraying)**的首选。短时间内同一账户大量 4625 = 暴力破解;同一时间段大量不同账户各失败一两次 = 密码喷洒。Status 字段(如 0xC000006A 密码错误、0xC0000064 用户不存在)能帮助判断攻击者是否在枚举用户名。
4634 / 4647 --- 账户注销 / 用户主动注销
用于会话时长统计和登录-注销配对分析。4647 是用户主动发起的注销,4634 是系统记录的注销完成。
4648 --- 使用显式凭据进行登录
当使用 runas 或在 A 账户下用 B 账户的凭据发起连接时触发。横向移动的高价值信号------攻击者常用窃取的凭据通过此方式访问其他主机。关注"使用账户"与"目标账户"不一致的情况。
4672 --- 为新登录分配特殊权限
管理员级别权限(如 SeDebugPrivilege、SeBackupPrivilege)被授予时记录。通常紧跟在管理员的 4624 之后出现,可作为特权登录的标志。普通用户出现 4672 需重点排查。
4768 / 4769 / 4771 --- Kerberos 票据相关
- 4768:请求 Kerberos TGT(身份认证票据),登录域时触发。
- 4769 :请求 Kerberos 服务票据(TGS)。检测 Kerberoasting 攻击的关键------大量针对不同 SPN 的 4769 且加密类型为 RC4(0x17)是典型特征。
- 4771:Kerberos 预认证失败,等价于域环境下的"登录失败",同样可用于检测暴力破解。
4776 --- 凭据验证(NTLM)
域控/本地对 NTLM 认证进行校验时记录。用于检测 NTLM 暴力破解和 Pass-the-Hash 的辅助信号。
二、账户与组管理类(Account & Group Management)
用于检测攻击者创建后门账户、提权到管理员组等持久化行为。
4720 --- 创建用户账户
攻击者建立后门账户的直接证据。任何计划外的 4720,尤其是紧接着把新账户加入管理员组的行为,都应触发高优先级告警。
4722 / 4725 / 4726 --- 账户启用 / 禁用 / 删除
4722 启用一个原本禁用的账户(攻击者复活休眠账户)、4726 删除账户(可能是清理痕迹)都值得关注。
4723 / 4724 --- 修改密码 / 重置密码
4724 是管理员重置他人密码,攻击者接管账户后常见操作;4723 是用户自行修改密码。
4728 / 4732 / 4756 --- 将成员添加到安全组
提权与持久化的核心信号:
- 4732 :添加到本地安全组(如本地
Administrators)。 - 4728 :添加到全局安全组(如域
Domain Admins)。 - 4756 :添加到通用安全组(如
Enterprise Admins)。
任何账户被加入高权限组都应是 SOC 的红线告警,尤其是 Domain Admins / Enterprise Admins。
4738 --- 用户账户被更改
账户属性(如 UAC 标志、密码永不过期)被修改时记录,可用于发现账户被恶意改造。
4740 --- 账户被锁定
频繁锁定可能是暴力破解的副作用,也可能影响业务,需结合 4625 一起分析。
三、进程与执行类(Process Execution)
还原攻击者"执行了什么命令"的核心证据。
4688 --- 创建新进程
威胁狩猎的基石 。开启"命令行审计"后,4688 会记录完整的命令行参数,可用于发现可疑的 powershell -enc、certutil 下载、whoami/net group 等侦察命令,以及父子进程异常(如 winword.exe 派生 cmd.exe 强烈暗示钓鱼文档)。
配置建议: 默认 4688 不记录命令行。务必通过组策略开启 "Include command line in process creation events",否则检测价值大打折扣。
4689 --- 进程退出
用于补全进程生命周期,做时间线分析时有用。
四、权限与策略类(Privilege & Policy)
4673 / 4674 --- 调用特权服务 / 对特权对象的操作
记录敏感权限的使用,数据量较大,通常按需开启用于深度调查。
4719 --- 系统审计策略被更改
攻击者为躲避检测会关闭审计。任何对审计策略的修改都应告警------这往往是攻击者"清场"的前兆。
五、对象访问与文件共享类(Object Access)
4663 / 4656 / 4660 --- 对象访问 / 请求句柄 / 删除对象
需要配置 SACL(系统访问控制列表)才会生成,用于监控对敏感文件/注册表的访问与删除。
5140 / 5145 --- 访问网络共享 / 共享对象详细审计
横向移动检测利器 。攻击者通过 \\target\C$、ADMIN$ 等管理共享访问远程主机时触发。关注对 IPC$、C$、ADMIN$ 的异常访问。5145 提供文件级别的更细粒度审计。
六、服务与计划任务类(Persistence)
攻击者最爱的持久化手段。
7045 --- 安装新服务(System 日志)
经典持久化检测项。许多攻击工具(如 PsExec、Cobalt Strike 的服务横向)会安装服务。关注服务名随机、可执行路径位于临时目录、ImagePath 含编码 PowerShell 等特征。
7040 --- 服务启动类型被更改
例如把某服务从"手动"改为"自动启动",可能是为持久化做铺垫。
4697 --- 安装服务(Security 日志)
与 7045 类似但记录在安全日志,信息更丰富(含触发账户),便于关联分析。
4698 / 4699 / 4700 / 4702 --- 计划任务 创建 / 删除 / 启用 / 更新
计划任务是头号持久化手段之一 。4698(创建)最为关键,需重点关注 Actions 字段中的可疑命令。删除(4699)可能是攻击者清理痕迹。
七、PowerShell 类
PowerShell 是攻击者的"瑞士军刀",针对性日志极其重要。
4104 --- 脚本块日志(Script Block Logging)
检测无文件攻击与恶意脚本的王牌 。记录实际执行的脚本块内容,即使经过混淆也能捕获。关注 IEX、DownloadString、-enc Base64、FromBase64String 等关键字。日志位于 Microsoft-Windows-PowerShell/Operational。
4103 --- 模块日志(Module Logging)
记录管道执行细节与命令调用,与 4104 互补。
400 / 403 --- PowerShell 引擎启动 / 停止
记录 PowerShell 引擎生命周期,可用于发现 PowerShell 版本降级攻击(如强制使用 v2 绕过日志)。
八、日志清除与防取证类(Anti-Forensics)
攻击者收尾阶段的标志性动作,几乎都应是高危告警。
1102 --- 审计日志(安全日志)被清除
清除安全日志的直接证据。正常运维极少这样做,出现即高危。
104 --- 事件日志被清除(System 日志)
清除其他日志通道(如 System、Application)时记录。
九、Sysmon(强烈推荐部署)
Sysmon 是微软 Sysinternals 的免费工具,提供远超原生日志的可见性,是现代 SOC 的标配。日志位于 Microsoft-Windows-Sysmon/Operational。
| Sysmon ID | 含义 | 检测价值 |
|---|---|---|
| 1 | 进程创建 | 含完整命令行、哈希、父进程,远胜 4688 |
| 3 | 网络连接 | 检测 C2 外联、异常端口通信 |
| 7 | 镜像(DLL)加载 | 检测 DLL 侧加载、可疑模块注入 |
| 8 | CreateRemoteThread | 检测进程注入(经典攻击技术) |
| 10 | 进程访问 | 检测对 lsass.exe 的访问(凭据窃取) |
| 11 | 文件创建 | 检测恶意文件落地 |
| 13 | 注册表值设置 | 检测注册表持久化(如 Run 键) |
| 22 | DNS 查询 | 检测 DNS 隧道、恶意域名解析 |
其中 Sysmon Event ID 10 监控对 lsass.exe 的访问,是检测 Mimikatz 等凭据转储工具的核心手段之一。
十、登录类型(Logon Type)对照表
分析 4624/4625 时,登录类型比事件本身更重要。下面这张表请务必记牢:
| Logon Type | 名称 | 典型场景 | 安全关注点 |
|---|---|---|---|
| 2 | Interactive | 本地键盘登录 | 服务器上出现交互登录需留意 |
| 3 | Network | 访问共享、网络认证 | 横向移动主要途径 |
| 4 | Batch | 计划任务 | 异常批处理登录 |
| 5 | Service | 服务账户启动 | 服务账户被滥用 |
| 7 | Unlock | 解锁屏幕 | --- |
| 8 | NetworkCleartext | 明文网络认证 | 凭据明文传输,风险高 |
| 9 | NewCredentials | runas /netonly |
常见于凭据滥用/横向 |
| 10 | RemoteInteractive | RDP 远程桌面 | 重点监控的远程访问 |
| 11 | CachedInteractive | 使用缓存凭据登录 | 离线/断域登录 |
十一、常用事件 ID 速查总表
收藏这一张表,覆盖 SOC 日常 90% 的分析场景。
| Event ID | 日志来源 | 含义 | 主要使用场景 |
|---|---|---|---|
| 4624 | Security | 账户成功登录 | 登录行为分析、异常登录、横向移动 |
| 4625 | Security | 账户登录失败 | 暴力破解、密码喷洒检测 |
| 4634 / 4647 | Security | 注销 / 主动注销 | 会话时长、登录配对分析 |
| 4648 | Security | 使用显式凭据登录 | 横向移动、凭据滥用 |
| 4672 | Security | 分配特殊(管理)权限 | 特权登录监控 |
| 4768 | Security | 请求 Kerberos TGT | 域登录认证分析 |
| 4769 | Security | 请求 Kerberos 服务票据 | Kerberoasting 检测 |
| 4771 | Security | Kerberos 预认证失败 | 域环境暴力破解检测 |
| 4776 | Security | NTLM 凭据验证 | NTLM 暴破、PtH 辅助检测 |
| 4720 | Security | 创建用户账户 | 后门账户检测 |
| 4722 / 4725 / 4726 | Security | 账户 启用 / 禁用 / 删除 | 账户生命周期异常 |
| 4723 / 4724 | Security | 修改 / 重置密码 | 账户接管检测 |
| 4728 / 4732 / 4756 | Security | 添加成员到 全局/本地/通用 组 | 提权与持久化(高危) |
| 4738 | Security | 用户账户被更改 | 账户属性被恶意修改 |
| 4740 | Security | 账户被锁定 | 暴力破解副作用、业务影响 |
| 4688 | Security | 创建新进程 | 命令行审计、威胁狩猎 |
| 4689 | Security | 进程退出 | 进程生命周期、时间线 |
| 4673 / 4674 | Security | 调用特权服务 / 操作特权对象 | 敏感权限使用深度调查 |
| 4719 | Security | 系统审计策略被更改 | 攻击者关闭审计(高危) |
| 4663 / 4656 / 4660 | Security | 访问 / 请求句柄 / 删除对象 | 敏感文件与注册表监控 |
| 5140 / 5145 | Security | 访问网络共享 / 共享详细审计 | 横向移动检测 |
| 5156 / 5157 | Security | WFP 允许 / 阻止连接 | 主机网络连接审计 |
| 4697 | Security | 安装服务(安全日志) | 持久化检测 |
| 4698 / 4699 / 4700 / 4702 | Security | 计划任务 增删启用更新 | 持久化检测(高危) |
| 7045 | System | 安装新服务 | PsExec / CS 横向、持久化 |
| 7040 | System | 服务启动类型变更 | 持久化铺垫 |
| 1102 | Security | 审计日志被清除 | 痕迹清理(高危) |
| 104 | System | 事件日志被清除 | 痕迹清理(高危) |
| 4104 | PowerShell/Operational | 脚本块日志 | 恶意脚本、无文件攻击检测 |
| 4103 | PowerShell/Operational | 模块日志 | 命令管道审计 |
| 400 / 403 | Windows PowerShell | 引擎启动 / 停止 | 版本降级攻击检测 |
| 1116 / 1117 | Defender/Operational | 检测到恶意软件 / 已采取措施 | 终端防护事件关联 |
| 1149 | TerminalServices | RDP 认证成功 | RDP 远程登录监控 |
| Sysmon 1/3/7/8/10/11/13/22 | Sysmon/Operational | 进程/网络/DLL/注入/lsass/文件/注册表/DNS | 高级威胁狩猎(强烈推荐) |
十二、实战建议
- 优先开启关键审计策略:默认 Windows 不会记录所有上述事件。重点开启"进程创建审计 + 命令行"、"PowerShell 脚本块日志"、"对象访问审计(按需配 SACL)"。
- 部署 Sysmon:配合社区优秀配置(如 SwiftOnSecurity、Olaf Hartong 的模板),可极大提升可见性。
- 关注"组合"而非"单点" :单个 4624 没有意义,但
4625 多次 → 4624 成功 → 4672 提权 → 4720 建号 → 7045 装服务这条链就是一次完整的入侵。学会做事件关联 与时间线还原。 - 建立基线:先了解环境中"什么是正常的",异常才会浮现。比如哪些服务账户正常会有 Type 3 登录、哪些管理员习惯走 RDP。
- 对接 SIEM:把这些 ID 写成检测规则(Sigma 规则是很好的起点),实现自动化告警,而非人工翻日志。
结语
Windows 事件日志是 SOC 分析师最朴素也最强大的武器。掌握本文这批高频 Event ID,理解它们背后对应的攻击行为,你就能在海量日志中快速锁定威胁。建议把文末的速查表收藏并打印贴在工位上,日积月累形成条件反射。