账号管理事件(4720 系列)
Windows 安全日志里的账号管理审核事件覆盖账号从创建到删除的全生命周期:4720 创建账号、4722 启用、4723/4724 修改或重置密码、4725 禁用、4726 删除、4732 加入本地组、4738 属性变更、4740 账号锁定。每条事件都同时记录操作者(SubjectUserName)与目标账号(TargetUserName),因此后门账号从创建、加组到提权的动作可以被逐条还原成时间线,是主机持久化排查的首选入口。
基本信息
| 适用平台 | Windows 7/10/11 与 Windows Server 2008 R2 及以上 |
|---|---|
| 日志位置 | 本地账号:本机 Security 日志;域账号:记录在域控制器 Security 日志 |
| 前置条件 | 需开启“审核账户管理”策略,默认域策略通常已开启 |
| 核心字段 | SubjectUserName(操作者)、TargetUserName(被操作账号)、MemberName(加组对象)、SidHistory |
| 关联事件 | 4624 登录、4672 特权分配、4728/4732 组成员变更 |
典型使用场景
- 排查后门账号:事件窗口内出现非计划内的 4720 创建记录
- 还原提权路径:新建账号是否紧接着被加入管理员组(4732)
- 确认入侵者是否修改了已有账号口令(4724)以维持访问
- 清理处置前的取证:删除恶意账号前先把 4720/4732 记录连同操作者一并固定
- 与登录事件串联:新建账号首次登录时间与来源即可锁定使用方式
查询与串联
查询与串联
# 拉出账号管理相关事件,按时间正序看生命周期
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4720,4722,4724,4725,4726,4732,4738,4740} -MaxEvents 100 |
Sort-Object TimeCreated | Select-Object TimeCreated, Id, Message | Format-List
# 只看创建与加组,快速判断后门账号链路
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4720,4732} |
Select-Object TimeCreated, Id, @{n='Brief';e={$_.Message -split "`n" | Select-Object -First 8}}
# 用账号首次登录时间闭环(4720 与 4624 对照)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 500 |
Where-Object { $_.Message -match 'TargetUserName' } | Select-Object TimeCreated, Message事件 ID 速查
| 事件 ID | 含义 | 判读要点 |
|---|---|---|
| 4720 | 创建用户账号 | 比对变更单与运维窗口,非计划即为重点 |
| 4722 / 4725 | 账号启用 / 禁用 | 启用长期停用的账号可能是攻击者激活后门 |
| 4723 / 4724 | 用户改密 / 管理员重置密码 | 4724 由他人执行,操作者字段是关键 |
| 4726 | 删除账号 | 处置期删除属正常,事件窗口内删除需核对授权 |
| 4732 / 4733 | 加入 / 移出本地组 | 加入管理员组是最直接的提权证据 |
| 4738 | 账号属性变更 | 常见于改“密码永不过期”等持久化设置 |
本地账号事件只写在本机安全日志,域账号事件写在域控制器上;只查受检主机很容易得出“没有账号变更”的错误结论,域环境必须补查域控。
事件里的操作者字段在被调用的服务或计划任务触发时可能显示为 SYSTEM 或机器账号,此时要回溯其宿主进程(父进程、计划任务定义)才能定位真实发起方。