Windows事件日志是识别安全风险最直接可靠的本地数据源,重点监控安全日志中4625、4624(类型10)、4672、4720/4722/4738、4688等高危事件ID的异常频率或组合,并结合时间关联分析行为链,同时核查日志是否被清除(ID 1102)或审计策略被篡改(ID 4704/4719),确保日志本身可信。
windows 事件日志是识别潜在安全风险最直接、最可靠的本地数据源。它不依赖第三方软件,实时记录登录行为、权限变更、策略修改等关键操作,只要安全审核策略已启用,风险痕迹就会留下可追溯的证据。
重点关注安全日志中的高危事件ID
安全日志(Security.evtx)是发现攻击行为的第一道防线。以下事件ID出现频率异常或组合出现时,需立即核查:
- 4625:登录失败 —— 多次来自同一IP或短时间大量失败尝试,极可能为暴力破解
- 4624(登录类型10):远程交互式登录成功 —— 非工作时段、非常用IP、非管理员账户的登录需重点排查
- 4672:分配特权(如“特殊组”)—— 普通用户突然获得SeDebugPrivilege等高危权限,可能是提权前兆
- 4720 / 4722 / 4738:创建/启用/修改用户账户 —— 新建隐藏账户、启用禁用账户、修改密码策略等操作需验证来源
- 4688:进程创建 —— 结合命令行参数筛选(如含powershell、certutil、bitsadmin、curl等工具调用),可发现恶意载荷执行
结合时间与上下文做关联分析
单条日志价值有限,真正有效的风险识别依赖于时间窗口内的行为串联:
- 在4625密集发生后几分钟内出现4624(成功登录),大概率表明爆破成功
- 4720(新建用户)后紧跟4732(将用户加入Administrators组),再出现4688(以该用户启动cmd),构成完整横向移动链
- 多个不同账户在相近时间触发4662(对象访问,如读取SAM或LSASS内存),可能指向凭证窃取行为
建议使用PowerShell导出指定时间段日志后,用Excel或Log Parser按时间排序并人工标注行为序列。
检查日志配置是否被绕过或禁用
攻击者常在入侵初期尝试关闭审计功能,因此需确认日志本身是否可信:
- 查看事件ID 1102(日志已清除)—— 若频繁出现,说明有人主动擦除痕迹
- 检查事件ID 4704(用户权限分配策略更改)和 4719(系统审计策略更改)—— 是否有非管理员账户修改了“审核登录事件”“审核对象访问”等关键策略
- 右键“安全”日志 → “属性” → 确认“启用日志”已勾选,且日志大小未设为过小(默认20MB易被覆盖),归档策略合理
用 PowerShell 快速筛查可疑模式
无需图形界面,一条命令即可初步扫描风险信号:
# 查最近24小时所有登录失败 + 成功登录(排除本地控制台)
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4624,4625; StartTime=(Get-Date).AddHours(-24)} |
Where-Object { $_.Properties[8].Value -ne 2 -and $_.Properties[8].Value -ne 7 } |
Select-Object TimeCreated, Id, @{n='Account';e={$_.Properties[5].Value}}, @{n='IP';e={$_.Properties[18].Value}} | Sort-Object TimeCreated该命令过滤掉本地登录(类型2/7),聚焦远程登录行为,并输出时间、账号、源IP,便于快速定位异常地理位置或陌生账户。


















