如何利用ethereal进行协议分析

上传人:xzh****18 文档编号:33923074 上传时间:2018-02-19 格式:DOC 页数:7 大小:75.50KB
返回 下载 相关 举报
如何利用ethereal进行协议分析_第1页
第1页 / 共7页
如何利用ethereal进行协议分析_第2页
第2页 / 共7页
如何利用ethereal进行协议分析_第3页
第3页 / 共7页
如何利用ethereal进行协议分析_第4页
第4页 / 共7页
如何利用ethereal进行协议分析_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《如何利用ethereal进行协议分析》由会员分享,可在线阅读,更多相关《如何利用ethereal进行协议分析(7页珍藏版)》请在金锄头文库上搜索。

1、Ethereal 是什么?它是一个图形用户接口(GUI)的网络嗅探器,能够完成与TCPDUMP 相同的功能,用来捕获网络数据;但其有 TCPDUMP 无法相比的友好界面;而且其支持的协议之广和全也是别的嗅探器没有办法相提并论的。那么你可以试着阅读本文,让此文给我们 07 年岗前实训带来方便!1. 简单介绍Ethereal 是一个图形用户接口(GUI)的网络嗅探器,能够完成与 TCPDUMP 相同的功能,但操作界面要比 TCPDUMP 友好的多。Ethereal 和 TCPDUMP 都依赖于pcap 库(libcap),因此两者在许多方面非常相似(有相同的数据抓取过滤条件和关键字)。同时 Eth

2、ereal 有与其他图形化网络嗅探器相同的界面模式,实际上如果你能够熟练地使用 Ethereal,那么你也同样可以使用其他用户界面的网络嗅探器。Ethereal 也是一个跨平台的开源项目,支持 Windows 和 Linux 平台。Ethereal起初由 Gerald Combs 开发,随后由一个松散的 Ethereal 团队组织进行维护开发。它目前所提供的强大协议分析功能完全可以同商业的网络协议分析系统媲美,从 1998 年发布最早的 0.2 版本至今,大量的志愿者为 Ethereal 添加新的协议解析器,如今 Ethereal 已经支持 500 多种协议解析。很难想象如此多的人开发的代码是

3、如何很好的融入系统中的;实际上在 Ethereal 中添加一个新的协议解析器非常简单,笔者曾经就在很短的时间内向 Ethereal 添加一个协议解析器;其实系统为添加协议解析器留出了接口,而在面向程序员的开发文档中对如何添加协议解析器有很好的说明;其实网络协议种类繁多,随着时间推移,各种新的协议层出不穷,如果不是设计良好的系统,也不可能适应不断发展的网络协议。一句话,Ethereal 是一个结构设计良好的系统。那么可以利用 Ethereal 来做什么呢?实际上 Ethereal 可以用来捕获网络的数据包,然后利用其对现有协议的分析能力来帮助工作。2. 安装 Ethereal正如前面所说 Eth

4、ereal 是一个开源的项目,可以从 http:/下载,你不但可以从这里下载到可执行程序,也可以下载到源程序。当前最新版本是 0.99.0 版。不过正如我们前面说过的,Ethereal 是建立在 libcap 基础之上,所以在安装 Ethereal 之前请先安装一个 libcap 的库,可以从http:/www.winpcap.org/下载。Ethereal 比较具有吸引力的地方是可以通过阅读其协议分析器的源代码来了解一些不容易得到的协议的详细情况;当然这是比较费力的途径,如果能够得到协议的文档说明还是不要走这条路。3. 使用 Ethereal 来捕获数据包下面以 Windows 平台上的 E

5、thereal 0.99.0 版本介绍一下如何使用 Ethereal。3.1. 捕获数据初级篇启动 Ethereal 之后选择 Capture 菜单,然后选择子菜单 Start 就可以开始捕获数据包了。图 1:Ethereal 开始界面一旦启动捕获程序以后,Ethereal 界面最前面显示一个窗口,这个窗口用来显示各种协议捕获到的数据包数量,以及已经运行的时间。图 2 显示这个对话框:图 2:Ethereal 捕获对话框3.2. 网络数据的分析如果你想停止捕获数据包,只需要单击 Stop 按钮即可。在停止捕获数据包以后,Ethereal 将捕获到的数据包进行分析,然后以图形的形式展现在用户面前

