网络监视器:捕获和分析 Windows 上的网络流量
微软网络监视器(网络监控)是 Windows 的经典网络诊断工具,用于捕获和分析计算机上的所有传入和传出流量。尽管该产品已经超过3年没有开发或更新,但管理员在需要诊断网络连接时经常使用它。 NetMon 提供的功能比流行的捕获和分析工具 WireShark 少,并且不擅长复杂的数据包分析任务。然而,Network Monitor 的图形界面更加简单和直观,而且产品本身也是轻量级的。所以它的使用在某些场景下是合理且实用的。
本文介绍如何使用网络监视器实时捕获和分析网络流量并转储流量以供以后分析。
本文的想法是由我们的订阅者提出的,他收到了来自其提供商的警告,称他的 Windows VPS 服务器正被用于批量发送电子邮件。由于邮件发送的时间不同,因此无法实时跟踪哪个进程正在启动 SMTP 会话。为了找到来源,我们需要捕获标准 SMTP 端口上的所有传出流量25,587, 和465,并识别正在执行邮件的进程可执行文件或脚本。
下载微软网络监视器3.4来自 Microsoft 网站的安装程序 (NM34_x64.exe) 或使用 WinGet 包管理器安装:
winget install Microsoft.NetMon

安装完成后,以管理员身份运行网络监视器。在 NetMon 窗口中,单击新捕获。
默认情况下,网络监视器收集通过计算机网络接口的所有流量。如果您长时间捕获网络流量,则此类网络转储的大小可能会很大。在我们的例子中,我们可以设置过滤器以仅捕获已知 SMTP 端口之一上的传出网络数据包。
单击捕捉设置按钮。您可以在此处配置过滤器来描述 NetMon 应捕获的流量。有几个用于典型任务的过滤器模板加载过滤器->标准过滤器菜单。在我们的例子中,我们需要一个 TCP 端口号过滤器。选择传输控制协议->TCP端口。


以下模板代码被插入到过滤器编辑器窗口中:
tcp.port == 80 OR Payloadheader.LowerProtocol.port == 80
编辑模板规则并添加所有三个默认 SMTP 端口号:
(tcp.port == 25 OR Payloadheader.LowerProtocol.port == 25 OR
tcp.port == 587 OR Payloadheader.LowerProtocol.port == 587 OR
tcp.port == 465 OR Payloadheader.LowerProtocol.port == 465)
如果您的计算机有多个网络接口,或者有其他 IP 地址(别名)分配给适配器,您可以按源 IP 地址添加过滤器:
AND
(IPv4.SourceAddress == 192.168.18.111)


网络监视器过滤器可以使用括号和组合OR/AND/NOT逻辑表达式,或者您可以使用||,&&, 或者!反而。
单击申请按钮保存过滤器。
然后去工具->选项->解析器配置文件。选择视窗在默认解析器配置文件中(设置为活动状态)。


您现在已准备好开始捕获网络流量。单击开始工具栏上的按钮。


现在您需要重现该问题,或者如果它是随机发生的,只需让 NetMon 运行一天/一周。
请注意,根据捕获过滤器设置,长时间转储网络流量将需要大量 RAM 和磁盘空间。
参见:Bybit黑客:流量拦截和地址交换导致大规模加密货币盗窃?
在我们的例子中,一段时间后,与所应用的过滤器相对应的事件出现在 NetMon 数据包日志中。如果打开数据包的内容,您将看到已尝试建立 SMTP 连接。在网络框架内,您将看到 SMTP 协议的详细命令、身份验证尝试、目标 SMTP 服务器的地址以及消息发送到的电子邮件地址(Telnet 中用于发送带有身份验证的电子邮件的 SMTP 命令示例)。


这进程名称字段显示启动网络 (SMTP) 连接的进程的名称。在本例中,很明显 SMTP 邮件是从blat.exe控制台工具。
网络转储还包含有关我的信息powershell.exe会议。这用于检查外部服务器上端口 25 的可用性:
Test-NetConnection smtp.corpmail.com -port 25
单击停止按钮停止捕获网络流量。
生成的流量转储可以保存为*。帽文件进行离线分析。
您可以按 IP 或 MAC 目标/源地址、不同协议、端口和特殊过滤器添加其他过滤器,以分析一些流行协议(SMB、HTTP、DNS)的流量。过滤器可以应用于捕获的流量,也可以仅过滤当前会话中显示的数据(显示过滤器窗户)。
例如,如果要过滤网络帧,可以单击数据包列表中的任何值,然后选择将[某些内容]添加到显示过滤器。


在屏幕截图中,我添加了按目标 IP 地址的过滤规则。过滤器提示中添加了以下代码:
Destination == "ip_adress"


以下是常用网络监视器过滤器的一些示例。
按目标 IP 地址过滤:
IPv4.SourceAddress == 192.168.0.1
按源或目标 IP 过滤:
IPv4.Address == 192.168.0.1
按 TCP 端口号过滤:
tcp.port == 443
OR
Payloadheader.LowerProtocol.port == 443
可以指定端口范围:
(udp.Port>=10000 && udp.port<=19999)
在本文中,我们了解了如何使用 Microsoft 网络监视器捕获和分析 Windows 中的网络流量。您还可以使用内置的PktMonWindows 中的控制台命令可转储流量,而无需在每台计算机上安装网络监视器。使用此类命令行工具获取的转储可以在任何安装了 NetMon 或 Wireshark 的计算机上进行进一步分析。
