账户变更事件是什么
4720 记“创建用户账户”,4726 记“删除用户账户”,它们与 4722 启用、4725 禁用、4738 修改属性一起,构成账户生命周期的审计轨迹。这些都写在 Security 通道,域账户记录在域控上,本地账户记录在各自机器上。没人申报的建号删号,是后门最直白的手法之一。
基本信息
| 适用平台 | Windows Server 2008 及以上;域控与本机各自记录 |
|---|---|
| 事件号 | 4720 创建、4726 删除、4722 启用、4725 禁用、4738 修改属性 |
| 关键字段 | 目标账户、执行者、时间、来源工作站 |
| 前置条件 | “审核用户帐户管理”策略需启用,默认在域控已开启 |
典型使用场景
- 离职流程核对:确认账号已禁用并删除,动作可在日志里逐个对上
- 入侵排查:攻击者常新建隐藏账号(末尾带 $)做持久化
- 批量建号审计:IT 批量导入后核对数量与命名规范是否一致
- 权限复核:某账户被加入高权组的时间点,与 4720/4738 连起来看
- 合规检查:人事系统账号与 AD 账号的增删记录对账
常用示例
常用示例
# 近 7 天的账户创建/删除/改属性事件
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4720,4726,4738,4722,4725; StartTime=(Get-Date).AddDays(-7)} |
Select-Object TimeCreated, Id, @{n='Target';e={$_.Properties[0].Value}}, @{n='By';e={$_.Properties[4].Value}} |
Format-Table -AutoSize
# 关注隐藏账号的常见特征:账户名以 $ 结尾
Get-ADUser -Filter 'SamAccountName -like "*$"' | Select-Object Name, SamAccountName, Enabled本机与域控各自记录:域账号的新建/删除只在域控的 Security 日志里,普通成员服务器的记录里找不到。做域级审计要把所有域控的日志都收上来。
批量建号会产生大量 4720,人工逐条看没有意义。做法是把自动化账号与批量窗口纳入白名单,只对白名单之外的建删动作告警。
账户生命周期事件对照
| 事件号 | 动作 | 审计关注点 |
|---|---|---|
| 4720 | 创建账户 | 来源工作站与执行者是否可解释 |
| 4722 | 启用账户 | 离职后重新启用要能对上审批 |
| 4725 | 禁用账户 | 离职流程是否真的执行了 |
| 4726 | 删除账户 | 删除后其权限残留是否清理 |
| 4738 | 修改属性 | 属性变更常被用来提权或留后门 |
| 4740 | 账户锁定 | 多为失败尝试或服务存了旧密码 |
日志里出现“由某服务账号创建用户”要立刻核实:自动化脚本会用自己的身份建号,一旦该服务账号泄露,攻击者就能借此长期维持访问而不惊动人工审批流程。