MS17-010 是什么
MS17-010 是微软在 2017 年 3 月发布的安全公告,修复 SMBv1 协议实现中的多个远程代码执行问题(对应 CVE-2017-0143 至 CVE-2017-0148)。同年 4 月公开的利用工具让未修补的机器在数小时内被批量加密,成为勒索软件传播史上的分水岭事件。它的处置要点至今仍有参考价值:一是必须同时做「打补丁」与「关协议」两件事,二是 445 端口是横向移动的主通道,仅靠边界防护远远不够。
基本信息
| 公告编号 | MS17-010(2017 年 3 月) |
|---|---|
| 关联 CVE | CVE-2017-0143 至 CVE-2017-0148 |
| 受影响服务 | SMBv1,默认端口 445,早期环境还有 139 |
| 影响系统 | 当时仍受支持的 Windows 版本,以及停产但仍在内网运行的老系统 |
| 处置要点 | 安装公告对应补丁 + 关闭 SMBv1 + 限制 445 访问来源 |
| 历史教训 | 停产系统与未打补丁的内网主机是批量传播的主要载体 |
处置动作
- 盘点内网仍开放 445 的主机,区分业务必需与非必需
- 按公告清单逐版本核对补丁,记录安装状态与验证证据
- 关闭 SMBv1 协议,确认业务不依赖旧协议后再执行
- 在网段间与主机侧限制 445 的访问来源,避免横向可达
- 停产系统若无法修补,则用网络隔离与访问控制降低可达性
- 复查历史备份与镜像,避免从旧模板批量部署出未打补丁的实例
补丁与核查
补丁与核查
补丁:MS17-010(各 Windows 版本对应 KB 见公告清单)
核查:检查 445 是否对非必要网段开放
PowerShell 参考:Get-HotFix | Where-Object {$_.HotFixID -like 'KB401*'}(按公告 KB 核对)
# 同时确认端口监听与服务状态:netstat -ano | findstr :445
# 记录内容:主机名、系统版本、补丁号、445 可达范围、核查时间关闭 SMBv1(Windows Server)
关闭 SMBv1(Windows Server)
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
# 需要重启生效;执行前确认业务未依赖 SMBv1
# 老旧的打印共享与部分备份软件可能仍依赖旧协议,先在测试机验证授权范围内的漏洞核查
授权范围内的漏洞核查
nmap -Pn -p445 --script smb-vuln-ms17-010 <target>
# 仅限自有或已获书面授权的资产
# 核查结果与补丁清单互相印证,避免只依赖单一来源两项措施的作用差别
| 措施 | 作用 | 不能替代的原因 |
|---|---|---|
| 安装补丁 | 修复协议实现缺陷 | 协议仍可被其他问题利用 |
| 关闭 SMBv1 | 切断利用协议本身 | 其他 SMB 版本问题仍需补丁 |
| 限制 445 来源 | 降低横向移动可达性 | 边界内的信任网段仍可能被穿透 |
| 隔离停产系统 | 处理无法修补的老系统 | 隔离策略需持续复核,规则会腐化 |
内网隔离不能替代修补:横向移动常走 445,内网网段之间也应有访问控制。