SMB空会话

1. 检测SMB空会话

使用 smbclient 推荐(另外两款工具有时候无法枚举成功)

smbclient -N -L //10.10.11.174

使用 nxc

nxc smb authority.htb -u guest -p '' --shares
nxc smb authority.htb -u '' -p '' --shares  #当guest被禁止登录时
nxc smb authority.htb -u '' -p '' --shares  --local-auth

Pasted image 20250807221516.png

其中:SYSVOL NETLOGON IPC$ 目录是默认就有的, 一般不需要太关系,主要看是否对其他目录有 访问权限

其他检测方法

smbclient -N -L //10.10.11.222

2. 后续利用

连接SMB共享 推荐使用 impacket-smbclient

smbclient -U 'anonymous' //192.168.56.156/IPC$
smbclient -U 'levi.james%KingofAkron2025!' //10.10.11.70/NETLOGON

下载整个目录(SMBClient中)

prompt off #关闭下载提示
recurse true #递归下载所有子目录和其中的文件
mget PWM #下载对应的文件夹

3. 介绍

SMB 空会话可用于从活动目录中检索数据,例如所有用户的列表和密码策略
以下是此漏洞的在不同版本下的默认配置

Windows 版本 SMB 空会话默认启用? 备注
Windows NT 4.0 传统默认设置
Windows Server 2000 是(如果在安装 AD 时选择了与 Windows 2000 之前版本兼容的权限) 管理员在 DCPROMO 期间选择
Windows Server 2003 是(如果在安装 AD 时选择了与 Windows 2000 之前版本兼容的权限) 管理员在 DCPROMO 过程中选择
Windows Server 2008 及更高版本 默认情况下未启用 必须手动启用让 Everyone 权限应用于匿名用户的组策略,并视需要修改 Pre-Win 2000 组
域控制器升级 (2003 -> 2008 -> 2012 等) 是(如果先前已启用,除非被移除,否则将保持原状) 空会话配置在就地升级期间会被保留,除非被清理

注: 如果这个设置之前被开启过,哪怕是 20 年前开启的,即使域控制器随着时间的推移进行了迭代升级,除非手动移除,否则该设置仍会保留

如何修复:
通常从从 Pre-Windows 2000 Compatible Access 组中移除 Everyone 组即可解决问题。
此外还应该检查组策略中的 Default Domain Controllers Policy ,并确保 Network access: Let Everyone permissions apply to anonymous users 已禁用
检查流程: Computer Configuration --> Windows Settings --> Security Settings --> Local Policies --> Security Options 然后 gpupdate