使用Ethereal工具分析网络协议
基于Ethereal的网络协议分析

HUANG Xiaoyan (College of Information Science & Technology, Hainan University, Danzhou, Hainan 571737)
Abstract Real-time network packets were captured through Ethereal, and actually unpacked for analysis according to the TCP/IP network protocol analysis flow, so as to allow network researchers to have a perceptual knowledge about the data packets and provide a technical method for the network protocol analysis. Key words protocol analysis 曰 Ethereal 曰 packet
以太帧
判断网络层协议标志
0806 ARP协议分析
0800 IP协议分析
0835 RARP协议分析
当应用层的报文通过TCP/IP网络协议栈到达物 理层传输时袁 各层协议都在数据包上封装一个报 头遥 下面以实际捕捉的编号为24的数据包 (图1包列 表窗口选中的数据包)为例袁 自底向上分析各层的网络 协议[2]遥 2.1 数据链路层
判断传输层协议标志
11 UDP协议分析
06 TCP协议分析
01 ICMP协议分析
字节
6
目的MAC地址
Ethereal 分析数据报文

实验二利用网络嗅探工具Ethereal分析数据报文一、实验目的网络世界中,最基本的单元是数据包。
本实验内容作为将来各个实验的基础,培养对网络通讯协议底层的分析和认识,加强对网络的理解。
实验内容主要关注 ICMP、HTTP 包的检验。
1.学习网络嗅探工具 Ethereal 的使用。
2.利用抓包工具Ethereal,抓取ICMP包,完成对ICMP 包的分析工作。
明白 ICMP 包的结构。
结合 TCP/IP 的模型,分析 ICMP 包各层的功能,以及各层通信使用的地址,了解 ICMP 请求和响应包的 ICMP 协议号。
3.利用抓包工具 Ethereal,抓取 HTTP 包。
了解 HTTP 协议请求、响应包类型,结合课本学习知识完成的 HTTP 协议的剖析和掌握。
将来的课程实验中,需要使用该工具进行包分析,判断大多数安全和网络通讯问题。
二、实验环境1. 局域网环境2. Ethereal软件Ethereal 软件介绍Ethereal是一个网络数据包分析软件。
网络数据包分析软件的功能是截取网络数据包,并尽可能显示出最为详细的网络数据包资料。
网络数据包分析软件的功能可想像成"电工技师使用电表来量测电流、电压、电阻"的工作——只是将场景移植到网络上,并将网络线替换成电线。
三、实验任务1. 任务1:Ethereal 软件的基本功能使用2. 任务2:ICMP 数据报文的检测与分析3. 任务3:HTTP 数据报文的检测与分析四、实验步骤首先安装Ethereal和Winpcap。
任务1:Ethereal 软件的基本功能使用一、 打开 Ethereal,其界面如下图:二、在菜单的“capture”选项中设置抓包的相关参数,如下图:三、选择“interfaces”选项,对话框中显示可操作的网络适配器,如下图:四、通过“Prepare”或上级菜单“Option”选项,可以设置抓包模式、过滤器、数据包限制字节、存档文件模式、停止规则和名字解析等参数,如下图:设置完毕,就可以点击“Capture”,开始数据报文的捕获。
Ethereal协议分析实验指导

Ethereal协议分析实验指导Ethereal是一个开放源码的网络分析系统,也是目前最好的开放源码的网络协议分析器,支持Linux和windows平台。
Ethereal 基本类似于tcpdump,但 Ethereal 还具有设计完美的 GUI 和众多分类信息及过滤选项。
用户通过 Ethereal,同时将网卡插入混杂模式,可以查看到网络中发送的所有通信流量。
Ethereal网络协议分析软件可以十分方便直观地应用于计算机网络原理和网络安全的教学实验,网络的日常安全监测。
使用Ethereal能够非常有效地帮助学生来理解网络原理和协议、帮助学生理解实验现象和诊断实验故障。
一、Ethereal 协议分析软件下载及安装1.下载Ethereal 开源软件Ethereal是免费的,可以从官方网站下载最新版本。
以windows xp操作系统为例,如图2-1所示。
目前可下载最新版本为:Ethereal 0.99.0图2-1 下载Ethereal协议分析软件的界面2.安装Ethereal软件图2-2 Ethereal 安装界面双击Ethereal-setup-0.99.0.exe软件图标,开始安装。
图2-2为Ethereal安装界面。
选择欲安装的选件,一般选择默认即可,如图2-3图2-3选择欲安装的选件选择欲安装的目录,确定软件安装位置。
Ethereal软件的运行需要软件WinPcap的支持,WinPcap是libpcap library的Windows版本,Ethereal可通过WinPcap来劫取网络上的数据包。
在安装Ethereal时可以的过程中也会一并安装WinPcap,不需要再另外安装。
如图2-4所示图2-4选择安装WinPcap如果在安装Ethereal之前未安装Winpcap,可以勾选Install Winpcap 3.1 beta 4。
开始解压缩文件,接着开始安装,接着按Next就可以看到Ethereal的启动画面了。
ethereal使用以及IP协议解析

