最直接有效的防御手段是禁止匿名用户枚举sam账户和共享,具体包括:设置restrictanonymous=1、禁用autosharewks/autoshareserver、启用组策略“不允许sam账户和共享的匿名枚举”。

要阻止他人通过IPC$空会话枚举本机用户列表、共享名和组信息,必须限制匿名访问权限,否则即使删除了ipc$共享,攻击者仍能建立空连接并调用NetUserEnum等API获取敏感信息。
禁止匿名用户枚举SAM账户和共享
这是最直接有效的防御手段,核心是让未登录用户无法通过空会话调用系统枚举接口。
方法一:修改注册表RestrictAnonymous值
以管理员身份运行regedit → 定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa → 找到或新建名为RestrictAnonymous的DWORD值 → 将其数值数据设为【1】 → 重启计算机生效。
设置为1后,空会话仍可连接ipc$,但无法获取用户列表、共享名、组策略等关键信息;若设为2,虽进一步禁用所有匿名访问,但可能导致SQL Server、Exchange等依赖空会话的服务异常启动,不建议使用。
关闭默认共享并阻断自动重建机制
默认共享(如C$、ADMIN$、IPC$)由Server服务自动创建,仅删除它们无法持久生效,必须同时禁用自动共享开关。
第一步:删除当前存在的默认共享
以管理员身份打开命令提示符 → 依次执行:
net share ipc$ /del
net share admin$ /del
net share c$ /del(如有D$、E$等,继续执行对应命令)
第二步:禁用系统自动创建默认共享的行为
regedit → 定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters → 新建一个名为AutoShareWks的DWORD(32位)值 → 将其数值数据设为【0】 → 重启生效。
该设置针对Windows专业版/家庭版;如果是服务器版,则需设置AutoShareServer=0。若该键值不存在,必须手动新建,不能跳过。
通过组策略禁用空连接枚举能力
此方法适用于Windows Pro及以上版本,操作更直观且无需手动编辑注册表,适合批量部署环境。
方法1:启用“网络访问:不允许SAM账户和共享的匿名枚举”
按Win+R输入gpedit.msc → 计算机配置 → Windows设置 → 安全设置 → 本地策略 → 安全选项 → 找到“网络访问:不允许SAM账户和共享的匿名枚举” → 双击 → 选择“已启用” → 确定。
该策略与RestrictAnonymous=1效果一致,但由组策略统一管理,优先级更高;启用后无需重启,运行gpupdate /force即可刷新策略。
方法2:禁用“对匿名连接的额外限制”中的宽松模式
在同一安全选项列表中 → 找到“对匿名连接的额外限制” → 设置为“没有显式匿名权限就无法访问” → 确定。
此项会覆盖部分旧版系统中遗留的宽松匿名策略,防止因策略冲突导致RestrictAnonymous失效。











