admin管理员组

文章数量:1532463

2024年5月5日发(作者:)

Windows下使用Wireshark(ethereal)进行抓包分析

说明:由于版权问题,该开源软件的新版本现已更名为Wireshark。

1、下载安装

a 从/ 下载Wincap安装;

b 从/ 下载安装Windows平台的Ethereal(或从

/projects/wireshark/ 下载安装Wireshark),双击安装文件安装

即可。

2、使用

启动ethereal 以后,选择菜单Capature->Start :

选择好接受数据的网卡(Ethereal会自动选择系统中安装的唯一的网卡),再单击

“OK”按钮即可开始抓包。上图中的对话框还可以进行一些设置:

l Interface:指定在哪个接口(网卡)上抓包(系统会自动选择一块网卡)。

l Limit each packet:限制每个包的大小,缺省情况不限制。

l Capture packets in promiscuous mode:是否打开混杂模式。如果打开,抓

取所有的数据包。一般情况下只需要监听本机收到或者发出的包,因此应该关闭这个选项。

l Filter:过滤器。只抓取满足过滤规则的包。

l File:可输入文件名称将抓到的包写到指定的文件中。

l Use ring buffer: 是否使用循环缓冲。缺省情况下不使用,即一直抓包。注

意,循环缓冲只有在写文件的时候才有效。如果使用了循环缓冲,还需要设置文件的数目,

文件多大时回卷。

l Update list of packets in real time:如果复选框被选中,可以使每个数据包

在被截获时就实时显示出来,而不是在嗅探过程结束之后才显示所有截获的数据包。

单击“OK”按钮开始抓包,系统显示出接收的不同数据包的统计信息:

单击“Stop”按钮停止抓包后,所抓包的分析结果显示在面板中:

3、Ethereal的抓包过滤器

抓包过滤器在抓包过程中用来抓取感兴趣的数据包。 它使用的是libcap 过滤器语言,

在tcpdump 的手册中有详细的解释,基本结构是: [not] primitive [and|or [not]

primitive …]。

要抓取某些特定的数据包时,可以有以下两种方法,①在抓包时先定义好抓包过滤器,

这样只抓到你设定好的那些类型的数据包;②先抓取所有的数据包,再使用下节介绍的显

示过滤器,让Ethereal 只显示那些需要类型的数据包。

4、Etheral的显示过滤器

显示过滤器可以用来过滤显示抓包结果中感兴趣的数据包,可以根据①协议②是否存

在某个域③域值④域值之间的比较来查找感兴趣的数据包。

l 【例】 只显示使用tcp 协议的数据包,在Ethereal 窗口的左下角的Filter 中

输入tcp, 然后回车,ethereal 就会只显示tcp 协议的包。

l 值比较表达式:显示过滤器类似C语言,如等于(eq,==):

==10.1.10.20;不等于(ne,!=):!=10.1.10.20 ;大于(gt,>):

_len>10 ;小于(lt,<):_len<10 ;大于等于(ge,>=):

_len>=10 ;小于等于(le,<=):_len<=10。

l 表达式组合:可以使用逻辑操作符将表达式组合起来,类似于C语言,如逻辑

与(and,&&):==10.1.10.20&&;逻辑或(or,||):

==10.1.10.20||=10.1.10.21;异或(xor,^):[0:3] == 0.6.29 xor

[0:3] == 2.3.4 逻辑非(not,!):! llc

l 【例】要抓取IP 地址是192.168.2.10 的主机所接收或发送的所有HTTP 报

文,那么合适的显示Filter (过滤器)就是:

如果Filter文本框的底色是绿色则说明过滤表达式书写正确,否则就是错误的:

5、用Ethereal分析数据包

Ethereal的整个窗口被分成三个部分:最上面为数据包列表,用来显示截获的每个数

据包的总结性信息;中间为协议树,用来显示选定的数据包所属的协议信息;最下边是以

十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。

使用Ethereal可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的

地址、所属协议等。下图显示的是在Ethereal中对一个HTTP数据包进行分析时的情形。

在上图最上边的数据包列表中,显示了被截获的数据包的基本信息,包括源地址、目

标地址、所属协议。信息表明该数据包中含有一个HTTP的GET命令,要求下载

的主页(路径为“/”)。

上图的中间是协议树,通过协议树可以得到被截获的数据包的更多信息,如主机的

MAC地址(Ethernet II)、IP地址(Internet Protocol)、TCP端口号(Transmission Control

Protocol)以及HTTP协议的具体内容(Hypertext Trnasfer Protocol)。通过扩展协议

树中的相应节点,可以得到该数据包中携带的更详尽的信息。

上图最下边是以十六制显示的数据包的具体内容,这是被截获的数据包在物理媒体上

传输时的最终形式,当在协议树中选中某行时,与其对应的十六进制代码同样会被选中,

这样就可以很方便地对各种协议的数据包进行分析。

6、在Ethereal 使用协议插件

Ethereal 能够支持许多协议,但有些协议需要安装插件以后才能分析。此处以H.323

协议为例。

a从/下载Ethereal 的H.323 插件,下载后将文件

() 解压到Ethereal 安装目录的plugin0.9.x。

b 进行设置:①启动ethereal ②菜单EditèPreference③单击Protocols 前面的

“+”号,展开Protocols ④找到Q.931 ,并单击⑤确保“ TCP

segments”是选中的(即方框被按下去)⑥单击TCP ⑦确保“TCP streams”是

选中的⑧确保没有选中“TCP checksum”和“sequence numbers”⑨

单击TPKT ⑩确保“TCP segments” 是选中的⑾点击Save,然后点击

Apply ,OK。

7、相互协作产生ftp、telnet、www等流量,抓包进行分析,根据对应报文头部加深

对协议的理解。

8、抓包分析访问网上邻居时使用的协议、端口等。

本文标签: 数据包显示协议分析使用