永恒之蓝(MS17-010)漏洞本质是SMBv1协议在srv.sys驱动中处理Trans2请求时的内核级缓冲区溢出,可远程、无认证、以SYSTEM权限执行任意代码;防御须同步打补丁(KB4012212等)、禁用SMBv1、封禁445端口并启用SMB签名。

防范永恒之蓝(MS17-010)这类无需认证、远程触发、内核级提权的网络漏洞攻击,核心是切断攻击链起点——即阻止恶意SMB数据包抵达srv.sys驱动。必须在系统层、协议层、网络层同步实施不可绕过的硬性防护措施,任何单一手段都可能被绕过。
立即安装MS17-010官方补丁
打开微软更新目录页面 https://catalog.update.microsoft.com/v7/site/Search.aspx?q=MS17-010 ,搜索对应系统版本的补丁编号(如Windows 7 x64为KB4012212),下载后双击安装。这一步不可跳过,【未打补丁的系统即使禁用SMBv1,仍可能受变种漏洞如CVE-2017-0145影响】。
安装完成后必须重启,否则补丁不生效。验证方式:在管理员权限CMD中运行 systeminfo | findstr KB4012212,有输出即表示已安装。
彻底禁用SMBv1协议
方法一:PowerShell命令(推荐,一步到位)
以管理员身份运行PowerShell,执行:Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol -NoRestart
执行后无需重启即可生效,该命令会卸载SMBv1协议栈组件,比注册表修改更彻底。
方法二:组策略禁用(适用于域环境)
运行 gpedit.msc → 计算机配置 → 管理模板 → 网络 → Lanman工作站 → 启用“禁用SMB1协议” → 设置为“已启用”。
注意:此策略仅禁用客户端发起的SMBv1连接,**不能阻止服务器端响应SMBv1请求**,必须配合方法一使用。
封堵关键攻击端口
第一步:用防火墙规则封锁入站445端口
控制面板 → Windows Defender 防火墙 → 高级设置 → 入站规则 → 新建规则 → 端口 → TCP → 特定本地端口:445 → 操作:阻止连接 → 配置文件:全选 → 名称填“Block_SMBv1_Inbound”。
第二步:关闭NetBIOS相关端口(135/137/138/139)
进入“网络连接” → 右键当前网卡 → 属性 → 取消勾选“Microsoft 网络客户端”和“Microsoft 网络的文件和打印机共享” → 点击“Internet 协议版本 4 (TCP/IPv4)” → 属性 → 高级 → WINS选项卡 → 勾选“禁用TCP/IP上的NetBIOS”。
第三步:验证端口状态
重启电脑后,在CMD中运行 netstat -ano | findstr :445,若无任何输出,说明445端口监听已关闭;再运行 sc query lanmanserver,若状态为“STOPPED”,则SMB服务已完全停用。
加固SMB服务运行环境
启用SMB签名(强制数据完整性校验)
组策略路径:计算机配置 → 管理模板 → 网络 → Lanman工作站 → 启用“数字签名安全通道” → 设为“已启用”;同路径下找到“Lanman服务器” → 启用“数字签名通信(总是)” → 设为“已启用”。
这能防止中间人篡改SMB流量,但会略微增加CPU开销,老旧设备需测试兼容性。
限制SMB服务启动类型
管理员CMD中执行:sc config lanmanserver start= disabledsc config lanmanworkstation start= disabled
此操作将SMB服务设为手动或禁用,仅在需要共享时临时启用,大幅压缩攻击面。


















