有多家公司都推出过用于捕获网络流量并进行分析和查看的流量分析器,而且都当仁不让地取名为Network Monitor!。客观讲,微软的NM(Network Monitor)并非领袖,很象IE;它最初的NT 4.0版本主要有两个:一个是作为Windows Server 2003的免费附件;另一个相当于是适用于SMS用户的混合模式下的溴探程序。
    不过,微软在去年低调推出的NM3.0却显示出诱人的成熟感,并已经具备第三方工具如WireShark (以前的名称是"Ethereal")的酷劲,笔者曾经去http://connect.microsoft.com/荡一个,马上发现它的无线溴探功能以及右点鼠标就会生成的过滤方式。

微软新版的NM3.1是紧随Vista后尘而至,看上去不乏迷人之处,主要包括以下几方面:
(一)基于Vista 的Wireless (802.11) 捕获和监视模式。只要你有支持硬件(Native WIFI),就可以对无线管理包进行跟踪,你可以扫描无线NIC所支持的所有通道或子网,也可以聚焦特定通道,可以对通常的无线帧显示出元数据,并看到信号强度和传输速度。
(二)先前在XP中的RAS跟踪功能今天在Vista中也能查看到×××信道流量。
(三)可以在线升级,而且能够轻易生成过滤器——只需右点鼠标,对帧数据元素或帧分类中的行右点就可选中过滤,而且在界面上能够看到过滤器的工具条。
(四)加入了多项最新的公用型分析器——计有:ip1394, ipcp, ipv6cp, madcap, pppoE, soap, ssdp, winsrpl。而且装载分析器的时间也大大提高了。
     从使用功能上讲,NM主要包括三部分内容,即捕获网络数据、对捕获数据进行分析以及使用过滤器。Network Monitor 3.1能够捕获本机所有连接的网流数据,无论有线还是无线。在默认时,NM仅捕获通过过滤器的帧,用户可以设置成以"p-mode" (promiscuous mode)方式捕获,当然这么做导致的结果是网卡帧负荷加大,机器需要处理更多的帧数。NM也支持并行运行多个捕获sessions,当它打开捕获空间后,被捕获的帧就会实时地显示出来。启动一个捕获session的方法是,(1)从开始页面点击Create a new capture tab…或者从File菜单点击New >> Capture….;(2)在Select Networks窗口内选择要捕获帧的网;(3)在Filter窗口内设置在捕获session内想要应用的任何过滤器,然后在Capture菜单内点击Start。
    这里有必要介绍一下网卡配置内容,比如对于RAS/×××连接方式在捕获流时,在Vista下应选NDISWANBH adapter,在Windows Server 2003和XP下应选WAN Miniport adapter;在默认下,Network Monitor 3.1会捕获局域流,如果要以p-mode捕获,可选择有关适配器并点击P-mode图符或在"Properties"对话框中选中"P-mode"。读者感兴趣的可能是无线网流的捕获,为此需要选择Wireless Network Connection适配器,确切说,Network Monitor 3.1捕获的是局域网下的无线网流,在局域网模式下,无线网卡连接的是特定物理层(802.11/a, b or g)的AP段;在监视模式下,无线网卡会中断所有数据连接,能够扫描多个物理层数据和管理帧中的多个通道。在监视模式下配置无线网卡的方式是:点击无线网卡进入"Properties"对话框,点击"Scanning Options"按钮启动WiFi Scanning Options管理器,然后切换到监视模式下选中要扫描的物理层和通道,为了捕获,需要让Scanning Options管理器保持打开;关闭管理器将会将所有无线网卡恢复为局域网模式。
    接下去,就需要对捕获的数据进行分析。当NM3.1捕获网帧时,它会生成临时文件用于存储运行的每个session所捕获的数据,在默认时这些文件会保存在临时文件夹内。你可以指定文件的最大值,默认是20 MB,并指定占用磁盘空间的百分比,默认是2%。具体设置可通过Tools菜单,选择Options和Capture栏目。保存捕获数据的方法是,选择菜单File >> Save,选好存放路径,选择"displayed frames," "all frames,"等后点击Save。
    对捕获的数据进行分析,通常是在帧分类窗口中进行。在主工具栏中使用Go to Frame图标可以直接进入到任何帧,使用Find Frame功能(或 CTRL+F)可以搜索到下一个帧,可以在过滤器中装载或显示。在捕获空间的Frame Summary窗口内,点击你想要进行分析的帧(通过SHIFT键和鼠标左键可以选中一组帧),对选中帧右点鼠标就会看到菜单项View Selected Frame(s) in a New Window,点选之后就会看到Frame Summary, Frame Details以及Hex Details窗口。有很多协议在发送时会超过底层协议中的“协议数据单元”,所以它们必须将数据规整到多个帧当中,NM3.1可以利用协议分析器对帧进行规整,具体实现方式是:装入已有的捕获文件(规整只适用于历史帧),选择Frames >> Reassemble All Frames,它会打开一个独立的Reassembled Capture窗口,它往往需要数分钟,这取决于捕获文件的大小和系统可用资源,规整后的帧会标识为"PayloadHeader"插入到帧首,它可以作为定位这些帧的过滤器。
    现在,要介绍的是Network Monitor 3.1中一个十分重要的功能:过滤。运用过滤器,你可以捕获或显示满足设定策略的那些帧。你可以对任何协议、协议元素或属性进行过滤,比如你可以仅仅捕获来自特定IP地址的帧。NM 3.1提供了标准的内置过滤器,你也可自制过滤器,你可以从网络捕获数据中直接建立过滤器,只要在Frame Details窗口中右点击协议属性就能对显示数据生成过滤器。当你制作好过滤器后,可使之生效,并且能够保存或重载。任何过滤器既可作为捕获过滤器也可作为显示过滤器,例如:
"TCP": 表示仅对包含TCP协议的帧有效。
"TCP or UDP": 适合于包含TCP或UDP协议的帧。
"IPv4.sourceaddress==10.1.1.1": 仅能够通过源自10.1.1.1的IPv4的帧。
     更具体地说,如果你需要看到调用TCP 端口 0x1234的所有帧,而且是来自特定的10.0.0.1,你就可以输入:Tcp.Port==0x1234 AND IPv4.address==10.0.0.1。注意并非一定要指明源和目标端口或者源和目标地址,这是因为NM 3.1所具有的“配对”(PAIRs)原理,例如Tcp.Port==0x1234等价于Tcp.SrcPort==0x1234 || Tcp.DstPort==0x1234;以及你可以使用IPv4.SourceAddress==10.0.0.1。
     为了增加本文的实用性,这里再举几个过滤器的用例:
例1://对IPv6 地址采用的过滤器,假如你的机器尚未安装IPv6,你有必要使用16进制地址:
IPv6.Address == 3ffe:2900:d005:f282:b8df:3ec8:8a61:a06b
例2:// 察看源和目标节点之间的IPv4 流:
IPv4.Address==10.0.0.1 and IPv4.Address==10.0.0.222
例3://往返于正在捕获机器的IPv4地址的数据流,也许该机器有多块网卡:
IPv4.Address == IpConfig.LocalIpv4Address
例4://不显示宽带帧,有几种方法:
Ethernet.DestinationAddress != 0xFFFFFFFFFFFF
Ethernet.DestinationAddress!=FF-FF-FF-FF-FF-FF
Ethernet.DestinationAddress!= BROADCAST
例5:// Ethernet源或目的地址:
Ethernet.Address == 01-02-03-04-05-06
例6:// 不显示RAS 帧:
NOT EAPOL  and  NOT EAP  and  NOT GRE  and  NOT PPTP  and  NOT PPP
例7:// 不显示终端服务或Citrix帧
!(Tcp.port == 3389) and !(Tcp.port == 1494) and !(Tcp.port == 1503)
例8://发现某个web页面字符串(URI or URL):
Contains(Http.Request.URI,"msn.com")
例9:// SMB Client Request & Server Response
SMBRequestNTCreateAndX or SMBResponseNTCreateAndX
例10:// 搜索 TCP Payload 的格式为Ascii或Unicode数据,它不适用于二进制数据:
property.TCPPayload.contains("BORDER-BOTTOM")
例11:// 查找帧开始的前8bytes:
UINT8(FrameData, 7)==0x11
     最后再介绍一下,在命令行下还可以使用Nmcap.exe,它是Network Monitor 3.1安装目录自带的一个小工具,输入Nmcap /?和Nmcap /examples即可获得帮助和用例,你还可以用它清除所保存的文件、过滤帧,当然还可将它们保存在新的捕获文件中。

文章如转载,请注明转载自【网管小王的独立博客】:http://www.5iadmin.com/