6、;如图 3 所示:图 3:Ethereal 网络数据包显示窗口图 3 主要包括 3 部分,分别是:1 协议数据包窗口;该窗口中概要的显示数据包捕获的时间,源和目的 IP地址,以及使用协议的概况。2 协议树窗口;该窗口以树形结构显示捕获到的数据包,实际上当在协议数据包窗口中选择一个数据包的时候,该窗口显示的就是该数据包的结构;树的形状按照网络协议的层次从上到下排列。3 16 进制数据包窗口;该窗口以 16 进制的形式显示协议数窗口中对应的数据包。注意,窗口的整体布局(1、2、3 窗口的位置)可以通过菜单:Edit-Preferences来设置。下面具体介绍上面 3 个窗口的功能。3.2.1. 协

7、议数据包窗口3.2.1.1. 格式捕获的数据包默认按照时间的顺序全部显示在该窗口中,窗口的选项从左到右分别是:包序号、时间(单位为秒)、数据包源的 IP 地址、数据包目标的 IP地址、协议类型、包信息概述。下面是一个 HTTP 数据包的例子:包号是 20;当前包到达时间距离第一个包是 59.886024 秒;包的源 IP 地址是210.77.145.167;包的目的地址是 60.166.179.164,由于是 HTTP 协议(基于TCP),所以有一个地址应该是本地计算机地址,该目的地址就是本地机器地址。协议类型为 HTTP 协议,也就是 TCP 端口号为 80,Ethereal 对支持的协议都

8、会在这里以协议的名称显示出来,否则这里显示 TCP 端口号或 UDP 端口号,当然对于非 TCP 和 UDP 的另当别论。最后的信息一栏对于 TCP 和 UDP 数据包显示数据包从端口到端口,如果有 TCP和 UDP 标志,也会显示在该栏中;对于 TCP 会显示其他的参数,如窗口、ACK序号等。下面是另外一个例子。3.2.1.2. 颜色选项Ethereal 对于不同的协议可设置不同的颜色,从而方便用户观察任何异常的数据包,设置颜色选项通过菜单 View-Coloring Rules 来设置。选择该菜单以后,出现颜色设置对话框,如下所示:图 4,协议颜色选项系统提供了默认的协议颜色设置,对于某些

9、铭感的协议标志采用红色或黑色来表示。例如:Bad TCP 标志。3.2.1.3. 浏览 TCP 数据流的内容Ethereal 提供了一个选项,可以用来浏览一个 TCP 连接上的数据,这些数据以ASCII 码等形式显示;可以在协议数据包窗口中选择一个 TCP 数据包,然后选择右键菜单:Follow TCP Stream,然后出现如图 5 所示的窗口:图 5,浏览 TCP 数据流Ethereal 提供了 4 种形式来显示数据;如果选择 ASCII 码,对于明码传递的文本数据都可以在这里查看到,例子中的是一个 HTTP 协议的 TCP 流(HTTP 是使用 80 端口的一种 TCP 协议)。注意,你

10、可能通过该方式一不小心浏览别人明码方式传递的帐户和口令信息哦。3.2.2. 协议树窗口当在协议数据包窗口中选择一个数据包的时候,该数据包的协议树就在协议树窗口中被创建。下图是一个 TCP 数据包的协议树窗口:图 6,协议树窗口上面是一个 HTTP 协议的数据包窗口。协议树窗口显示的协议层次与网络协议的层次对应;下表是上面这个例子的对应关系:树节点名称 对应的协议层次 说明Frame 帧 Ethernet II 数据链路层 以太网协议Internet Protocol 网络层 IP 协议Transmission Control Protocol传输层 TCP 协议HTTP Protocol 应用

