Sniffer(嗅探器)是一种常用的收集有用数据的
工具。使用这种工具,可以监视网络的状态、数据流动情况以及网络上
传输的信息。因特网
安全系统公司ISS给Sniffer下的定义为:Sniffer是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。
Sniffer的分类 Sniffer分为软件和硬件两种,软件的Sniffer有Sniffer Portable、NetXray、Packetboy、Netmonitor等,其优点是物美价廉,易于
学习使用,同时也易于交流;缺点是无法抓取网络上所有的传输,某些情况下也就无法真正了解网络的故障和运行情况。硬件的Sniffer通常称为协议分析仪,一般都是商业性的,价格也比较贵。
实际上本文中所讲的Sniffer指的是软件。它把包抓取下来,然后打开并查看其中的内容。Sniffer只能抓取一个
物理网段内的包,就是说,你和被监听的目标中间不能有路由或其他屏蔽
广播包的设备,这一点很重要。
网络嗅探的实现 捕获
数据包前的准备工作
在默认情况下,Sniffer Portable将捕获其接入碰撞域中流经的所有数据包,但在某些场景下,有些数据包可能不是我们所需要的,为了快速
定位网络问题所在,有必要对所要捕获的数据包作过滤。Sniffer Portable提供了捕获数据包前的过滤规则的定义,过滤规则包括2、3层地址的定义和几百种协议的定义。
定义过滤规则的一般做法
第一步
在主界面选择“Capture→Define filter”选项。
第二步
“Define filter→Address”,这是最常用的定义。其中包括MAC地址、IP地址和IPX地址的定义。
比如,现在要捕获地址为10.10.214.161(笔者的主机IP地址)的主机与其他主机通信的信息,在“Mode”选项卡中,选“Include”(选“Exclude”选项,是表示捕获除此地址外所有的数据包);在“Station”选项中,在任意一栏填上10.10.214.161,另外一栏填上Any(any表示所有的IP地址)。这样就完成了地址的定义。最后,选取“Profiles”,将定义的规则保存下来,供以后使用。
第三步
“Define filter→Buffer”,定义捕获数据包的缓冲区。“Buffer size”选项卡,将其设为12M。“Capture buffer”选项卡,将设置缓冲区文件存放的位置。
第五步
需将定义的过滤规则应用于捕获中。点选“Select Filter→Capture”,选取定义的捕获规则。
捕获数据包时观察到的信息
点选“Capture→Start”,启动捕获引擎。Sniffer Portable可以实时
监控主机、协议、应用程序、不同包类型等的分布情况。
Dashboard:可以实时统计每秒钟接收到的包的数量、出错包的数量、丢弃包的数量、
广播包的数量、多播包的数量以及带宽的利用率等。
Host Table:可以查看通信量最大的前10位主机。
Matrix:通过连线,可以形象的看到不同主机之间的通信。
Application Response Time:可以了解到不同主机通信的最小、最大、平均响应
时间方面的信息。
History Samples:可以看到
历史数据抽样出来的统计值。
Protocol distribution:可以实时观察到数据流中不同协议的分布情况。
在捕获过程中,同样可以对想观察的信息定义过滤规则,操作方式类似捕获前的过滤规则。
捕获数据包后的分析工作
要停止Sniffer Portable捕获包时,点选“Capture→Stop”或者“Capture→Stop and Display”,前者停止捕获包,后者停止捕获包并把捕获的数据包进行解码和显示。
Decode:对每个数据包进行解码,可以看到整个包的结构及从链路层到应用层的信息。
Expert:这是Sniffer Portable提供的专家模式,系统自身根据捕获的数据包从链路层到应用层进行分类并作出诊断。
Sniffer Portable同样提供解码后的数据包过滤显示。要对包进行显示过滤需切换到Decode模式。“Display→Define filter”,定义过滤规则。“Display→Select filter”,应用过滤规则。显示过滤的使用基本上跟捕获过滤的使用相同。
Sniffer Portable还有许多其他功能,限于篇幅,此处不一一详述。