计算机网络安全与应用 贺思德 申浩如 第¥章 网络
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
分析软件 Ethereal
¥- 1
网络协议分析软件网络协议分析软件网络协议分析软件网络协议分析软件 EtherealEtherealEtherealEthereal
使用手册使用手册使用手册使用手册
贺思德贺思德贺思德贺思德 申浩如申浩如申浩如申浩如
2007 年年年年 7 月月月月
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 2
目录目录目录目录
第¥章 网络协议分析软件 Ethereal 使用手册
¥.1 网络协议分析概述
¥.2 网络协议分析软件 Ethereal 简介
¥.2.1 Ethereal 概述
1. Ethereal 的用户界面简介
2. 在网络中部署 Ethereal
¥.2.2 下载和安装
¥.2.3 Ethereal 的使用
1. Ethereal 的主界面
2. Ethereal 的菜单及其使用
¥.2.4 Ethereal 过滤器(Filters)的使用
1. 捕获过滤规则的书写
2. 显示过滤规则的书写
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 3
第¥章 网络协议分析软件 Ethereal
本章介绍网络协议分析软件 Ethereal,包括两个方面:1)网络协议分析和网络嗅探的
概念和工作原理;2)网络协议分析软件 Ethereal 的使用方法。
网络协议数据分析用于捕获真实网络的数据流,通过分析这些数据以确定在网络上发
生了什么事情,用于网络安全管理、故障诊断、黑客追踪等。本章首先介绍网络协议分析
的概念及其工作原理,接着详细讲解网络协议分析软件 Ethereal 的使用,包括界面介绍、
在网络系统中的捕获位置选择、软件安装、过滤器的使用等。Ethereal 主界面上的各种操
作菜单的介绍包括:文件菜单(File)、编辑菜单(Edit)、包捕获菜单(Capture)、分析菜
单(Analyze)、统计菜单(Statistics)。还介绍捕获过滤器和显示过滤器的表达式书写等。
学习使用 Ethereal,必须把握以下几点:
1)理解和熟悉 ICP/IP 网络协议的基础知识。必须对所监测的网络及其协议有清楚的
理解,尤其是网络各层协议的工作过程、协议字段的含义及表现形式。
2)要多阅读分析网络包的捕获实例。建议读者亲自捕获一些自己的真实网络上的数
据包,以这些包为实验材料进行各种功能的练习,这样才能领会 Ethereal 每项功能设计的
用意所在,提高自己对网络真实数据的分析判读能力。
3)熟练掌握过滤器的使用。如果 Ethereal 提供的过滤器不能满足需要的话,也可以自
己设计过滤器,掌握过滤器表达式的书写规则。真实的网络数据可能是各种各样的网络用
户传输的数据流的大混杂,为了迅速地提取要搜索的目标数据,应当使用过滤器对捕获的
包进行选择性过滤,这样可极大地提高网络监测分析的效率。
4)参考资料应合理取舍。Ethereal 是一个开放代码的网络协议分析软件,参与开发和
研究的人员众多,文档资料纷繁复杂,发布版本较多。因此,在阅读参考资料时应注意取
舍,集中精力掌握一个主要版本的使用。它的权威网址是 www.ethereal.com。
¥.1 网络协议分析概述
在前面的内容中读者已粗略地接触过网络协议分析软件,我们利用 Ethereal 捕获分析
网络各层协议数据,进行了 HTTP 等协议工作原理的初步研究。网络分析(Network analysis)
是捕获网络数据流并对其进行分析,从而探测网络上正在发生的事件。用网络分析器
(Network analyzer)解剖常见协议的数据包,以简明的方式显示这些网络信息。因此网络
分析也被称为流量分析、协议分析、嗅探、数据包分析或者窃听等。
网络分析器可以是一个配有专门软件的独立设备,也可以是安装在网络计算机上的一
个软件工具。目前有开源和商用两大类型。
((((1))))Ethereal 网络分析器的窗口布局网络分析器的窗口布局网络分析器的窗口布局网络分析器的窗口布局::::由上中下三个窗格面板组成,如图¥.1 所示。
� 上窗格为包概况面板:在该面板中每一行显示一个捕获的数据包。显示的字段包括包
的捕获序号、捕获时间、源和目的(IP 或 MAC)地址、以及协议名称和相关信息。
� 中窗格为包的详细内容面板:它以树型视图结构,显示在上窗格中点亮的被捕获数据
包中每一层协议的细节。
� 下窗格为包的原始数据面板:左边为以十六进制方式,右边为 ASCII 码方式,显示被
捕获包的代码数据信息。
((((2))))网络分析器网络分析器网络分析器网络分析器可由可由可由可由软软软软件或件或件或件或硬件硬件硬件硬件实现实现实现实现::::虽然每种产品各不相同,但都由以下五个基
本部分组成:
� 硬件:大多数网络分析器是软件程序实现的,运行在操作系统和网络接口卡上。也有
硬件实现的网络分析器,它提供诸如硬件错误(循环冗余校验 CRC 错误、电压问题、
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 4
线缆问题、拥塞问题等等)的额外分析,并且具有很高的捕获速度,适用于电信运营
商等的大型高速网络的数据监测。
捕获时间 上层协议
菜单栏
工具栏
过滤器
工具栏
包概
况窗
体
协议树
窗体
数据显
示窗体
状态栏
捕获包序号 源地址 目的地址 包内容提要
包的16进制代码区 包的ASCII代码区
图¥.1 网络分析器 Ethereal 主界面
� 捕获驱动程序:用来从线路上捕获网络数据流。驱动程序还可过滤流量,并存储在缓
存中。它是网络分析器的核心,缺少它就不能进行数据捕获。
� 缓存:用来存储被捕获的数据。
� 实时分析:数据在线路上传输时对其进行实时分析。一些网络分析器利用此功能查找
网络性能方面的问题。网络入侵检测系统则利用该功能查找入侵活动的标识。
� 解码:用来显示网络数据流的内容,以便于人们读懂这些内容。解码针对的是每一个
网络协议包内的字段解读,便于人们分析。
((((3))))什么人什么人什么人什么人需要使用网络分析器需要使用网络分析器需要使用网络分析器需要使用网络分析器????
网络管理员、网络工程师、安全工程师、系统操作员,软件程序员都经常使用网络分
析器,它对网络故障诊断是非常有用的。且使用方便,价格低廉,Ethereal 是免费的开源
软件。下面列出了网络分析器的一些用途:
� 把数据包中的二进制信息转变为人们易读懂的格式;
� 网络故障检测,分析网络性能,发现网络瓶颈;
� 网络入侵检测,记录网络流量作为信息和安全事件的证据;
� 分析应用程序的工作过程,发现网卡错误;
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 5
� 追踪拒绝服务攻击(DoS)的源头,探测间谍软件活动;
� 网络编程的调试,计算机漏洞检测;
� 确认是否遵循企业制定的安全策略
� 网络协议学习的教辅工具,逆向工程协议分析研究。
网络分析器是保持网络最优化、探测安全问题的关键工具。制度化的日常管理可以在
陷入严重问题之前,或是在网络瘫痪或危及机密数据之前找到问题之所在。除了识别网络
攻击和可疑行为,还能使用网络分析器探测存在安全隐患从而加强企业网络的安全策略。
网络分析器允许用户从网络上捕获数据,信息解码,并以容易理解的格式显示出来。
¥.2 网络协议分析软件 Ethereal 简介
毫无疑问 Ethereal 是最成功的开源网络分析软件。其性能可与商业网络分析器媲美,
而且由于编制它的程序员分散在世界各地,每天都会有新模块加入 Ethereal。当然,就
Ethereal 的代码而言,仍处于测试阶段,还存在某些错误。这里介绍的是 Ethereal 的 0.10.0
版本使用方法,该版本包含了许多增强性能,尤其是在文件捕获方面。读者使用的版本很
可能比它更新,但是基本结构是相同的。本节主要讨论:什么是 Ethereal,它的发展史及
其特点,以及如何在网络系统中使用它。
¥.2.1 Ethereal 概述
Ethereal 读取来自网络上的数据包,对其进行解码和翻译,以人易理解的格式呈现出
来。出于扩充网络互联知识和对网络故障检测工具的迫切需求,Gerald Combs 于 1997 年
开发了 Ethereal 软件,0.2.0 是 1998 年公布的第一个版本。之后,包括 Gilbert Ramirez,
Guy Harris 和 Richard Sharpe 在内的开发小组迅速对 Ethereal 进行了补丁和增强,并提供了
其它解析器。从此,越来越多的人参与到特殊协议的解析器开发中,从而壮大了 Ethereal
的研发队伍。正因为如此,Ethereal 的功能不断增强,流行程度与日俱增,它有如下特点:
� 保持了 GNU(GNU 是一个免费类 UNIX 操作系统,使用 GNU 工具和 Linux 内核,
GNU 项目由 FSF 支持)的通用公共许可证(General Public License,GPL);
� 工作在混杂和非混杂模式,实时捕获网络数据,或读取已存在的捕获文件;
� 易于掌握和配置的图形用户界面(GUI),丰富的显示过滤功能;
� 支持 Tcpdump 格式的捕获文件;
� 使用 ASCII 或 EBCDIC 或十六进制码或 C 语言数组重建并显示 TCP 会话;
� 在包括基于 UNIX 和 Windows 的 20 多种系统平台上运行;
� 支持 480 多种新旧协议,解析器直接加入代码中,或以插件形式加入;
� 可从 20 多种不同产品的输出文件中读取捕获信息;
� 以各种格式存储捕获文件,具有良好的软件兼容性,如 libpcap、Network Associates
Sniffer、Microsoft Network Monitor 和 Sun snoop 等;
� 可在各种网络媒介中捕获数据,如以太网、令牌环、802.11 无线网络等等;
� 包括各种支持程序,诸如 editcap,mergecap 和 text2pcap
� 可将捕获文件以明文或脚本方式输出。
1. Ethereal 的用户界面简介
我们将在下一节中详细讲解 Ethereal 的图形化用户界面的构成,这里只作简要介绍。
图¥.1 是 Ethereal 界面截图。共有三个窗口面板组成,从上到下分别是捕获包的概况,协
议的详细内容和包的原始数据。其中,第二窗格是一个协议的树型视图,点击协议树的各
个部分会在第三层面板中高亮显示相应的十六进制和 ASCII 码数据。同样,点击第三窗格
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 6
数据的各个部分也会在第二窗格中高亮显示相应的协议字段。
Ethereal 的特点之一是能把组成一个 TCP 会话进程的、分散在多个独立 IP 包中传输的
所有包重组,并以易读的格式显示成 ASCII 码字符文件,也可显示成 EBCDIC,十六进制
和 C 语言文件。随后这些完整的数据文件可保存或打印。这样做的好处是能够从捕获数据
流中重构一个 Web 页面。只需跟踪 HTTP 会话流,并保存到一个文件中。接着显示重构的
HTML 离线文档(该文档不含图片)。图¥.2 是一个重构的 Telnet 登录会话的 TCP 数据流,
从中可直接读出用明文传输的用户名和口令。
图¥.2 跟踪 TCP 数据流还原一个 Telnet 会话进程
包过滤器能帮用户快速找到正在寻找的数据包,而无需删除别的数据包。Ethereal 分
别使用捕获过滤器和显示过滤器。捕获过滤器的语法与 Tcpdump 相同,用来捕获指定类型
的网络数据流。显示过滤器对已捕获的数据包进行分类显示。表¥.1 给出了 IP 协议的实
例及其显示过滤器字段的说明。
IP 协议协议协议协议
字段字段字段字段 名称名称名称名称 数据类型数据类型数据类型数据类型
ip.addr 源或目的地址 IPv4 地址
ip.checksum 包头校验位 无符号整型(16 位)
ip.checksum_bad 坏包头校验位 Boolean 值
ip.dsfield 区分业务字段 无符号整型(8 位)
ip.dsfield.ce ECN-CE 位 无符号整型(8 位)
ip.dsfield.dscp 区分业务码点 无符号整型(8 位)
ip.dsfield.ect 显示拥塞支持传输 (ECT) 无符号整型(8 位)
ip.dst 目的地址 IPv4 地址
ip.flags 标志位 无符号整型(8 位)
ip.flags.df 允许/不允许分段位 Boolean 值
ip.flags.mf 后面是否还有分段数据包 Boolean 值
ip.frag_offset 段偏移 无符号整型(8 位)
ip.fragment IP 片段 帧数
ip.fragment.error 分段碎片错误 帧数
ip.fragment.multipletails 多附加段建立位 Boolean 值
ip.fragment.overlap IP 数据分段交迭位 Boolean 值
ip.fragment.overlap. conflict IP 段交迭数据冲突位 Boolean 值
ip.fragment.
toolongfragment
IP 包分段过长位 Boolean 值
ip.fragments IP 片段 无值
ip.hdr_len 包长度 无符号整型(8 位)
ip.id 识别字段 无符号整型(16 位)
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 7
ip.len 总长度 无符号整型(16 位)
ip.proto 协议 无符号整型(8 位)
ip.reassembled_in 帧内重组 IP 数 帧数
ip.src 源地址 IPv4 地址
ip.tos 服务类型 无符号整型(8 位)
ip.tos.cost 开销 Boolean 值
ip.tos.delay 时延 Boolean 值
ip.tos.precedence 优先级 无符号整型(8 位)
ip.tos.reliability 可靠性 Boolean 值
ip.tos.throughput 吞吐量 Boolean 值
ip.ttl 生存时间 无符号整型(8 位)
ip.version 版本 无符号整型(8 位)
表¥.1 IP 协议在显示过滤器中的字段说明
一旦完成显示过滤器的设置,所有符合要求的包都会显示在 Summary Window 中。使
用过滤器对协议中的具体字段进行比较,例如 ip.src == 192.168.1.1,也可比较两个字段,
如 ip.src == ip.dst,或者仅仅检查特殊字段或协议的存在。过滤器也可用于统计功能。
假设要创建一个简单的过滤器来搜索一个确定的协议或字段。比如,如果想要观察
HTTP 数据包,就键入 http;如果观察 HTTP 请求数据包,如 GET,POST 和 HEAD,则
键入 http.request;过滤字段也可以是一个具体值,如 http.request.method==“GET”,用
来显示 HTTP GET 包。过滤器的表达式可使用以下比较比较比较比较运算符运算符运算符运算符:
等于:eq,== 不等于:ne,!= 大于:gt,>
小于:lt,< 大于或等于:ge,>= 小于或等于:le,<=
显示和捕获过滤器将会在¥.2.4 节中详细讲解。正如读者所见,采用过滤器可让网络
故障检测具有很大的灵活性和方便性。
Ethereal 的开源性意味着它拥有较多的技术支持,包括源代码的发布,新的开发程序
模块,以及安装等方面。下面列出了 5 个相关的 Ethereal 邮件列表。读者可通过访问
www.ethereal.com/lists,填写适当内容获取所需的资源。
� Ethereal-announce((((ethereal-announce@ethereal.com))))包括 Ethereal 新版本、缺点及普
遍问题的通告等,每月更新。
� Ethereal-users((((ethereal-users@ethereal.com))))包括使用 Ethereal 的常用信息和帮助,
每日更新。
� Ethereal-dev((((ethereal-dev@ethereal.com))))包括 Ethereal 的相关信息开发,面向程序员,
每日更新。
� Ethereal-doc((((ethereal-doc@ethereal.com))))包括 Ethereal 的相关文档,每月更新。
� Ethereal-cvs((((ethereal-dev@ethereal.com))))包括 Ethereal 程序员相关信息,让程序员了
解改变动态,每日更新。
另外一些资源是 Ethereal 用户指南(Richard Sharpe 编写),位于 www. ethereal. com/
docs /user-guide,虽然内容有些过时(基于 0.9.7 版本),但仍包含较丰富的信息。此外,
Ethereal 的网站 www.ethereal.com 也有大量的有用信息。其链接页 www. ethereal. com/
links.html 上有大量的站点链接,其中包括协议、RFC 文档、网络互联、端口介绍和其它
工具。案例捕获页面 www.ethereal.com/sample 上包含了各种网络数据流的捕获文件供下载
和分析。
2. 如何在网络中部署 Ethereal
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 8
在很多网络硬件设备上都可设置网络嗅探器,诸如线缆分接器(cable tap)、集线器
Hub 和交换机 Switches 等。
线缆分接器线缆分接器线缆分接器线缆分接器是网络线路连接的硬件设备。分接器(tap)提供了测试接入点,可以将该
设备接入到任何两台计算机、集线器、交换机、路由器或其他网络设备之间。分接器工作
在 10Mbps、100Mbps 或 1000Mbps 的全双工或半双工以太网链路上,支持各种接口尺寸,
它有以下特点:1)无需断开链路,即可动态插入网络进行监测和分析;2)不会干扰包到
达的时间,也不会造成错误包的统计不全;3)以在线速率全面地访问网络流量,可汇聚
多个数据流为单个流;4)不可见、无干扰地访问网络,提供端口镜像功能用于网络分析。
集线器集线器集线器集线器允许多主机共享网络介质。当计算机发送信息时,集线器向所有与之相连的其
他计算机转发该信息,这个共享区域称为冲突域,又叫广播域。一个集线器只形成一个冲
突域,如图¥.3 所示,它形成了 2 个冲突域。大范围的冲突域使得包嗅探变得很容易,但
同时容易出现带宽耗尽或集线器流量过大等现象,不适合于大流量网段的监测。
交换机交换机交换机交换机与集线器的工作原理大有不同。交换机收到信息时并不是盲目地向所有其他计
算机转发,而是检查包头中的目的 MAC(或 IP)地址,根据交换机存储器中保留的 MAC
(或 IP)地址表,向指定端口所连接的目的主机转发该数据包。这种情况下形成的冲突域
较小,只面向一个单独的端口,如图¥.4 所示,它形成了 5 个小冲突域。这样的冲突域为
每个连接提供了独立带宽,而不是像集线器那样所有用户共享一个带宽。
图¥.3 两个集线器连接的网络形成了 2 个大冲突域
图¥.4 交换机将局域网隔离为 5 个小冲突域
““““端口镜像端口镜像端口镜像端口镜像””””(port mirroring)又叫端口生成扩展(port spanning),让用户把一个特定
端口的数据流复制到另一个镜像端口。如果局域网的交换机提供端口镜像功能,则允许管
理员自行设置一个监视端口来监测其它端口的数据。监测的网段数据可以通过网络计算机
上安装的网络分析软件来实现。端口镜像不会干扰交换机的正常运行。图¥.5 描述了端口
镜像的过程,交换机上所有流经 port 1 的流量都镜像到 port 5,通过网络分析器可以监视
任何往来于 Computer A 的流量。有时管理员要镜像交换机上的所有上行链路端口,这样
使得所有流经交换机及其每个端口的流量都能被监视。
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 9
图¥.5 通过交换机的端口镜像功能监测指定端口的数据流
现举例说明如何在某些网络系统的关键部位部署 Ethereal。正确的部署对网络分析和
故障检测是至关重要的,应使测试设备处于受测网段中。当对有问题的网络进行故障检测
时,最好把 Ethereal 安装在笔记本电脑上,方便在各配线间或楼宇间来回移动。并且要用
到小型集线器和若干直连或交叉连接的网线。若要捕获外网客户端和服务器之间的通信流
量,如图¥.6 所示是一个错误的 Ethereal 部署图,Ethereal 笔记本电脑由一个交换机相连,
但它却无法监视到达目标服务器的流量,因为 Ethereal 笔记本计算机连接的部分不可访问
服务器所在的网段。
图¥.6 错误的部署使 Ethereal 笔记本计算机访问不到服务器端口的数据流
图¥.7 使用交换机的端口镜像监测服务器的数据流
图¥.7 描述了如何用端口镜像映射捕获外网客户端与服务器之间的流量。Ethereal 笔
记本计算机连接在与服务器同段的交换机上。启用交换机的端口镜像映射功能,把所有进
出该服务器端口的流量镜像到与 Ethereal 笔记本相连的端口上。这个方法不会对往来于服
务器的流量有任何干扰。
图¥.8 所示为使用集线器扩展端口来捕获从外部客户端到服务器的流量。可在服务器
和交换机之间安装插入一个小型集线器,扩展出一个端口用于连接 Ethereal 笔记本计算机。
由此,Ethereal 就可监视所有进出服务器的数据流。该方法会暂时对进出流量造成干扰。
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 10
图¥.8 在交换机网络中使用集线器扩展出 Ethereal 监测端口
图¥.9 所示为一个安装了分接器的网络结构,分接器安装在路由器的端口上。Ethereal
笔记本便可以监视所有外部网络与内网服务器之间的数据流,包括同一网段上的其他任何
流量。如果分接器是固定的,则该方法不会干扰进出服务器的数据流。
绝大部分的网络结构不像以上描述的那么简单。以上例子仅仅给出了如何在网络的各
部位使用 Ethereal 的方法。某些网络拓扑结构相当复杂,可能还是全网孔型的(fully
meshed),并带有冗余链路。再有,网络分段也会扩展成不同的层次,例如网络扩展到楼
层之间或建筑物之间等。为了最有效地部署嗅探器,必须认真地了解具体的网络拓扑结构。
图¥.9 使用线缆分接器的正确 Ethereal 部署
¥.2.2 Ethereal 软件的下载和安装
本节介绍在 Windows 操作系统(主要是 2000 或 XP)下安装 Ethereal 网络分析器的必
要步骤。除了 Windows 操作系统,Ethereal 还提供 UNIX 和 Linux 及 MacOS 的安装版本。
Ethereal 较权威的下载网址 www.ethereal.com/download.html,目前较新版本是 0.99.0。
在 Linux 系统下,需要对 Ethereal 源代码进行编译,确保主机的操作系统上已经安装
了 Libpcap、GTK+、Glib、Zlib、Perl、Net-SNMP,GNU adns 和 PCRE 工具包。而 Windows
系统下,则只需要安装 WinPcap 包捕获库即可。实际上,真正实现包捕获的是 PacketCap
(在 Windows 下叫作 WinPcap),Ethereal 只负责包的分析。也就是说,如果用户只需解析
数据包,而不抓取数据包,则不必安装 WinPcap。安装 Ethereal 之前的准备工作如下:
1....包捕获驱动程序的准备包捕获驱动程序的准备包捕获驱动程序的准备包捕获驱动程序的准备
每台计算机上的网卡负责接收和传输数据到网络上的其他主机。网络应用程序使用套
接字的方法来建立并保持主机间的连接,同时操作系统处理底层细节,并为通信提供协议
栈的分层操作。然而,有些应用程序无需协议栈而直接访问原始网络数据。包捕获驱动程
序便属于后者,它能够捕获原始的网络数据包。安装在某网络端口的包捕获驱动程序会抓
取在改端口能收到的所有数据,无论该数据是否属于此接收端。这是 Ethereal 这样的程序
可用于被动监视网络数据流的原因。
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 11
图¥.10 WinPcap 3.1 的许可证管理
两个著名而广泛使用的包捕获驱动程序是 Libpcap 和 WinPcap。Libpcap 是由美国伯克
利大学国家实验室开发的免费开源包捕获库,现在由 www.tcpdump.org 上的程序员维护。
Libpcap 不仅可以捕获数据包,还能面向用户的具体要求提供数据包过滤机制。WinPcap
则由 http://winpcap.polito.it 上的程序员维护,它使用了 Libpcap 的部分源代码。其它还有
许多软件使用这两款包捕获程序,如 TCPDump、WinDump、Snort、Ettercap、Dsniff、Nmap,
tcpflow 和 TCPstat。这些软件一般都作为网络分析器、协议分析器、流量日志工具、网络
入侵检测系统或其他安全工具使用。本节主要介绍 WinPcap 的安装。通常它已包含在新版
本的 Ehtereal 安装软件包中。
图¥.11 包捕获驱动程序 WinPcap 的安装进度
WinPcap 用于安装在 Windows 系统上,下面以 Windows XP 为例安装 WinPcap 3.1:
①双击安装文件 WinPcap_3_1.exe,启动安装向导后,点击 Next,进入 WinPcap 许可
证管理对话框,如图¥.10 所示。点击 I Agree。
②开始安装,图¥.11 显示了安装进度对话框,接着点击 Next。
③务必保证在安装新的 WinPcap 程序之前卸载旧的 WinPcap。最后安装完成。点击
Finish 即可。
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 12
2....将网卡设置为监听模式将网卡设置为监听模式将网卡设置为监听模式将网卡设置为监听模式
以太网(Ethernet)具有介质共享的特征,协议数据以明文形式在网络上传输,当网
卡被设为监听模式(又称混杂模式 promiscuous)时,可以捕获任何在同一冲突域上传输的
数据包。运用这一原理使 WinPcap 能够捕获我们所要的信息。通常,网卡具有四种工作模
式:
①广播模式(broadcast model):一个以太网帧的目的物理地址(MAC)设为 0xffffff
的帧为广播帧,工作在广播模式的网卡可以接收广播帧。
②多播模式(multicast model):把多播地址作为目的物理地址的以太网帧可以被组内
的其它主机同时接收,而组外主机则接收不到。但若将网卡设置为多播接收模式,它可以
接收所有的多播传送帧,而不论它是不是组内成员。
③直接模式(direct model):工作在直接模式下的网卡只接收目的地址是自己 MAC 地
址的帧。
④混杂模式(promiscuous model):工作在混杂模式下的网卡接收网络接口上的所有类
型的以太网帧,包捕获程序就是在这种模式下运行的。
网卡的默认工作模式设为广播模式和直接模式,即它只接收广播帧和发给自己的帧。
如果采用混杂模式,一个主机的网卡将接收同一网络内所有站点所发送的数据包,这样就
可以达到对网络信息监视或捕获的目的。网卡的混杂模式在 Ethereal 中会自动设置。
在 Windows XP 上安装 Ethereal 0.99.0 的过程如下:
1)双击安装文件 ethereal-setup-0.99.0.exe,启动安装向导。图¥.12 所示对话框显示了
Ethereal 使用的 GNU 通用公共许可证管理(GNU General Public License Agreement)信息。
阅读并接受许可证内容后,点击“I Agree”。
图¥.12 Ethereal GNU 许可证管理对话框
2)进入下一对话框中,选择要安装的组件,然后点击 Next。有三种安装类型:第一
种是传统的 GTK1 用户界面(Legacy GTK1 User Interface),需要 48.4MB 内存;第二种是
较新的 GTK2 用户界面(GTK2 User Interface),需要 52.3MB 内存;第三种是用户定制界
面(custom),完全定制需要 52.7MB。用户定制包括了以下可选项目(如表¥.2 所示):
Ethereal(主程序)
Ethereal GTK1 传统 GTK1 用户界面(不可选)
Ethereal GTK2 现代 GTK2 用户界面(必选)
GTK-Wimp GTK2 界面模拟(模拟成 Win32 系统的界面)
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 13
Tethereal(Ethereal 的命令行版本)
Plugins/Extensions(插件)
Dissector Plugins 扩展的包解析器
Tree Statistic Plugin 扩展的树型统计插件
Mate-Meta Analysis and Tracing Engine 元分析和包路径追踪引擎
LUA Plugin LUA 插件
SNMP MIBs SNMP 管理系统库
Tools(工具)
Editcap 读取捕获文件,可把其转换为别的捕获文件格式
Text2Pcap 产生 ASCII 码的十六进制的捕获文件,可将数据作为 Libpcap 格式输出
Mergecap 把多个捕获文件合成为一个文件输出
Capinfos 提供捕获文件的信息
表¥.2 Ethereal 的用户定制安装选项
图¥.13 WinPcap 3.1 安装提示界面
图¥.14 Ethereal 安装进度
3)进入 Select Additional Tasks 对话框,选择要建立的快捷方式(开始菜单、桌面快
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 14
捷方式或快速启动栏),并选择关联文件扩展类型,点击 Next。
4)进入安装路径对话框,选择合适的安装软件的路径。
5)进入 WinPcap 安装界面如图¥.13 所示。安装程序自动检测现存的 WinPcap 版本。
选择 Install WinPcap 3.1,那么意味着曾经安装的 WinPcap 版本会被首先卸载。选择 Start
WinPcap service “NBF” at startup,那么用户就能以非系统管理员权限捕获数据包。此处我
们已经安装了 WinPcap 3.1,直接点击 Next。
6)开始安装 Ethereal,图¥.14 显示了安装进度和安装细节。完成后点击 Next。
7)安装结束,可以开始使用 Ethereal。
捕获时间 上层协议
菜单栏
工具栏
过滤器
工具栏
包概
况窗
体
协议树
窗体
数据显
示窗体
状态栏
捕获包序号 源地址 目的地址 包内容提要
包的16进制代码区 包的ASCII代码区
图¥.15 网络协议分析软件 Ethereal 的主界面
¥.2.3 Ethereal 的使用
Ethereal 在协议实验、应用程序调试、检测网络活动等方面有较高的实用价值。几乎
在所有与网络交互的层面,都可以使用 Ethereal 来观察网络行为。同时,它也是一个优秀
的计算机网络教学辅助工具。能够让学生亲自看到并分析真实的网络流量,其教育意义是
深远的。毕竟,阅读描述某个协议原理的枯燥文字和亲身观察该协议的工作过程是有天壤
之别的。
1. Ethereal 的主界面
图¥.15 是 Ethereal 的主界面。在主界面中的窗格从上到下分为:菜单栏、工具栏、过
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 15
滤器工具栏(Filter Bar)、包概况窗格(Summary Window)、协议树窗格(Protocol Tree
Window)、数据显示窗格(Data View Window)和状态栏(Statusbar)。
其中,过滤器工具栏设置过滤条件,来选择哪些类型的数据包将会在 Summary Window
中显示,即只有符合条件的数据包才会显示在 Summary Window 中。状态栏(Statusbar)
主要显示捕获文件的全路径名和 Protocol Tree Window 中的协议字段信息。
((((1))))概况窗格概况窗格概况窗格概况窗格 Summary Window
上部窗格中显示捕获文件中的每个数据包的概况,一行显示一个包。各包的基本信息
分列显示,每列的内容如表¥.3 所示,该表中的实例是图¥.15 中被选中的 6 号数据包。
列名列名列名列名 描述描述描述描述 实例实例实例实例((((图图图图¥¥¥¥.15 中数据中数据中数据中数据))))
No. 捕获文件中数据包的序号 6
Time 该数据包被捕获的起始时间 (以秒为单位)
0.011226
(从启动捕获到该数据包被捕获之前
历经的时间)
Source
该包的最高层协议的源地址。通常显
示的是源的 IP 地址,但也可能是以太
网第 2 层(数据链路层)的 MAC 地
址,亦或是其他协议类型的地址(如
IPX、AppleTalk 等)
192.168.0.1
(该包的源 IP 地址为 192.168.0.1)
Destination
该包的最高层协议的目的地址。通常
显示的是目的的 IP 地址,但也可能是
以太网第 2 层(数据链路层)的 MAC
地址,亦或是其他协议类型的地址(如
IPX、AppleTalk 等)
192.168.0.101
(该包的目的 IP 地址 192.168.0.101)
Protocol 该包的最高层协议类型。诸如一些应用层协议:HTTP、FTP 和 SMTP
TCP
(该包是在 192.168.0.1 和
192.168.0.101 之间的 TCP 会话)
Info 该列给出该包的一些非常有用的解码信息,可作为该包的概况
TCP segment of a reassembled PDU
(重组协议数据单元 PDU 的 TCP 段)
表¥.3 概况窗体 Summary Window 各列的内容及实例
在上窗格中被选中的包会在中窗格(Protocol Tree Window)和下窗格(Data View
Window)中显示出更加细节的信息,便于进一步解剖该数据包。
((((2))))协议树窗口协议树窗口协议树窗口协议树窗口 Protocol Tree Window
在中部窗口中,把一个数据包内含的协议表示成树形结构。每一个协议都有一个可展
开的节点,节点下属的内容是该协议中更加具体的数据结构。任何拥有子树的节点,可以
点击左侧“+”展开其节点,从而获得更详细信息。仍然用图¥.15 中的 6 号数据包为例进
行说明。在未展开情况下,对该帧的各层协议进行要点的描述,见表¥.4。
协议协议协议协议层层层层 协议协议协议协议 描述描述描述描述((((图图图图¥¥¥¥.15 中数据中数据中数据中数据))))
数据包元数据 Frame 1200 bytes on wire, 1200 bytes captured
数据链路层(Layer 2) Ethernet II Src Addr: 00:06:25:8d:be:1d, Dst Addr: 00:07:e9:53:87:d9 源与目的 MAC 地址
网络层(Layer 3) Internet Protocol (IP) Src Addr: 192.168.0.1, Dst Addr: 192.168.0.101 源与目的 IP 地址
传输层(Layer 4) Transmission Control Protocol (TCP)
Src Port: 5678, Dst Port: 2054, Seq: 127,
Ack: 428, Len:1146 源与目的端口地址
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 16
协议协议协议协议层层层层 协议协议协议协议 描述描述描述描述((((图图图图¥¥¥¥.15 中数据中数据中数据中数据))))
应用层(Layer 7) 该包是 TCP 包,无应用层协议。
表¥.4 中部协议树窗口 Protocol Tree Window 实例
((((3))))数据窗口数据窗口数据窗口数据窗口 Data View Window
下部数据窗口的每一行由三部分数字或字母组成:起始的 4 位数是 4 个十六进制数(每
2 个十六进制数为 1 字节),表示从数据包第 0 号字节起始处计数的偏移量(offset),用来
计算该字段的字节位置数,每行有 16 字节;接着是 16 个二元数据组,每组有 2 个十六进
制数(表示 1 个字节);最右是 16 个 ASCII 码,它是左面的 16 个二元数据组的翻译文本,
其中“....”是“占位符”,代替数据中的非 ASCII 码。参看图¥.1。
当中部窗口 Protocol Tree Window 中的某字段被选中点黑时,相应的字节数据也会在
下部窗口 Data View Window 高亮显示,反之亦然。这一特性使两个窗体的数据对照显示,
以便牢固地掌握协议字段和链路比特之间的关系。
2. Ethereal 的菜单及其使用
本节系统介绍菜单项的功能及其使用实例。
((((1))))文件菜单文件菜单文件菜单文件菜单 File
点击 Ehtereal 界面左上角的 File 选项,功能菜单如表¥.5 所示。
菜单选项菜单选项菜单选项菜单选项 功能描述功能描述功能描述功能描述
Open… 打开一个捕获文件
Open Recent 打开最近使用过的捕获文件
Merge 允许一个捕获文件拼合到当前装载的捕获文件中
Close 关闭当前装载的捕获文件
Save 保存当前装载的捕获文件
Save As… 以欲保存的任何文件类型来保存当前的捕获文件
File Set 文件设置(文件目录显示)
Export 允许数据显示窗体中部分被高亮选中的部分数据
以纯文本、PS、CSV、PSML、PDML 格式输出
Print… 打印当前装载的捕获文件
Quit 退出 Ethereal
表¥.5 File 选项及功能
� 文件打开对话框(Open):
图¥.16 是点击 File > Open …后弹出的打开文件对话框。由于网络上的实时数据流量
很大,一般是将实时捕获数据保存为 .cap 文件,以便进行后期分析,例如寻找黑客的行
踪,分析网络用户的合法或非法活动等。
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 17
图¥.16 打开文件 Open 对话框
除提供正常的文件导航功能,Open 对话框还提供 filter 过滤功能:在 Filter 框中输入
显示过滤字符串,以显示捕获文件中符合过滤条件的数据包。见后面介绍。
Open 对话框提供了三种名字解析名字解析名字解析名字解析选项,用来翻译 MAC、Network 和 Transport 名字:
① 选择选择选择选择““““MAC name resolution””””:Ethereal 将解析 MAC 地址的前 3 个字节(网卡厂商代
码字节),将其翻译为设备制造商名称,如 MAC 地址 00:00:0c:35:0e:1c 会解析为
Cisco_35:0e:1c。对于著名厂商的 MAC 地址中的代码,直接给出厂商的名称;
② 选择选择选择选择““““Network name resolution””””:Ethereal 将进行反向域名解析查找与 IP 地址匹配的
域名,如 IP 地址 66.35.250.150 可被解析显示为 slashdot.org,反之亦然;
③ 选择选择选择选择““““Transport name resolution””””:Ethereal 将显示运行于每个端口(port)上的公认
服务名称,如将 80 端口解释为 http 服务。
� 另存为另存为另存为另存为对话框(Save As)
点击主界面 File > Save As 后弹出另存为另存为另存为另存为对话框。可在其中的下拉菜单 File Format 中
选择各种存储格式,以支持其他捕获文件格式;同时,可选择存储数据包的范围:所有包
All packets、选中的包 Selected packets 和指定包序号的范围 Range。存储的数据包可以是
当前捕获的(Captured)所有包,也可以是显示(Displayed)在 Summary Window 中的包。
� 打印打印打印打印对话框(Print)
图¥.17 是点击 File > Print 后弹出的打印对话框。打印之前必须决定如何进行打印、
打印哪些数据包,以及要打印包中的哪些信息。将捕获数据打印为文本,便于书写报告。
① Printer 栏:选择打印输出的格式,纯文本还是 PS 文本
。选择“Output to
File”,并确定输出文件的路径和名称,数据包便可输出到相应文件中。
② Packet Range 栏:选择输出包的范围:所有数据包 All packets、选中的包 Selected packet
only、已标记的包 Marked packets only、从第一个到最后一个已标记的包 From first to
last marked packets only 和指定包的序号范围 Specify a packet range。
计算机网络安全与应用 贺思德 申浩如 第¥章 网络协议分析软件 Ethereal
¥- 18
图¥.17 打印 Print 对话框
③ 包格式包格式包格式包格式 Packet Format 栏栏栏栏::::选择打印一个包中的哪些信息。
1)若只选择...包摘要行包摘要行包摘要行包摘要行....Packet summary line::::将只输出上窗格 Summary Window 中选
定数据包的一行摘要信息,例如,对图¥.15 中的 6 号数据包将会在文本文件中显示:
No. Time Source Destination Protocol Info
6 0.011226 192.168.0.1 192.168.0.101 TCP [TCP segment of a reassembled PDU]
2)若同时选择....包详细信息包详细信息包详细信息包详细信息.....Packet details::::则可输出更多6号包的在中窗格Protocol Tree
Window 中的信息。
3)选择全部折叠全部折叠全部折叠全部折叠 All colla