这条条目在查什么
Windows 本地账号核查就三件事:管理员组里有哪些成员、有没有启用且免密的账号、默认账号(尤其是 Guest)是否已禁用。任何一项异常都足以构成事件级发现——多一个管理员成员意味着多一条完整控制权路径,免密启用账号意味着无需凭据即可交互登录。核查要直接输出清单,而不是只看一眼确认没问题。
基本信息
| 加固项 | 本地账号与管理员成员管理 |
|---|---|
| 适用平台 | Windows 10/11 与 Windows Server 2016+ |
| 风险等级 | 高 |
| 判读 | 管理员清单与授权名单一致,Guest 处于禁用状态 |
| 执行权限 | 需要管理员权限打开 PowerShell |
典型使用场景
- 交付核查:确认设备上不存在未授权的本地管理员
- 事件响应:攻击者常新建本地账号或把普通账号加入管理员组
- 离场处理:人员变动后清点管理员组成员并收回权限
- 巡检取样:抽查一批终端,横向比较账号基线是否漂移
- 合规测评:身份鉴别条款要求默认账户已改名或禁用,且权限最小化
核查命令
核查命令
Get-LocalUser | Select-Object Name,Enabled,LastLogon,PasswordRequired
Get-LocalGroupMember -Group Administrators | Select-Object Name,PrincipalSource
Get-LocalUser | Where-Object { $_.Enabled -and -not $_.PasswordRequired }
Get-LocalUser | Select-Object Name,Enabled,PasswordLastSet,PasswordExpires
net localgroup Administrators # 传统命令交叉确认关键字段读法
| 字段 | 含义 | 异常表现 |
|---|---|---|
| Enabled | 账号是否启用 | 出现不认识且启用的账号要立即核实 |
| PasswordRequired | 是否要求口令 | 启用且为 False 即免密登录,属高危 |
| LastLogon | 最近登录时间 | 长期未登录却启用,或刚被使用过的陌生账号 |
| PrincipalSource | 账号来源 | Local 为本地账号,域账号来自目录服务 |
| PasswordLastSet | 口令最后设置时间 | 多年未改的口令,或空值表示从未设置 |
隐藏账号要一并排查:注册表 SAM 中特定标志位被置位的账号在常规界面与部分命令输出中不可见,处置前先取证。发现异常账号时不要直接删除,先导出管理员组成员与账号属性作为证据,再按事件流程处置。
域环境下本地列表只是局部:域账号不出现在 Get-LocalUser 中,需要结合组策略与域控数据核查。部分时间字段在域环境中受复制延迟影响,判定时以域控侧记录为准,不要把延迟当成异常。
输出如何归档
建议把三份输出合并成一张账号台账:账号名、是否启用、是否要求口令、最近登录、所属组、来源。台账按季度更新并与上期比对,新增的管理员成员必须有对应的授权记录。这种表格化留档在评审与内部审计中都能直接复用,比零散的截图更实用。