Guest 是匿名访问的入口
Windows 的来宾账户 Guest 设计上供匿名或临时访问使用,它没有口令,也无法设置口令,一旦启用就等于开了一条免凭据通道:共享访问失败时代替他人身份建立会话、远程枚举资源都可能借它完成。微软安全基线与 CIS 都要求禁用它,并且核查要落到实际状态而不是印象中的默认值——机器从旧版本升级、被镜像克隆、或有人为图方便手工启用过,都是常见的“以为关了其实开着”的来源。
基本信息
| 加固项 | 来宾账户禁用 |
|---|---|
| 适用平台 | Windows 10/11、Windows Server |
| 权限要求 | 本地管理员;域账户策略需域管理员 |
| 达标判据 | Guest 账户 Enabled 为 False |
| 检查范围 | 本地 Guest、域 Guest、匿名共享与空口令限制 |
典型使用场景
- 新装或克隆的服务器做基线初始化
- 等保与 CIS 核查身份鉴别类条款
- 排查“为什么匿名也能访问共享”这类问题
- 接管历史较久的机器时清点遗留的来宾启用状态
- 安全事件排查中确认有无匿名会话记录
核查与禁用
核查与禁用
net user guest # 查看账户状态:Account active 为 No 表示已禁用
Get-LocalUser -Name Guest | Select-Object Name, Enabled # PowerShell 视角
Disable-LocalUser -Name Guest # 禁用来宾账户
Get-LocalUser -Name Guest | Select-Object Name, Enabled # 复核顺带核查匿名相关设置
顺带核查匿名相关设置
# 匿名共享访问与空口令限制(本地安全策略中可查)
secedit /export /cfg C:\evidence\secpol.cfg && findstr /i "GuestName LSAAnonymousNameLookup LimitBlankPasswordUse RestrictAnonymous" C:\evidence\secpol.cfg
Get-SmbShare | Select-Object Name, Path # 盘点共享,确认是否有依赖来宾的共享
Get-SmbShareAccess -Name <共享名> # 看共享权限里是否出现 Everyone 或 Guest核查点与判读
| 检查项 | 达标表现 | 风险表现 |
|---|---|---|
| 本地 Guest 账户 | Enabled=False | 启用即可免凭据访问 |
| 域 Guest 账户 | 默认禁用且未被启用 | 域级匿名入口,影响面大 |
| 空口令限制 | 限制本地账户使用空口令登录 | 为匿名会话创造条件 |
| 匿名枚举限制 | 不允许匿名枚举账户与共享 | 攻击者可批量探测目标 |
| 共享权限 | 不含 Everyone 或 Guest 的写权限 | 匿名可写共享是勒索病毒的常见传播路径 |
禁用不等于删除:部分遗留匿名共享依赖 Guest 身份建立会话,直接禁用会让依赖它的业务失败。操作前先盘点共享权限与访问主体,确认没有业务依赖后再禁用;反过来,也不要因为“有共享”就长期保留启用状态,两者要一并治理。
域环境里 Guest 是两层:域内置 Guest 账户默认禁用,但这不代表成员机的本地 Guest 也被禁用。批量核查应当覆盖每台成员机的本地账户状态,并同时检查匿名枚举与空口令限制这几项相关设置,只关账户而放开匿名枚举仍然留有探测面。