用 Wireshark 看懂扫描与真实攻击——永恒之蓝(MS17-010)告警研判指南
原创
小新
小新
小新的安全运营笔记
2026年11月2日 08:00
北京
去阅读
一、收到永恒之蓝告警,就代表主机被攻击了吗?
在日常安全运营和流量监测中,我们经常会遇到一类告警:MS17-010 漏洞扫描攻击,也就是大家熟悉的「永恒之蓝」攻击。看到这类告警,很多人的第一反应是:是不是内网主机已经被攻击了?是否存在勒索病毒传播?需要立即隔离吗?
但实际上,收到永恒之蓝告警,并不意味着攻击已经成功。有些告警只是扫描器在探测目标是否存在漏洞,有些则可能已经进入漏洞利用阶段。两者的风险完全不同。因此,面对这类告警,不能只看安全设备的告警名称,还需要结合网络流量进行分析。
这篇文章就以 Wireshark 为例,介绍如何通过 SMB 流量判断永恒之蓝扫描行为、利用尝试,以及是否存在攻击成功的迹象。
二、先了解永恒之蓝攻击原理
永恒之蓝(EternalBlue)是利用 Windows SMBv1 协议漏洞的一种攻击方式,对应 MS17-010 安全公告,其中 CVE-2017-0144 是最具代表性的漏洞之一。SMB 是 Windows 系统中常见的文件共享协议,通常使用 TCP 445 端口。
简单来说,攻击者可以向存在漏洞的 Windows 主机发送特殊构造的 SMB 请求,触发内核中的缓冲区处理问题,最终实现远程代码执行(RCE)。如果攻击成功,攻击者就可能进一步植入后门、执行恶意程序,甚至传播勒索软件。
这里需要注意:扫描漏洞和利用漏洞是两个不同阶段。
三、永恒之蓝攻击流量有哪些特征?
要通过 Wireshark 研判,首先需要了解 SMB1 通信的大致过程。一次典型的 SMB1 利用通信,可以分为以下几个阶段:
- TCP 握手:客户端连接目标主机的 445 端口。
- SMB 协商:双方协商 SMB 协议版本。
- 会话建立:通过 Session Setup 建立会话。
- 树连接:连接目标共享资源,例如
IPC$。 - 漏洞利用:发送特殊构造的
Trans2或NT_TRANSACT请求。 - 后续载荷:继续发送分片数据,尝试执行恶意代码。
- 利用后行为:可能出现后门植入、异常外联等行为。
其中,前面几步并不一定代表攻击。正常的 Windows 文件共享、域环境通信,也可能出现 SMB 协商和 IPC$ 连接。真正需要重点关注的是第五、六步:是否出现异常构造的 Trans2 或 NT_TRANSACT 请求。
重点关注的 SMB 命令码
这些命令码可以帮助我们快速定位 SMB 通信中的关键行为,但不能单独作为攻击成立的证据。
| 命令码 | 含义 | 研判作用 |
|---|---|---|
0x72 |
SMB 协商 | 判断 SMB1 通信 |
0x73 |
会话建立 | 观察账号及认证情况 |
0x75 |
树连接 | 判断是否连接 IPC$ |
0x32 |
Trans2 | 重点关注事务请求 |
0x33 |
Trans2 Secondary | 关注后续分片数据 |
0xA0 |
NT\_TRANSACT | 重点关注异常请求 |
0xA1 |
NT\_TRANSACT Secondary | 关注后续分片数据 |
四、实战:使用 Wireshark 分析永恒之蓝流量
假设安全设备产生了一条 MS17-010 告警,我们拿到了对应的 PCAP 抓包文件。应该从哪里入手?
1. 定位 SMB 流量
首先,在 Wireshark 过滤栏输入:
tcp.port == 445 && smb
这里可以筛选 TCP 445 端口上的 SMB1 流量。观察通信双方的 IP 地址、连接时间以及数据包数量,初步确认是否存在 SMB1 通信。
2. 查看 SMB 协商和会话建立
分别使用以下过滤器:
smb.cmd == 0x72
查看 SMB 协商请求。
smb.cmd == 0x73
查看会话建立情况。
smb.cmd == 0x75
查看树连接行为。
重点关注两个信息:连接的共享资源是否为 IPC$;会话使用的是匿名账号、Guest,还是正常域账号。如果连接 IPC$ 后没有继续出现异常操作,可能只是一次漏洞探测或服务识别行为。但这还不能直接下结论,需要继续分析后续流量。
3. 重点排查漏洞利用载荷
这是整个研判过程中最关键的一步。输入以下过滤器:
smb.cmd == 0x32 || smb.cmd == 0x33 || smb.cmd == 0xa0 || smb.cmd == 0xa1
这些命令涉及 Trans2 和 NT_TRANSACT 事务通信。需要进一步检查:是否存在异常构造的请求;是否出现连续的大量分片数据;请求与响应是否存在异常;是否出现与漏洞利用相符的载荷特征。
注意: 不能看到
0x32或0x33就认定发生了永恒之蓝攻击。这两个命令在正常 SMB 文件操作中也非常常见。
另外,也可以使用:
_ws.malformed && tcp.port == 445
筛选 Wireshark 无法正常解析的 SMB 流量。但这里有一个非常容易踩坑的地方:Malformed 并不一定意味着攻击者构造了恶意数据。如果抓包时设置了较小的截断长度(Snaplen),数据包可能只保存了一部分,Wireshark 就会将其标记为 Malformed。
因此,需要检查 Expert Information 中的解析提示。如果出现 Packet size limited during capture,就应该优先考虑抓包截断,而不是直接判定为恶意流量。
4. 检查是否存在利用后的异常行为
如果已经发现可疑的漏洞利用请求,还需要继续分析目标主机后续行为。例如:
- 是否出现异常外联?
- 是否存在可疑的反向连接?
- 是否出现 DoublePulsar 等后门相关特征?
- 目标主机是否出现异常进程或文件?
- 是否存在其他主机被横向扫描的行为?
如果发现利用载荷,同时出现后门特征或异常回连,就需要高度重视,并进一步进行主机侧取证。
五、如何区分漏洞扫描和真实利用?
实际研判时,可以参考下面这张对照表:
| 观察特征 | 漏洞扫描 / 探测 | 漏洞利用 |
|---|---|---|
| SMB1 协商 | 通常存在 | 通常存在 |
IPC$ 连接 |
可能存在 | 可能存在 |
| 异常 Trans2 请求 | 通常没有 | 重点关注 |
| 异常分片载荷 | 通常没有 | 可能存在 |
| 后门或异常回连 | 通常没有 | 可能出现 |
| 主机异常行为 | 通常没有 | 可能出现 |
这里需要强调:没有发现利用载荷,只能说明当前抓包中没有观察到相应证据,并不能绝对证明目标主机没有受到攻击。尤其是在抓包不完整、存在流量缺失的情况下,更需要结合其他安全设备和主机日志进行交叉验证。
常见研判结论
| 流量表现 | 初步研判 |
|---|---|
| 只有 SMB 协商请求 | 可能是端口或服务识别 |
协商、会话建立、IPC$ 连接,没有异常载荷 |
疑似漏洞探测 |
| 出现异常 Trans2 / NT\_TRANSACT 请求 | 疑似漏洞利用尝试 |
| 异常利用载荷,同时出现后门或异常回连 | 高度怀疑利用成功 |
六、研判完成后,报告应该怎么写?
安全运营工作中,除了分析流量,还需要形成清晰的研判结论。如果确认是扫描行为,且没有发现利用证据,可以参考:
经流量分析,该告警存在 SMB1 协商、会话建立及 IPC$ 树连接等通信行为,符合 MS17-010 漏洞探测特征。未发现明显异常 Trans2 / NT\_TRANSACT 利用载荷及后续异常回连行为,初步判定为漏洞扫描或探测阶段行为,暂未发现实际利用成功证据。建议进一步核查扫描源 IP 资产归属及目标主机补丁情况。
如果发现异常利用载荷,则应进一步核查目标主机状态,必要时启动应急响应。
七、总结
永恒之蓝虽然是一个已经存在多年的漏洞,但在安全运营中,相关扫描和利用告警依然值得关注。
面对 MS17-010 告警,不能仅凭 TCP 445 端口通信、IPC$ 连接或者某一个 SMB 命令码就认定攻击成立。真正有效的研判方式,是结合 SMB 通信过程,重点分析 Trans2、NT_TRANSACT 等请求是否存在异常构造,再结合后门特征、异常外联和主机侧证据判断攻击是否成功。
发现 SMB 流量只是开始,识别异常载荷才是关键,确认主机是否受到影响才是最终目的。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论