11、层 HTTP 协议每个树节点下的都是该数据包在该层的具体参数和数据。要了解每个树节点的含义需要熟读 TCP/IP 协议族。这里需要记住一点,从应用层到最底层,通过逐渐添加数据包头来完成的,在数据链路层有一个尾部。这里仅仅举两个三个例子:IP 协议节点、TCP 协议节点、HTTP 协议节点。注意:帧这层没有对应的网络层,实际上该层是 Ethereal 为了管理自己建立的,其中的帧序号通常是显示过滤条件的重要参数。3.2.2.1. IP 协议节点图 7,IP 协议节点上面节点说明如下:树节点名称 说明Version IP 版本,IPV4Header Length 20 个字节的 IP 头,没有其他

12、选项Total Length 该 IP 包携带的 670 字节Flags 不分片标志被设置,该 IP 在通过各种类型网络时候不分片传输;如果该网络的最大数据包小于该 IP包的长度,数据包将不能传输。Time to live TTL 值为 64,最多数据传输 64 个节点就被抛弃Protocol 上面的协议数据包是 TCP 协议的Header Checksum 头的检验和,通过该字段可以知道数据是否有错误Source, Destination 数据包的网络层源和目标地址3.2.2.2. TCP 协议节点图 8,TCP 协议节点上面节点说明如下:树节点名称 说明Source port 源端口,传输

13、层的源地址Destination port 目的端口,传输层的目的地址Sequence number 当前包所载有效数据的起始序号,在一个连接中从开始记数;以字节记数。Next sequence number下一个包的序号,是起始需要加包的有效数据长度的和Acknowledgement number是源用来确认目标在该连接上的到该序号的数据都已经收到。Header length 头的长度Flags TCP 标志,上面的例子中表示该包是一个 PUSH 标志和 ACK标志,ACK 标志几乎每个包都有(握手和终止的时候可能没有);PUSH 标志用来告诉目标尽快将数据提交给应用程序。一般意义上 PUS

14、H 标志用于一个应用层包的结束。例如:通过 SOCKET 的 SEND 来发送 4K 的数据,对于 TCP 来说需要分解成多个 TCP 包,只有在最后一个 TCP 包传送的时候才设置该标志,用来告诉对方 4K 数据已经发送完毕,对方的 TCP可以将数据返回给其 RECV 了。这个标志以前可以自己设置,现在一般实现为自动设置。Windows size 告诉对方 TCP 窗口的数据大小;对方还可以发送多少数据Checksum 检验和Options 选项字段,特殊的 TCP 用途。3.2.2.3. 应用层协议节点图 9,应用层协议节点上面的例子是一个 HTTP 协议数据包;通常这层节点是应用层数据;

15、例如:WEBEX 的 TP/ARM 协议,SSL 协议等。具体协议参数的含义取决于不同的一些类型。现在的大部分新增的协议都是在这一层之上的,例如:腾讯公司的 QQ 协议,微软 MSN 协议等;对于这些来说,他们一般使用一个固定的端口,而 Ethereal解析这些协议也正是基于这些端口。作者本人当写添加的协议就是在该层。如果你想为自己公司的协议添加一个协议解析器,你可以工作在这一层;后面我们将介绍如何添加协议解析器。3.2.3. 16 进制数据包窗口16 进制数据包窗口将数据包的所有内容以 16 进制的形式显示出来,如下图所示:图 10,16 进制数据包窗口该窗口包括 3 部分,分别是:1. 1

16、6 进制的序号,字节为单位2. 16 进制的数据内容;16 个字节一行3. ASCII 码数据内容用户可以通过直接观察数据包的内容来检查数据。16 进制数据包窗口和协议树窗口联合在一起用来完整的表示一个数据包;在协议树上选择一个节点会对应到 16 进制数据包窗口,当然这个协议应该是被解析的。下面就是一个例子:图 11,协议树和 16 进制窗口的对应关系图中显示 TCP 的窗口大小对应的实际值。提示,如果数据以明码的形式传输,我们可以在 3 会观察到数据的具体内容。3.3. 数据捕获高级篇为了更精确的捕获数据,Ethereal 提供了捕获数据的过滤条件,可以通过设置过滤条件将不需要的数据过滤掉。Ethereal 使用 pcap (libpcap /winpcap)的过滤语言作为过滤条件。在http:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 商业合同/协议

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号