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

 http://pjing1124.blog.163.com/blog/static/5142315120091065133328/

说明:由于版权问题,该开源软件的新版本现已更名为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、抓包分析访问网上邻居时使用的协议、端口等。

 

Ethereal is a GUI network protocol analyzer. It lets you interactively browse packet data from a live network or from a previously saved capture file. See: http://www.ethereal.com for new versions, documentation, ... Ethereal's native capture file format is libpcap format, which is also the format used by tcpdump and various other tools. So Ethereal can read capture files from: -libpcap/WinPcap, tcpdump and various other tools using tcpdump's capture format -snoop and atmsnoop -Shomiti/Finisar Surveyor captures -Novell LANalyzer captures -Microsoft Network Monitor captures -AIX's iptrace captures -Cinco Networks NetXRay captures -Network Associates Windows-based Sniffer captures -Network General/Network Associates DOS-based Sniffer (compressed or uncompressed) captures -AG Group/WildPackets EtherPeek/TokenPeek/AiroPeek/EtherHelp/PacketGrabber captures -RADCOM's WAN/LAN analyzer captures -Network Instruments Observer version 9 captures -Lucent/Ascend router debug output -files from HP-UX's nettl -Toshiba's ISDN routers dump output -the output from i4btrace from the ISDN4BSD project -traces from the EyeSDN USB S0. -the output in IPLog format from the Cisco Secure Intrusion Detection System -pppd logs (pppdump format) -the output from VMS's TCPIPtrace/TCPtrace/UCX$TRACE utilities -the text output from the DBS Etherwatch VMS utility -Visual Networks' Visual UpTime traffic capture -the output from CoSine L2 debug -the output from Accellent's 5Views LAN agents -Endace Measurement Systems' ERF format captures -Linux Bluez Bluetooth stack hcidump -w traces There is no need to tell Ethereal what type of file you are reading; it will determine the file type by itself. Ethereal is also capable of reading any of these file formats if they are compressed using gzip. Ethereal recognizes this directly from the file; the '.gz' extension is not required for this purpose.
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值