在经历了长达6年的难产之后,Windows的新一代操作系统Vista在2007年跟大家见面了。这个由5000万行代码组成的怪物由2000个世界一流的程序员为之孵化了整整6年的时间。不容置疑,Vista将传承Windows家族的衣钵,成为新一代桌面操作系统的主流平台。
如何在迷宫一样的网络中更快捷地找到需要的资源与存在的错误以及到达目的地的道路呢?在实际的迷宫中我们可以使用指南针,而在网络中我们则使用工具软件。
 
网络是一个很广泛的概念,其中包括了很多的内容。其最基础的内容就是构成网络的所有硬件设备和运行在这些设备上的协议和基础软件。没有这些网络的基础,任何使用网络的服务都没有办法运行。如何保证这些网络基础的正常运行就是每一个网络工程师的工作。
 
随着网络的发展,网络互连的范围在不断地扩大,每一个网络工程师的负担也越来越重,如何使用最简单、快捷的方式诊断网络中的故障成了每一个网络工程师必要的研究主题。通过使用相应的工具软件是一个很好的解决方式。Vista自身的网络工具(如图1)过于简单无法完成复杂的应用。
112926700.jpg
图 1 Vista自身的网络工具
一、Wireshark简介
Wireshark是一个有名的网络端口探测器,是可以在Windows、Unix等各种平台运行的网络×××,它主要是针对TCP/IP协议的不安全性对运行该协议的机器进行监听。其功能相当于Windows下的Sniffer,都是在一个共享的网络环境下对数据包进行捕捉和分析,而且还能够自由地为其增加某些插件以实现额外功能。
 
Ethernet网络监测工具可在实时模式或离线模式中用来捕获和分析网络通信。下面是使用Wireshark 可以完成的几个工作:
 
l 网络管理员使用它去帮助解决网络问题
l 网络安全工程师用它去测试安全问题
l 开发人员用它是调试协议的实现过程
l 用它还可以帮助人员深入的学习网络协议
l 支持UNIX 平台和Windows 平台。
l 从网络接口上捕获实时数据包
l 以非常详细的协议方式显示数据包
l 可以打开或者存贮捕获的数据包
l 导入/导出数据包,从/到其它的捕获程序
l 按多种方式过滤数据包
l 按多种方式查找数据包
l 根据过滤条件,以不同的颜色显示数据包
l 可以建立多种统计数据
 
其最常用的功能是被***者用来检测被***电脑通过23(telnet)和110(pop3)端口进行的一些明文传输数据,以轻松得到用户的登录口令和邮件账号密码。对于网络管理员来说,也可以通过抓包分析,来确定一些异常的流量和局域网内部的非正常用户与外界的通信,比如说对于现在比较占用网络带宽的诸如Bit Torrent等P2P应用软件流量,通过使用该软件确定这些流量,网络管理员就可以使用流量控制(TC)的方法来规范、合理的分配带宽资源,提高网络的利用率。
 
二、下载安装Wireshark
 