1.主界面介绍随着3G的普及,手机数据业务量(如浏览器,彩信等)的日益增长,对手机侧网络包的分析显得越来越重要。
一般来说,手机数据业务的抓包工具为QXDM,在抓LOG指导里面已经有了详细参数的配置介绍(详情见《IP数据包抓取方法.doc》)。
但需要注意的是,在将LOG转化为.pcap文件时,必须保证当前电脑里安装有Ethereal软件,否者PCAPGenerator这个工具不会出现。
(针对使用Tools->PCAPGenerator转化.isf文件出错的情况,可以做如下尝试:先使用Tools->ISF File Converter将刚刚保存的.isf文件其转化为.dlf文件,然后使用Tools->PCAPGenerator将.dlf 文件转换成.pcap文件)。
这里主要针对抓到IP包后,怎么样使用Ethereal软件对IP包进行分析,以及一些简单的TCP/IP协议介绍。
直接点击打开.pcap文件,可以看到如下图1所示界面。
图1中间彩色的区域就是IP数据包。
从左到右,字段分别是No.,Time,Source,Destination,Protocol以及Info。
IP包是按照流经手机网卡的时间顺序排列的,NO.是标示抓到的IP包是该抓包文件中的第几个,Time则是计算的所有包与第一个包之间的间隔时间,单位毫秒ms。
Source和Destination字段分别表示IP包的源地址和目的地址。
Protocol显示当前IP包的上层协议,如TCP,UDP,如果应用层协议头也在该IP包中,优先显示应用层协议,如RTSP,HTTP等。
注意中间的彩色显示,不同的颜色代表该IP包中包含了不同内容,这是方便我们对IP 包查看。
如上面的大红色,表示的是该数据包损坏,可能是只有一半的内容,也可能是指在该包与其他包的序号不连续(指在协议层不连续),中间可能出现丢包的现象。
很多时候,Ethereal是用不同颜色来区分上层协议的不同(注意IP包中必须包含上层协议的包头,才能以该应用的颜色进行标示。
实验二 利用分组嗅探器(ethereal)分析协议HTTP

实验二利用分组嗅探器(ethereal)分析协议HTTP一、实验目的分析HTTP协议二、实验环境与因特网连接的计算机网络系统;主机操作系统为windows;Ethereal、IE等软件。
三、实验步骤1、HTTP GET/response交互首先通过下载一个非常简单的HTML文件(该文件非常短,并且不嵌入任何对象)。
(1)启动Web browser。
(2)启动Ethereal分组嗅探器。
在窗口的显示过滤说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
(3)一分钟以后,开始Ethereal分组俘获。
(4)在打开的Web browser窗口中输入一下地址(浏览器中将显示一个只有一行文字的非常简单的HTML文件):/ethereal-labs/HTTP-ethereal-file1.html(5)停止分组俘获。
窗口如图1所示。
根据俘获窗口内容,回答“四、实验报告内容”中的1-6题。
图1分组俘获窗口2、HTTP 条件GET/response交互(1)启动浏览器,清空浏览器的缓存(在浏览器中,选择“工具”菜单中的“Internet 选项”命令,在出现的对话框中,选择“删除文件”)。
(2)启动Ethereal分组俘获器。
开始Ethereal分组俘获。
(3)在浏览器的地址栏中输入以下URL: /ethereal-labs/HTTP-ethereal-file2.html,你的浏览器中将显示一个具有五行的非常简单的HTML文件。
(4)在你的浏览器中重新输入相同的URL或单击浏览器中的“刷新”按钮。
(5)停止Ethereal分组俘获,在显示过滤筛选说明处输入“http”,分组列表子窗口中将只显示所俘获到的HTTP报文。
根据操作回答“四、实验报告内容”中的7-10题。
3、获取长文件(1)启动浏览器,将浏览器的缓存清空。
(2)启动Ethereal分组俘获器。
开始Ethereal分组俘获。
(3)在浏览器的地址栏中输入以下URL: /ethereal-labs/HTTP-ethereal-file3.html,浏览器将显示一个相当大的美国权力法案。
网络协议分析工具Ethereal的使用

⽹络协议分析⼯具Ethereal的使⽤⼤学时计算机⽹络课的实验报告,当时提不起兴趣,今天看来还挺有⽤的。
可以学习下怎样抓数据包,然后分析程序的通信协议。
⼀:学习使⽤⽹络协议分析⼯具Ethereal的⽅法,并⽤它来分析⼀些协议。
实验步骤:1.⽤“ipconfig”命令获得本机的MAC地址和缺省路由器的IP地址;(注:缺省路由器即 ”Default Gateway”)命令⾏:Start->Run->CMD->ipconfig /all >C:\Mac.txt(在命令⾏中把ipconfig命令保存在⽂本⽂档⾥⾯备⽤)结果:本机Mac地址:00.09.73.4B.8A.D7 缺省路由器IP:192.168.8.254步骤截图:图1(本机⽹络信息:Mac.txt)2.⽤“arp”命令清空本机的缓存:命令⾏:Start->Run->CMD->arp –d图2(arp命令 –d参数的帮助说明)3.运⾏Ethereal,开始捕获所有属于ARP协议或ICMP协议的,并且源或⽬的MAC地址是本机的包:图3(Capture->Options中关于⽹卡设置和Capture Filter)图4(抓包截图)4.执⾏命令:“ping” 缺省路由器的IP地址:图5(捕获包)图6(ping 过程)⼆:⽤Ethereal观察tracert命令的⼯作过程:1.⽤Ethereal语法内容及参数说明:命令⾏操作步骤:Start->Run->CMD->tracert图1(Tracert命令全部参数的帮助说明)2.运⾏Ethereal, 设定源和⽬的MAC地址是本机的包,捕获tracert命令中⽤到的消息:Tracert使⽤ICMP,相应过滤规则为:ether host 00:09:73:4B:8A:D7 and icmp图3(Capture->Options中关于⽹卡设置和Capture Filter)3.执⾏“tracert -d ” ,捕获包:执⾏命令:tracert -d :图3 (执⾏命令 tracert –d )图4(抓包截图)图5(捕获包)4.Tracert⼯作原理:Tracert使⽤ICMP消息,具体地讲,tracert发出的是Echo Request消息,触发返回的是Time Exceeded消息和Echo Reply消息。
Ethereal使用手册

1、Ethereal(Vinancy)协议分析器Ethereal是目前最好的、开放源码的、获得广泛应用的网络协议分析器,支持Linux 和windows 平台,支持五百多种协议解析,是一款基于数据底层的简单实用的网络侦听和报文分析工具。
首先了解 Ethereal主菜单功能1.F文件菜单 :打开、合并抓包文件,存储、打印、输出,退出Ethereal。
2.E 编辑菜单:查询包,时间查询,标记或标识,剪切,拷贝。
3.V 视图菜单:包数据的显示,包括颜色,字型,压缩和展开。
4.G跳转菜单:以不同方式指向特定的包。
5.C 抓包菜单:开始和停止抓包过程以及编辑抓包过滤器。
6.A 分析菜单:显示过滤器,允许/不允许协议解析,配置用户指定的译码器,跟踪TCP。
7.S 统计菜单:各种统计已经抓到的包的摘要,显示协议的分层统计等等.打开抓包—网络接口,显示本机网络接口信息。
设置网络接口的抓包参数:混杂模式、缓冲区大小(默认1MB)开始抓包,动态地显示和统计以太网冲突域内各种通信协议停止抓包后,视窗界面分为上中下三个部分,上部为报文列表窗口,显示抓到的每个数据报文的顺序号、捕获时间、源地址、目标地址、协议、信息摘要,缺省按捕获时间数据排序,你也可以按其他数据排序,比如按协议类型排序。
在此窗口选择某个报文,则有关该报文更详细的信息将在中下窗口显示出来。
中部为具体报文的协议层窗口,显示的是数据报文各层协议,逐层展开该报文各层协议将显示出详细的封装结构信息。
下部为16 进制报文内容窗口,显示该报文的协议数据和封装内容。
如下图所示的 DNS协议封装的数据内容(阴影部分)显示过滤:可以按协议类型或表达式,只显示出需要的数据包,以便分析查看。
如下图显示过滤:仅列出arp报文只列出arp和SNMP报文(用or运算符)更复杂的显示过滤,需要使用表达式多重条件(and运算符)显示过滤:只列出源IP是192.168.4.10且大小>=1000字节的I CMP报文打开统计,统计概要、协议分布、会话统计信息。
实验7 Ethereal使用

显示过滤器的语法--⑶ 逻辑操作符
英语 形式 and or not […] 类似C语 言形式 && || ! […] 含义 逻辑与 逻辑或 逻辑非 示 例 ip.addr==10.0.0.5 and tcp.flags.fin 示例的含义 过滤出源/目IP地址为10.0.0.5并 且TCP的FIN置1的数据包
UDP TCபைடு நூலகம் HTTP FTP协议
frame
捕获到的 frame.protocols == 过滤出数据帧中封装的协议依次为:以太网协议、 "eth:ip:tcp" IP协议、TCP协议的数据包 数据帧
显示过滤器的语法-- ⑵ 比较操作符
英语 类似C语言形 形式 式 eq == 含 义 相等(Equal) 示 例 udp.port = = 10002 或 udp.port eq 10002 ip.addr !=10.0.0.5 或 ip.addr ne 10.0.0.5 frame.pkt_len > 10 或 frame.pkt_len gt 10 frame.pkt_len < 128 或frame.pkt_len lt 128
查找er_agent中含有cldc 字符的数据包,并且不区分 大小写。(?option)这个表达式 是Perl表达式
matches
er_agent matches "(?i )cldc"
3. Ethereal的主要菜单项
File菜单
–对包捕获的结果以文件形式保存(Save)、打开(Open)、输出
Help(帮助)菜单
–
4. Ethereal使用示例
以主机202.196.73.134使用HTTP访问 为例,分析TCP的三次握手 过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五使用Ethereal工具分析网络协议一、实验目的通过使用Ethereal软件掌握Sniffer(嗅探器)工具的使用方法,实现捕捉网络协议的数据包,以理解TCP/IP协议族中多种协议的数据结构以及多种协议的交互过程。
二、实验内容1.静态路由的配置。
2.路由协议RIP、RIP V2,OSPF。
三、实验环境安装Windows 2000/XP的PC机,在每一台上安装Ethereal软件。
将PC机通过路由器/交换机相连,组成一个局域网。
四、实验指导1、Ethereal 简介Ethereal是一款免费的网络协议分析程序,支持Unix、Windows。
借助这个程序,你既可以直接从网络上抓取数据进行分析,也可以对由其他嗅探器抓取后保存在硬盘上的数据进行分析。
你能交互式地浏览抓取到的数据包,查看每一个数据包的摘要和详细信息。
Ethereal 有多种强大的特征,如支持几乎所有的协议、丰富的过滤语言、易于查看TCP会话经重构后的数据流等。
它的主要特点为:∙支持Unix系统和Windows系统∙可以根据不同的标准进行包过滤∙通过过滤来查找所需要的包∙根据过滤规则,用不同的颜色来显示不同的包∙提供了多种分析和统计工具,实现对信息包的分析2、Ethereal 安装安装软件可以从网站上下载。
3、Ethereal操作指导3.1 Ethereal 操作界面Ethereal软件界面如图上图所示,在这个窗口上,整个界面环境分为三个窗口,最上面的窗口是抓包列表窗口,经过Ethereal软件抓包后的数据包都会列在这个窗口中,同时你可以根据抓包序列号,抓包时间、源地址、目标地址、协议等进行包列表的排序,这样你可以很容易的找到你所需要的信息包。
中间的窗口中显示的是抓包列表上所选择的包对应的各层协议说明,其中,协议层次信息以树型的结构进行显示。
最下面的窗口是数据窗口,显示的是上层窗口选中的信息包的具体数据,同时,在中间树型窗口中所选择的某一协议数据域的内容,在数据窗口中会被突出地显示出来。
3.2 Ethereal 界面菜单菜单中主要有以下几个部分:File:这个子菜单下的操作与Windows菜单下File下的操作类似,包括了文件的打开,保存、打印以及系统的退出等等。
不过这里的文件仅仅指的是抓包文件。
Edit:这个子菜单下所包含的操作有:查找某一个特定的帧、跳到某个帧、在一个或更多的帧上打上标记、设置首选项、设置过滤、协议剖析允许/不允许等。
在这个菜单下,Windows 界面中的一些常用的操作,例如剪切、复制、粘贴等将不再使用。
Capture:在这个菜单下进行开始抓包和停止抓包的操作。
3.3 相关操作3.3.1 抓包3.3.2 Capture options选项对话框Interfaces:指定在哪个网卡上抓包。
一般情况下都是单网卡,所以使用缺省的就可以了。
Capture packets in promiscuous mode:是否打开混杂模式。
如果打开,抓取所有的数据包。
一般情况下只需要监听本机收到或者发出的包,因此应该关闭这个选项。
Limit each packet:限制每个包的大小,缺省情况不限制。
Filter:过滤器。
只抓取满足过滤规则的包。
File:如果需要将抓到的包写到文件中,在这里输入文件名称。
ring buffer:是否使用循环缓冲。
缺省情况下不使用,即一直抓包。
注意,循环缓冲只有在写文件的时候才有效。
如果使用了循环缓冲,还需要设置文件的数目,文件多大时回卷。
其他项:选择缺省的就可以了。
3.3.3 过滤设置抓包过滤器用来抓取感兴趣的包,用在抓包过程中。
抓包过滤器使用的是libcap 过滤器语言,在tcpdump 的手册中有详细的解释,基本结构是:[not] primitive [and|or [not] primitive ...],如下:Ethereal提供了两种过滤设置方式:1)、一种是在抓包以前进行设置,通过此设置,整个抓包过程将只抓取用户所需要的特定的数据包。
2)、另一种方式是在抓包以后进行设置。
3.3.3.1 在抓包前进行过滤设置在抓包前进行过滤设置,是在抓包选项设置对话框中进行的(见上图)。
只需在Filter 栏中填入特定的设置语句。
Ethereal使用libpcap filter语言来进行抓包的过滤设置。
过滤表达式由一系列简单的表达式和连词(and、or、not)组成:[not] primitive [and|or [not] primitive ...]过滤表达式的用法:抓取一个特定的主机的telnet数据包的过滤设置tcp port 23 and host 10.0.0.5通过这个过滤表达式,可以抓取从主机10.0.0.5发出或发向该主机的所有的telnet数据包。
抓取除了来自/发往某主机的telnet数据包的过滤设置tcp port 23 and not host 10.0.0.5在过滤设置字符串中,primitive表达式通常由以下几种形式组成:1)、[src|dst] host <host>此表达式通过IP地址/主机名来过滤一个特定的主机,通过前缀src或dst选择源/目的主机。
如果不注明src或者dst,则将抓到流向/流出该主机的所有数据包。
例如:抓取从主机172.18.66.66发出的数据包:src host 172.18.66.662)、ether [src|dst] host <ehost>此表达式用于过滤以太网上流入/流出特定的主机的数据包,不同的是ehost是以太网地址,为主机的物理地址。
例如:抓取发往物理地址为00:04:76:42:24:80的数据包ether dst host 00:04:76:42:24:803)、[src|dst] net <net> [{mask <mask>}|{len <len>}]此表达式根据网络地址来过滤来自/发往特定的网络的数据包。
例如:抓取发往/发自网络172.18.0.0的数据包net 172.18.0.0 mask 255.255.0.04)、[tcp|udp] [src|dst] port <port>此表达式可以设置过滤来自/发往特定的tcp/udp协议端口的数据包。
例如:抓取SNMP协议数据包udp port 1615)、less|greater <length>此表达式用于过滤数据包长度小于等于/大于等于特定长度的数据包。
例如:抓取数据包长度小于400byte的数据包less 4006)、ip|ether proto <protocol>此表达式用于过滤IP层/数据链路层(Ethernet层)上特定的协议数据包。
例如:抓取IP层上UDP数据报ip proto UDP7)、ether|ip broadcast|multicast此表达式用于过滤IP/Ethernet的广播包/多播包8)、<expr> relop <expr>此表达式用于创建复杂的过滤表达式,用于选择数据包中特定byte的数据或者某一段数据。
3.3.3.2 在抓包后进行过滤设置只需要在filter文本框中填入相应的表达式即可。
如下图:注:如果Filter的背景是绿色的,证明所设定的Filter是合乎规则的;如果Filter的背景是红色的,证明所设定的Filter是Ethereal不允许的,是错误的。
3.3.4 分析数据包内容中间是协议树,通过协议树可以得到被截获的数据包的更多信息,如主机的MAC地址(Ethernet II)、IP地址(Internet Protocol)、TCP端口号(Transmission Control Protocol),以及HTTP 协议的具体内容(Hypertext Trnasfer Protocol)。
通过扩展协议树中的相应节点,可以得到该数据包中携带的更详尽的信息。
最下边是以十六制显示的数据包的具体内容,这是被截获的数据包在物理媒体上传输时的最终形式,当在协议树中选中某行时,与其对应的十六进制代码同样会被选中,这样就可以很方便地对各种协议的数据包进行分析。
(1)实验1、以太网帧结构1.2 Ethernet Example捕捉并显示所有从本地机器发出和接收的数据包。
1)获取本地MAC地址:在命令行输入 ipconfig/all2)通过Ethereal抓包。
方法一:将Ethereal的capture filter 的filter string设置为:eth.addr==08.2e.5f.29.6b.a0方法二:将主界面上Filter设置为:eth.addr==08.2e.5f.29.6b.a02、IP报头结构2.1 IP协议概述IP提供无连接的数据转发,是Internet数据通信的基础IP提供的是最底层的、最基础的一部分这种服务是不提供服务保证的,分组可能丢失、延迟,也不通知发送方或接受方。
一个分组序列有可能沿着不同的路径发送。
服务是全力转发,不因为资源耗尽或网络故障而停止,因而会引起丢失等不可靠的情形出现。
2.2 IP 数据报结构详细的数据报报头:通过Ethereal查看IP数据报报头,如下图:通过Ethereal查看IP地址为192.168.0.103的数据包3、ARP协议3.1 ARP协议概述ARP协议(Address Resolution Protocol),即地址解析协议。
ARP协议主要负责将局域网中的32为IP地址转换为对应的48位物理地址,即网卡的MAC地址,比如IP地址为192.168.0.1网卡MAC地址为00-03-0F-FD-1D-2B。
整个转换过程是一台主机先向目标主机发送包含IP地址信息的广播数据包,即ARP请求,然后目标主机向该主机发送一个含有IP地址和MAC地址数据包,通过MAC地址两个主机就可以实现数据传输了。
3.2 ARP命令在安装了以太网网络适配器的计算机中都有专门的ARP缓存,包含一个或多个表,用于保存IP地址以及经过解析的MAC地址。
在Windows中要查看或者修改ARP缓存中的信息,可以使用arp命令来完成,比如在Windows XP的命令提示符窗口中键入“arp -a”或“arp -g”可以查看ARP缓存中的内容;键入“arp -d IPaddress”表示删除指定的IP地址项(IPaddress表示IP地址)。
arp命令的其它用法可以键入“arp /?”查看到。
3.2 ARP协议应用举例为了解释ARP协议的作用,就必须理解数据在网络上的传输过程。
这里举一个简单的PING例子。
假设我们的计算机IP地址是192.168.1.1,要执行这个命令:ping192.168.1.2。