Windows SMB共享需从协议版本、签名机制、权限模型和访问控制四层面加固:禁用SMBv1,强制启用SMBv2/3及签名,关闭空密码与匿名共享,启用加密并禁用压缩,防火墙限445端口。
windows smb共享若配置不当,极易成为内网横向移动的入口。修复不是简单打补丁,而是从协议版本、签名机制、权限模型和访问控制四个层面系统加固。
禁用SMBv1并确认SMBv2/3启用
SMBv1存在MS17-010(永恒之蓝)等十余个高危CVE,23%的企业服务器仍在使用它。必须彻底禁用:
- 管理员运行PowerShell,执行:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force - 确保SMBv2与v3已启用:
Set-SmbServerConfiguration -EnableSMB2Protocol $true -EnableSMB3Protocol $true -Force - 验证命令:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol, EnableSMB3Protocol
输出中仅后两者为True才表示生效
强制启用SMB签名防中间人攻击
未启用签名时,攻击者可在局域网内篡改或重放SMB数据包,构成中危风险。该机制默认客户端开启、服务器端未强制:
将提醒同步至 Windows/Outlook 日历。用户提及「提醒我」「设置提醒」「加到日历」「同步到日历」「日程」「calendar」「日历」时触发。支持Microsoft Graph API 设备代码流认证,无需 Web 服务器,直接写入用户 Outlook 日历。
- 打开gpedit.msc → 计算机配置 → Windows设置 → 安全设置 → 本地策略 → 安全选项
- 定位并启用两项策略:
• Microsoft网络服务器:数字签名通信(始终)
• Microsoft网络客户端:数字签名通信(始终) - 执行gpupdate /target:computer立即应用
关闭空密码访问与匿名共享
60%以上内网存在“Everyone/完全控制”或弱口令共享,是渗透第一跳板:
- 关闭“密码保护的共享”不等于允许空密码登录——需同步修改组策略:
本地策略 → 安全选项 → “账户:使用空密码的本地账户只允许进行控制台登录” → 设为“已启用” - 共享权限与NTFS权限必须双重校验:仅设共享权限无法阻止Linux客户端写入失败等兼容问题
- 删除所有含“Guest”“Everyone”的共享权限条目,按最小权限原则为具体用户/组授权
启用SMB加密并限制压缩功能
针对CVE-2020-0796(SMBv3远程代码执行),即使已打补丁,也建议叠加防御:
- 强制加密传输(防嗅探):
Set-SmbServerConfiguration -EncryptData $true -RejectUnencryptedAccess $true -Force - 禁用SMBv3压缩(缓解蠕虫化利用):
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "DisableCompression" -Value 1 -Type DWORD -Force - 防火墙仅放行445端口入站(禁用139端口),且限定源IP段(如仅允许办公网段)

