Wireshark可以在[url]http://www.wireshark.org/download/[/url] 上下载,该软件有极其方便和友好的图形用户界面,并且能够使得用户通过图形界面的配置和选择,针对多块网卡、多个协议进行显示,效果非常好。目前最新版本为:Wireshark 0.99。图2 是Wireshark安装界面。
113008811.jpg
图 2 Wireshark安装界面
Wireshark安装后自动安装winpcap 4.0 ,Winpcap是UNIX下的libpcap移植到windows下的产物,他是一个GPL项目。Winpcap工作于驱动(Driver)层,所以能以很高的效率进行网络操作。 Winpcap提供了以下强大的功能:
1.捕获原始的数据包 ;
2.设置filter,只捕获自己敢兴趣的数据包 ;
3.方便的把捕获的数据包输出到文件和从文件输入 ;
4.发送原始的数据包 ;
5.统计网络流量。
三、使用Wireshark
当编译并安装好Wireshark后,就可以执行“Wireshark”命令来启动Wireshark。在用Wireshark截获数据包之前,应该为其设置相应的过滤规则,可以只捕获感兴趣的数据包。Wireshark使用与Tcpdump相似的过滤规则,并且可以很方便地存储已经设置好的过滤规则。
◆Wireshark主窗口有很多的GUI程序组成。
(1) File(文件):这个菜单包含:打开文件、合并文件、保存/打印/导出整个或部分捕获文件、退出。
(2) Edit(编辑)这个菜单包括:查找包、时间参照、标记一个或多个包、设置参数、(剪切、复制、粘贴)。
(3) View(查看):这个菜单控制捕获数据的显示,包括:给定特定的一类包标以不同的颜色、字体缩放、在一个新窗口中显示一个包、展开&折叠详细信息面板的树状结构。
(4) Go:这个菜单实现转到一个特定包。.
(5) apture(捕获):这个菜单实现开始、停止捕获,编辑捕获过滤条件的功能。
(6) Analyze(分析):这个菜单包含编辑显示过滤、enable(开)或disable(关)协议×××、配置用户指定的解码方法、追踪一个TCP 流。
(7) Statistics(统计):该菜单完成统计功能。包括捕获的包的一个摘要、基于协议的包的数量等树状统计图等许多功
(8) Help(帮助)这个菜单包含了一些对用户有用的信息。比如基本帮助、支持的协议列表、手册页、在线访问到网站等等。
◆ Wireshark界面结构
该工具提供一个强健的GUI界面,用来整理网络数据的捕获以及随后的网络通信浏览。主窗口包括一组菜单项,界面结构如图1。许多菜单从名字上看一目了然,这里不再阐述。第一个面板包含所有捕获报文的摘要。该面板包含报文号、时间戳、源、目的、协议以及信息域。这些域是可定制的,并且用户可删掉或加入其他的报文字段信息。
113039253.jpg
图 3 Wireshark界面结构
图注:
1. 控制面板和主菜单;
2. 报文摘要窗口;
3. 过滤器。
4. 报文细节窗口;
◆设置Wireshark的过滤规则
在用Wireshark截获数据包之前,应该为其设置相应的过滤规则,可以只捕获感兴趣的数据包。Wireshark使用与Tcpdump相似的过滤规则,并且可以很方便地存储已经设置好的过滤规则。要为Wireshark配置过滤规则,首先单击“Capture”选单,然后选择“Capture Filters...”菜单项,打开“Wireshark :Capture Filter”对话框。因为此时还没有添加任何过滤规则,因而该对话框右侧的列表框是空的(如图2所示)。在Wireshark中添加过滤器时,需要为该过滤器指定名字及规则。
113105799.jpg
图 4 Wireshark添加一个过滤器
例如,要在主机192.168.0.3和192.168.0.11间创建过滤器,可以在“Filter name”编辑框内输入过滤器名字“cjh”,在“Filter string”编辑框内输入过滤规则“host 192.168.0.3 and 192.168.0.11”,然后单击“新建”按钮即可。
在Wireshark中使用的过滤规则和Tcpdump几乎完全一致,这是因为两者都基于pcap库的缘故。Wireshark能够同时维护很多个过滤器。网络管理员可以根据实际需要选用不同的过滤器,这在很多情况下是非常有用的。例如,一个过滤器可能用于截获两个主机间的数据包,而另一个则可能用于截获ICMP包来诊断网络故障。单击“保存”按钮,会到对话框。单击“关闭”按钮完成设置。
1. 指定过滤器
要将过滤器应用于嗅探过程,需要在截获数据包之前或之后指定过滤器。要为嗅探过程指定过滤器,并开始截获数据包,可以单击“Capture”选单,选择“Start...”选单项,打开“iterface”对话框,单击该对话框中的“Filter:”按钮,然后选择要使用的网络接口,如图5所示。
113130931.jpg
图 5 Wireshark指定网络接口
l注意:在“Capture Options”对话框中,“Update list of packets in real time”复选框被选中了。这样可以使每个数据包在被截获时就实时显示出来,而不是在嗅探过程结束之后才显示所有截获的数据包。
在选择了所需要的过滤器后,单击“确定”按钮,整个嗅探过程就开始了。Wireshark可以实时显示截获的数据包,因此能够帮助网络管理员及时了解网络的运行状况,从而使其对网络性能和流量能有一个比较准确的把握。如图6 。
113201449.jpg
图 6 Wireshark实时显示截获的数据包
Capture Options其他选项:
Interface(接口)
这个字段指定在哪个接口进行捕获。这是一个下拉字段,只能从中选择Wireshark 识别出来的接口,默认是第一块支持捕获的非loopback 接口卡。如果没有接口卡,那么第一个默认就是第一块loopback 接口卡。在某些系统中,loopback 接口卡不能用来捕获(loopback 接口卡在Windows平台是不可用的)。
lIP address(IP 地址)
所选接口卡的IP 地址。如果不能解析出IP 地址,则显示"unknown"
lLink-layer header type(链路层头类型)
除非你在极个别的情况下可能用到这个字段,大多数情况下保持默认值。具体的描述,见”
lBuffer size: n megabyte(s) (缓冲区大小:n 兆)
输入捕获时使用的buffer 的大小。这是核心buffer 的大小,捕获的数据首先保存在这里,直到写入磁盘。如果遇到包丢失的情况,增加这个值可能解决问题。
lCapture packets in promiscuous mode (在混杂模式捕获包)
这个选项允许设置是否将网卡设置在混杂模式。如果不指定,Wireshark 仅仅捕获那些进入你的计算机的或送出你的计算机的包。(而不是LAN 网段上的所有包).
lLimit each packet to n bytes (限制每一个包为n 字节)
这个字段设置每一个数据包的最大捕获的数据量。有时称作snaplen 。如果disable 这个选项默认是65535, 对于大多数协议来讲中够了。
lCapture Filter(捕获过滤)
这个字段指定一个捕获过滤。 “在捕获时进行过滤”部分进行讨论。默认是空的,即没过过滤。也可以点击标为Capture Filter 的按钮, Wireshark 将弹出Capture Filters(捕获过滤)对话框,来建立或者选择一个过滤。
四、用Wireshark分析互联网数据包实例
上面基本是以局域网为例的。下面看看Wireshark对于互联网数据的分析。Wireshark和其它的图形化嗅探器使用基本类似的界面,整个窗口被分成三个部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为协议树,用来显示选定的数据包所属的协议信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。使用Wireshark可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的地址、所属协议等。图7是在Wireshark中对一个HTTP数据包进行分析时的情形。在图最上边的数据包列表中,显示了被截获的数据包的基本信息。
113243404.jpg
图 7 Wireshark分析互联网数据包内容
图7中间是协议树,通过协议树可以得到被截获的数据包的更多信息,如主机的MAC地址(Ethernet II)、IP地址(Internet Protocol)、TCP端口号(Transmission Control Protocol),以及HTTP协议的具体内容(Hypertext Trnasfer Protocol)。通过扩展协议树中的相应节点,可以得到该数据包中携带的更详尽的信息。
113305439.jpg
图 8 使用Follow TCP stearm 查看详细信息
图8最下边是以十六制显示的数据包的具体内容,这是被截获的数据包在物理媒体上传输时的最终形式,当在协议树中选中某行时,与其对应的十六进制代码同样会被选中,这样就可以很方便地对各种协议的数据包进行分析。图6 是一个详细封包分析。是点击该封包选择“Mark Pactet”。从图中可以看出,当前选中数据包的源地址是221.217.132.33,目的地址为202.106.124.50,该数据包所属的协议是超文本传输协议(HTTP)。要获取更加详细信息可以是点击该封包选择“Follow TCP stearm ”。
更详细的信息表明该数据包中含有一个HTTP的GET命令,访问的网站是:[url]www.51cto.com[/url]  。客户端使用的MSIE7.0浏览器,操作系统为Vista。
总结
Wireshark提供的图形化用户界面非常友好,管理员可以很方便地查看到每个数据包的详细信息,协议树及其对应的十六进制表示对分析每个数据包的目的很有帮助,使用Wireshark能够基本满足网络管理员在Vista系统上的所有安全要示。