视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Windows下使用Wireshark(ethereal)进行抓包分析
2025-09-27 23:39:47 责编:小OO
文档
Windows下使用Wireshark(ethereal)进行抓包分析

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

1、下载安装

a 从http://www.winpcap.org/ 下载Wincap安装;

b 从http://www.ethereal.com/ 下载安装Windows平台的Ethereal(或从http://sourceforge.net/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,==):ip.addr==10.1.10.20;不等于(ne,!=):ip.addr!=10.1.10.20 ;大于(gt,>):frame.pkt_len>10 ;小于(lt,<):frame.pkt_len<10 ;大于等于(ge,>=): frame.pkt_len>=10 ;小于等于(le,<=):frame.pkt_len<=10。

l         表达式组合:可以使用逻辑操作符将表达式组合起来,类似于C语言,如逻辑与(and,&&):ip.addr==10.1.10.20&&tcp.flags.fin;逻辑或(or,||):ip.addr==10.1.10.20||ip.addr=10.1.10.21;异或(xor,^):tr.dst[0:3] == 0.6.29 xor tr.src[0:3] == 2.3.4  逻辑非(not,!):! llc

l         【例】要抓取IP 地址是192.168.2.10 的主机所接收或发送的所有HTTP 报文,那么合适的显示Filter (过滤器)就是:

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

 

5、用Ethereal分析数据包

Ethereal的整个窗口被分成三个部分:最上面为数据包列表,用来显示截获的每个数据包的总结性信息;中间为协议树,用来显示选定的数据包所属的协议信息;最下边是以十六进制形式表示的数据包内容,用来显示数据包在物理层上传输时的最终形式。

使用Ethereal可以很方便地对截获的数据包进行分析,包括该数据包的源地址、目的地址、所属协议等。下图显示的是在Ethereal中对一个HTTP数据包进行分析时的情形。

在上图最上边的数据包列表中,显示了被截获的数据包的基本信息,包括源地址、目标地址、所属协议。信息表明该数据包中含有一个HTTP的GET命令,要求下载www.wincap.org的主页(路径为“/”)。

上图的中间是协议树,通过协议树可以得到被截获的数据包的更多信息,如主机的MAC地址(Ethernet II)、IP地址(Internet Protocol)、TCP端口号(Transmission Control Protocol)以及HTTP协议的具体内容(Hypertext Trnasfer Protocol)。通过扩展协议树中的相应节点,可以得到该数据包中携带的更详尽的信息。

上图最下边是以十六制显示的数据包的具体内容,这是被截获的数据包在物理媒体上传输时的最终形式,当在协议树中选中某行时,与其对应的十六进制代码同样会被选中,这样就可以很方便地对各种协议的数据包进行分析。

 

6、在Ethereal 使用协议插件

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

a从http://www.voice2sniff.org/下载Ethereal 的H.323 插件,下载后将文件(h323.dll) 解压到Ethereal 安装目录的plugin\\0.9.x。

b 进行设置:①启动ethereal ②菜单EditèPreference③单击Protocols 前面的“+”号,展开Protocols ④找到Q.931 ,并单击⑤确保“Desegment.... TCP segments”是选中的(即方框被按下去)⑥单击TCP ⑦确保“Allow....TCP streams”是选中的⑧确保没有选中“Check....TCP checksum”和“Use....sequence numbers”⑨单击TPKT ⑩确保“Desegment....TCP segments” 是选中的⑾点击Save,然后点击Apply ,OK。

 

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

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

显示全文
专题