以太网常用抓包工具介绍 - 464713 - 图文

更新时间:2024-01-17 12:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

RTUB_105_C1 以太网常用抓包工具介绍

课程目标:

? 课程目标1:了解常见抓包软件? 课程目标2:掌握根据需要选择使用抓包软件并分析报文

目 录

第1章 以太网常用抓包工具介绍 ............................................................................................................ 1-1 1.1 摘要 ................................................................................................................................................. 1-1 1.2 简介 ................................................................................................................................................. 1-1 1.3 抓包工具介绍 ................................................................................................................................. 1-2 1.4 Sniffer使用教程 .............................................................................................................................. 1-2

1.4.1 概述 ....................................................................................................................................... 1-2 1.4.2 功能简介 ............................................................................................................................... 1-2 1.4.3 报文捕获解析 ....................................................................................................................... 1-4 1.4.4 设置捕获条件 ....................................................................................................................... 1-7 1.4.5 报文放送 ............................................................................................................................... 1-9 1.4.6 网络监视功能 ..................................................................................................................... 1-11 1.4.7 数据报文解码详解 ............................................................................................................. 1-13 1.5 ethreal的使用方法 ........................................................................................................................ 1-26

1.5.1 ethreal使用-入门 .............................................................................................................. 1-26 1.5.2 ethereal使用-capture选项 ................................................................................................ 1-27 1.5.3 ethereal的抓包过滤器 ......................................................................................................... 1-28 1.6 EtherPeekNX .................................................................................................................................. 1-32

1.6.1 过滤条件设置 ..................................................................................................................... 1-32 1.6.2 设置多个过滤条件 ............................................................................................................. 1-37 1.6.3 保存数据包 ......................................................................................................................... 1-41 1.6.4 分析数据包 ......................................................................................................................... 1-43 1.6.5 扩展功能 ............................................................................................................................... 1-1 1.6.6 简单分析问题的功能 ........................................................................................................... 1-4 1.6.7 部分解码功能 ....................................................................................................................... 1-8 1.6.8 案例 ....................................................................................................................................... 1-1 1.7 SpyNet .............................................................................................................................................. 1-1

1.7.1 使用简介 ............................................................................................................................... 1-1 1.7.2 使用步骤: ........................................................................................................................... 1-1

i

-ii-

1.1 摘要1.2 简介

第1章 以太网常用抓包工具介绍

? 知识点

? 了解常用抓包软件

? 熟悉根据需要选择抓包软件并分析报文

在处理IP网络的故障时,经常使用以太网抓包工具来查看和抓取IP网络上某些端口或某些网段的数据包,并对这些数据包进行分析,定位问题。 本章简要介绍几个常用抓包工具及应用。

目前在增值业务产品中,网关侧使用的协议均是基于TCP/IP的,例如SGIP(联通网关协议)、CMPP(移动网关协议)、SMPP(short message peer to peer,点对点的短信服务)、营帐协议等等。有时需要直接抓取TCP层的数据包进行分析,定位问题。

对于基于TCP/IP的协议,其应用都在TCP层之上,因此上层协议的定义都是在Application Layer中,只要抓取TCP数据包,对Application Layer中的Data Area对照相应的协议进行分析,就能判断问题所在。

抓包工具的特点如下: ?

通用性良好。抓包工具可以针对所有基于TCP/IP的协议,抓取数据包后自行进行分析。 ?

抓取的是TCP/IP中的TCP数据包。TCP数据包能够真实反映网络中的状态以及问题的原因。

通过抓包工具的使用,可以判断定位许多问题,抓包工具本身具有简单的查找,解码等功能,如果灵活运用,对于分析解决问题,是很有帮助的。但是,抓包工具也不是万能的,最终问题的解决仍然需要使用者对业务流程,对相关的协议有

-1-1-

足够的理解和掌握。另外,抓包工具本身需要占用系统资源,类似于全用户跟踪,不能长时间使用。

1.3 抓包工具介绍

常见的以太网抓包工具有几种,分别是Sniffer,PacketGrabber、EtherPeekNX、Ethereal,SpyNet。 ? ? ?

PacketGrabber,只能抓取数据包,无法查看解码数据包。

EtherPeekNX、Ethereal,可以抓取数据包,也可以查看解码数据包。 Ethereal、Sniffer,功能强大的抓包软件,几乎包揽了现有的绝大部分协议,有Unix版本,也有Windows版本。可以抓取数据包、查看数据包和解码数据包。

? SpyNet:功能不象Sniffer那么强大,但使用起来很简单的抓包软件 下面我们详细介绍一下Sniffer、Ethereal、EtherPeekNX、SpyNet这四款软件的使用方法。

1.4 Sniffer使用教程

1.4.1 概述

Sniffer软件是NAI公司推出的功能强大的协议分析软件。本文针对用Sniffer Pro网络分析器进行故障解决。利用Sniffer Pro 网络分析器的强大功能和特征,解决网络问题,将介绍一套合理的故障解决方法。

与Netxray比较,Sniffer支持的协议更丰富,例如PPPOE协议等在Netxray并不支持,在Sniffer上能够进行快速解码分析。Netxray不能在Windows 2000和Windows XP上正常运行,Sniffer Pro 4.6可以运行在各种Windows平台上。 Sniffer软件比较大,运行时需要的计算机内存比较大,否则运行比较慢,这也是它与Netxray相比的一个缺点。

1.4.2 功能简介

下面列出了Sniffer软件的一些功能介绍,其功能的详细介绍可以参考Sniffer的在线帮助。 捕获网络流量进行详细分析

-1-2-

利用专家分析系统诊断问题 实时监控网络活动 收集网络利用率和错误等

在进行流量捕获之前首先选择网络适配器,确定从计算机的哪个网络适配器上接收数据。位置:File->select settings

选择网络适配器后才能正常工作。该软件安装在Windows 98操作系统上,Sniffer可以选择拨号适配器对窄带拨号进行操作。如果安装了EnterNet500等PPPOE软件还可以选择虚拟出的PPPOE网卡。对于安装在Windows 2000/XP上则无上述功能,这和操作系统有关。

本文将对报文的捕获几网络性能监视等功能进行详细的介绍。下图为在软件中快捷键的位置。

-1-3-

1.4.3 报文捕获解析

1.4.3.1 捕获面板

报文捕获功能可以在报文捕获面板中进行完成,如下是捕获面板的功能图:图中显示的是处于开始状态的面板

捕获条件编辑选择捕获条件捕获开始捕获暂停捕获停止捕获停止并查看捕获查看

1.4.3.2 捕获过程报文统计

在捕获过程中可以通过查看下面面板查看捕获报文的数量和缓冲区的利用率。

捕获报文数捕获报文的数据缓冲大小详细统计信息

1.4.3.3 捕获报文查看

Sniffer软件提供了强大的分析能力和解码功能。如下图所示,对于捕获的报文提供了一个Expert专家分析系统进行分析,还有解码选项及图形和表格的统计信息。

-1-4-

专家分析系统专家分析系统捕获报文的图形分析捕获报文的其他统计信息

? 专家分析

专家分分析系统提供了一个只能的分析平台,对网络上的流量进行了一些分析对于分析出的诊断结果可以查看在线帮助获得。

在下图中显示出在网络中WINS查询失败的次数及TCP重传的次数统计等内容,可以方便了解网络中高层协议出现故障的可能点。

对于某项统计分析可以通过用鼠标双击此条记录可以查看详细统计信息且对于每一项都可以通过查看帮助来了解起产生的原因。

双击此记录可以查看详细信息

-1-5-

? 解码分析

下图是对捕获报文进行解码的显示,通常分为三部分,目前大部分此类软件结构都采用这种结构显示。对于解码主要要求分析人员对协议比较熟悉,这样才能看懂解析出来的报文。使用该软件是很简单的事情,要能够利用软件解码分析来解决问题关键是要对各种层次的协议了解的比较透彻。工具软件只是提供一个辅助的手段。因涉及的内容太多,这里不对协议进行过多讲解,请参阅其他相关资料。 对于MAC地址,Snffier软件进行了头部的替换,如00e0fc开头的就替换成Huawei,这样有利于了解网络上各种相关设备的制造厂商信息。

捕获的报文报文解码二进制内容

功能是按照过滤器设置的过滤规则进行数据的捕获或显示。在菜单上的位置分别为 Capture->Define Filter和Display->Define Filter。

过滤器可以根据物理地址或IP地址和协议选择进行组合筛选。 ? 统计分析

对于Matrix,Host Table,Portocol Dist. Statistics等提供了丰富的按照地址,协议等内容做了丰富的组合统计,比较简单,可以通过操作很快掌握这里就不再详细介绍了。

-1-6-

1.4.4 设置捕获条件

1.4.4.1 基本捕获条件

基本的捕获条件有两种:

1、链路层捕获,按源MAC和目的MAC地址进行捕获,输入方式为十六进制连续输入,如:00E0FC123456。

2、IP层捕获,按源IP和目的IP进行捕获。输入方式为点间隔方式,如:10.107.1.1。如果选择IP层捕获条件则ARP等报文将被过滤掉。

任意捕获条件编辑协议捕获编辑缓冲区编辑基本捕获条件链路层捕获IP层捕获链路层捕获地址条件数据流方向

1.4.4.2 高级捕获条件

在“Advance”页面下,你可以编辑你的协议捕获条件,如图:

-1-7-

选择要捕获的协议错误帧是否捕获捕获帧长度条件保存过滤规则条件

高级捕获条件编辑图

在协议选择树中你可以选择你需要捕获的协议条件,如果什么都不选,则表示忽略该条件,捕获所有协议。

在捕获帧长度条件下,你可以捕获,等于、小于、大于某个值的报文。 在错误帧是否捕获栏,你可以选择当网络上有如下错误时是否捕获。

在保存过滤规则条件按钮“Profiles”,你可以将你当前设置的过滤规则,进行保存,在捕获主面板中,你可以选择你保存的捕获条件。

1.4.4.3 任意捕获条件

在Data Pattern下,你可以编辑任意捕获条件,如下图:

-1-8-

添加关系节点模板间关系控制添加排除增加模板模板编辑

用这种方法可以实现复杂的报文过滤,但很多时候是得不偿失,有时截获的报文本就不多,还不如自己看看来得快。

1.4.5 报文放送

1.4.5.1 编辑报文发送

Sniffer软件报文发送功能就比较弱,如下是发送的主面板图:

发送报文编辑

发送前,你需要先编辑报文发送的内容。点击发送报文编辑按钮。可得到如下的报文编辑窗口:

-1-9-

发送间隔发送模式指定报文长度发送内容

首先要指定数据帧发送的长度,然后从链路层开始,一个一个将报文填充完成,如果是NetXray支持可以解析的协议,从“Decode”页面中,可看见解析后的直观表示。

1.4.5.2 捕获编辑报文发送

将捕获到的报文直接转换成发送报文,然后修修改改可也。如下是一个捕获报文后的报文查看窗口:

-1-10-

选中某个捕获的报文,用鼠标右键激活菜单,选择“Send Current Packet”,这时你就会发现,该报文的内容已经被原封不动的送到“发送编辑窗口”中了。这时,你在修修改改,就比你全部填充报文省事多了。

发送模式有两种:连续发送和定量发送。可以设置发送间隔,如果为0,则以最快的速度进行发送。

1.4.6 网络监视功能

网络监视功能能够时刻监视网络统计,网络上资源的利用率,并能够监视网络流量的异常状况,这里只介绍一下Dashbord和ART,其他功能可以参看在线帮助,或直接使用即可,比较简单。

-1-11-

统计平均数据或总和连续的统计图为统计图选择统计指标

1.4.6.1 Application Response Time (ART):

Application Response Time (ART) 是可以监视TCP/UDP应用层程序在客户端和服务器响应时间,如HTTP,FTP,DNS等应用。 对与TCP/UDP响应时间的计算方法如下

TCP For each socket, ART stores the sequence numbers for packets sent by the client and waits for the corresponding ACK packets from the server. It then measures the time difference between the packet with the stored sequence number and the packet with the ACK to arrive at the response time.

UDP For each socket, ART measures the time between packets going from a client to a server and the next packet going from the server to the client.

-1-12-

此三个按钮可以选择按图形或表格方式显示属性按钮主要设置监控参数如要监控哪种应用等监控参数监控的应用

1.4.7 数据报文解码详解

本章主要对:数据报文分层、以太报文结构、IP协议、ARP协议、PPPOE协议、Radius协议等的解码分析做了简单的描述,目的在于介绍Sniffer软件在协议分析中的功能作用并通过解码分析对协议进一步了解。对其其他协议读者可以通过协议文档和Sniffer捕获的报文对比分析。

1.4.7.1 数据报文分层

如下图所示,对于四层网络结构,其不同层次完成不通功能。每一层次有众多协议组成。

应用层传输层网络层链路层Telnet FTP和e-mail等TCP 和UDPIP ICMP IGMP设备驱动程序及接口卡

-1-13-

如上图所示在Sniffer的解码表中分别对每一个层次协议进行解码分析。链路层对应“DLC”;网络层对应“IP”;传输层对应“UDP”;应用层对对应的是“NETB”等高层协议。Sniffer可以针对众多协议进行详细结构化解码分析。并利用树形结构良好的表现出来。

1.4.7.2 以太报文结构

EthernetII以太网帧结构

Ethernet_IIDMACSMACTypeDATA/PADFCS

Ethernet_II以太网帧类型报文结构为:目的MAC地址(6bytes)+源MAC地址+(6bytes)上层协议类型(2bytes)+数据字段(46-1500bytes)+校验(4bytes)。

Sniffer自动添加时间戳上层协议类型源MAC地址目的MAC地址

Sniffer会在捕获报文的时候自动记录捕获的时间,在解码显示时显示出来,在分析问题时提供了很好的时间记录。

源目的MAC地址在解码框中可以将前3字节代表厂商的字段翻译出来,方便定位问题,例如网络上2台设备IP地址设置冲突,可以通过解码翻译出厂商信息方便的将故障设备找到,如00e0fc为华为,010042为Cisco等等。如果需要查看详

-1-14-

1.4.7.3 IP协议

细的MAC地址用鼠标在解码框中点击此MAC地址,在下面的表格中会突出显示该地址的16进制编码。

IP网络来说Ethertype字段承载的时上层协议的类型主要包括0x800为IP协议,0x806为ARP协议。 IEEE802.3以太网报文结构

DSAPSSAPControl8bit8bit8/16bitLLC子层DMACSMACLengthLLCDATA/FCSMAC子层IEEE802.3帧结构

上图为IEEE802.3SNAP帧结构,与EthernetII不通点是目的和源地址后面的字段代表的不是上层协议类型而是报文长度。并多了LLC子层。

IP报文结构为IP协议头+载荷,其中对IP协议头部的分析,时分析IP报文的主要内容之一,关于IP报文详细信息请参考相关资料。这里给出了IP协议头部的一个结构。 版本:4——IPv4

首部长度:单位为4字节,最大60字节 TOS:IP优先级字段

总长度:单位字节,最大65535字节 标识:IP报文标识字段

标志:占3比特,只用到低位的两个比特

-1-15-

MF(More Fragment) MF=1,后面还有分片的数据包 MF=0,分片数据包的最后一个 DF(Don't Fragment)

DF=1,不允许分片 DF=0,允许分片

段偏移:分片后的分组在原分组中的相对位置,总共13比特,单位为8字节 寿命:TTL(Time To Live)丢弃TTL=0的报文 协议:携带的是何种协议报文 1 :ICMP 6 :TCP 17:UDP 89:OSPF

头部检验和:对IP协议首部的校验和 源IP地址:IP报文的源地址 目的IP地址:IP报文的目的地址

-1-16-

上图为Sniffer对IP协议首部的解码分析结构,和IP首部各个字段相对应,并给出了各个字段值所表示含义的英文解释。如上图报文协议(Protocol)字段的编码为0x11,通过Sniffer解码分析转换为十进制的17,代表UDP协议。其他字段的解码含义可以与此类似,只要对协议理解的比较清楚对解码内容的理解将会变的很容易。

1.4.7.4 ARP协议

以下为ARP报文结构

ARP分组具有如下的一些字段:

-1-17-

HTYPE(硬件类型)。这是一个16比特字段,用来定义运行ARP的网络的类型。每一个局域网基于其类型被指派给一个整数。例如,以太网是类型1。ARP可使用在任何网络上。

PTYPE(协议类型)。这是一个16比特字段,用来定义协议的类型。例如,对IPv4协议,这个字段的值是0800。ARP可用于任何高层协议。

HLEN(硬件长度)。这是一个8比特字段,用来定义以字节为单位的物理地址的长度。例如,对以太网这个值是6。

PLEN(协议长度)。这是一个8比特字段,用来定义以字节为单位的逻辑地址的长度。例如,对IPv4协议这个值是4。

OPER(操作)。这是一个16比特字段,用来定义分组的类型。已定义了两种类型:ARP请求(1),ARP回答(2)。

SHA(发送站硬件地址)。这是一个可变长度字段,用来定义发送站的物理地址的长度。例如,对以太网这个字段是6字节长。

SPA(发送站协议地址)。这是一个可变长度字段,用来定义发送站的逻辑(例如,IP)地址的长度。对于IP协议,这个字段是4字节长。

THA(目标硬件地址)。这是一个可变长度字段,用来定义目标的物理地址的长度。例如,对以太网这个字段是6字节长。对于ARP请求报文,这个字段是全0,因为发送站不知道目标的物理地址。

TPA(目标协议地址)。这是一个可变长度字段,用来定义目标的逻辑地址(例如,IP地址)的长度。对于IPv4协议,这个字段是4字节长。

上面为通过Sniffer解码的ARP请求和应答报文的结构。

-1-18

-

1.4.7.5 PPPOE协议

PPPOE简介

简单来说我们可能把PPPOE报文分成两大块,一大块是PPPOE的数据报头,另一块则是PPPOE的净载荷(数据域),对于PPPOE报文数据域中的内容会随着会话过程的进行而不断改变。下图为PPPOE的报文的格式:

? 数据报文最开始的4位为版本域,协议中给出了明确的规定,这个域的内容

填充0x01。

? 紧接在版本域后的4位是类型域,协议中同样规定,这个域的内容填充为0x01。 ? 代码域占用1个字节,对于PPPOE 的不同阶段这个域内的内容也是不一样的。 ? 会话ID点用2个字节,当访问集中器还未分配唯一的会话ID给用户主机的

话,则该域内的内容必须填充为0x0000,一旦主机获取了会话ID后,那么在后续的所有报文中该域必须填充那个唯一的会话ID值。 ? 长度域为2个字节,用来指示PPPOE数据报文中净载荷的长度。

? 数据域,有时也称之为净载荷域,在PPPOE的不同阶段该域内的数据内容会

有很大的不同。在PPPOE的发现阶段时,该域内会填充一些Tag(标记);而在PPPOE的会话阶段,该域则携带的是PPP的报文。

ISN 8850172.16.19.1/19Radius172.16.20.76PPPOE

-1-19-

捕获报文测试用例图

如图所示,Radius Server IP地址为172.16.20.76。PPPOE用户Radius报文交互过程分析如下。

上图为PPPOE从发现阶段到PPP LCP协商,认证IPCP协商阶段和PPPOE会话阶段交互过程。

PPPOE发现阶段,PADI报文,Sniffer解码结构如下所示。

-1-20-

PPPOE发现阶段PPPOEPADI报文PPPOETLV报文结构PPPOE发起端MAC地址以太网填充字节

PPPOE会话阶段,Sniffer解码结构如下所示。

PPPOE会话阶段PPPOE协议头6bytesPPPOESession ID号PPP协议头2bytes承载的IP协议报文

-1-21-

1.4.7.6 Radius协议

Radius报文简介 标准Radius协议包结构

图9 Radius包格式

Code:包类型;1字节;指示RADIUS包的类型。

1 Access- request 认证请求 2 Access- accept 认证响应 3 Access- reject 认证拒绝

4 Accounting-request 计费请求

5 Accounting-response 计费响应 *11 Access-challenge 认证挑战

Identifier: 包标识;1字节,取值范围为0 ~255;用于匹配请求包和响应包,同一组请求包和响应包的Identifier应相同。 Length: 包长度;2字节;整个包中所有域的长度。

Authenticator:16 字节长;用于验证RADIUS服务器传回来的请求以及密码隐藏算法上。

该验证字分为两种:

1、请求验证字---Request Authenticator

用在请求报文中,必须为全局唯一的随机值。 2、响应验证字---Response Authenticator

用在响应报文中,用于鉴别响应报文的合法性。

响应验证字=MD5(Code+ID+Length+请求验证字+Attributes+Key)

-1-22-

Attributes:属性

图10 属性格式

属性域是TLV结构编码。

ISN 8850172.16.19.1/19Radius172.16.20.76PPPOE测试用例图

下图为用户端PPPOE,Radius Server和BAS交互的认证上线和下线的过程。 报文1:BAS请求Radius Server认证报文。 报文2:Radius Server回应BAS认证通过报文。 报文3:BAS计费请求报文。 报文4:Radius Server计费响应报文。 报文5:BAS计费结束报文。

报文6:Radius Server计费结束响应报文。

从中可以看出对于报文请求和响应是通过IP地址+Radius 协议域中ID号进行配对识别的。

-1-23-

上图显示了BAS发起的Radius认证请求(Code=1)报文的结构。Radius报文是承载在UPD协议之上的,这里我没不关注上层报文的结构。

下图为PPPOE CHAP认证过程的Radius认证请求报文和PPPOE中CHAP认证的Challenge报文。通过比较可以方便看出BAS发出的Challenge值为“26fe8768341de68a72a1276771e1c1ca”与PPPOE中CHAP认证过程中BAS发给PPPOE用户的Challenge值是一致的。

BAS发给Radius的CHAP-Challenge属性

-1-24-

下图为PPPOE用户发为BAS的经过CHAP加密后的用户密码和BAS发给Radius Server中认证请求报文用户秘密属性域的比较。可以看出在Radius 认证过程中,BAS设备将Challenge属性和用户加密后的密码发给Radius进行验证。

PPPOE用户发给BAS的经过CHAP加密后的用户密码

-1-25-

通过比较可以清楚了解协议各字段含义相互关系,为问题处理提供有效的手段。 下面为PPPOE用户Radius认证的Sniffer捕获的报文。

1.5 ethreal的使用方法

1.5.1 ethreal使用-入门

ethreal可以用来从网络上抓包,并能对包进行分析。 下面介绍windows下面ethereal的使用方法

1.5.1.1 安装

1)安装winpcap,下载地址

http://netgroup-serv.polito.it/winpcap/install/Default.htm 2)安装ethreal,下载地址 http://www.ethereal.com/

1.5.1.2 使用

windows程序,使用很简单。

启动ethreal以后,选择菜单Capature->Start,就OK了。当你不想抓的时候,按一下stop,抓的包就会显示在面板中,并且已经分析好了。 下面是一个截图:

-1-26-

1.5.2 ethereal使用-capture选项

-1-27-

Interface: 指定在哪个接口(网卡)上抓包。一般情况下都是单网卡,所以使用缺省的就可以了

Limit each packet:限制每个包的大小,缺省情况不限制

Capture packets in promiscuous mode:是否打开混杂模式。如果打开,抓取所有的数据包。一般情况下只需要监听本机收到或者发出的包,因此应该关闭这个选项。 Filter:过滤器。只抓取满足过滤规则的包(可暂时略过) File:如果需要将抓到的包写到文件中,在这里输入文件名称。

usering buffer:是否使用循环缓冲。缺省情况下不使用,即一直抓包。注意,循环缓冲只有在写文件的时候才有效。如果使用了循环缓冲,还需要设置文件的数目,文件多大时回卷,其他的项选择缺省的就可以了。

1.5.3 ethereal的抓包过滤器

抓包过滤器用来抓取感兴趣的包,用在抓包过程中。

抓包过滤器使用的是libcap过滤器语言,在tcpdump的手册中有详细的解释,基本结构是:

[not] primitive [and|or [not] primitive ...]

个人观点,如果你想抓取某些特定的数据包时,可以有以下两种方法,你可以任选一种,个人比较偏好第二种方式:

1、在抓包的时候,就先定义好抓包过滤器,这样结果就是只抓到你设定好的那些类型的数据包;

2、先不管三七二十一,把本机收到或者发出的包一股脑的抓下来,然后使用下节介绍的显示过滤器,只让Ethereal显示那些你想要的那些类型的数据包;

1.5.3.1 etheral的显示过滤器(重点内容)

在抓包完成以后,显示过滤器可以用来找到你感兴趣的包,可以根据 1)协议

2)是否存在某个域 3)域值

-1-28

-

4)域值之间的比较 来查找你感兴趣的包。

举个例子,如果你只想查看使用tcp协议的包,在ethereal窗口的左下角的Filter中输入tcp,然后回车,ethereal就会只显示tcp协议的包。如下图所示:

值比较表达式

可以使用下面的操作符来构造显示过滤器 自然语言?类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

表达式组合

可以使用下面的逻辑操作符将表达式组合起来 自然语言?类c表示???举例

and && 逻辑与,比如ip.addr=10.1.10.20&&tcp.flag.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] ==

-1-29-

not ! 逻辑非,如 !llc 例如:

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

请记住一个诀窍:只要在Filter的背景是绿色,就证明你设定的Filter是合乎规定的,但是当背景是红色时,就说明你设定的Filter是Ethereal不允许的,是不对的。如:

-1-30

-

所有的过滤器(Filter)都可以在Filter旁边的Expression…中选取。 大家可以多钻研钻研。定有收获。

1.5.3.2 在ethereal使用协议插件

ethereal能够支持许多协议,但有些协议需要安装插件以后才能解,比如H.323

以H.323协议为例,首先下载ethereal的H.323插件,下载地址http://www.voice2sniff.org/

下载完了以后将文件(h323.dll)解压到ethereal安装目录的plugin\\0.9.x目录下面,比如我的是0.9.11 然后,需要进行一下设置 1)启动ethereal 2)菜单Edit->Preference

3)单击Protocols前面的\号,展开Protocols 4)找到Q931,并单击

-1-31-

5)确保\ TCP segments\是选中的(即方框被按下去) 6)单击TCP

7)确保\是选中的

8)确保没有选中\和\9)单击TPKT

10)确保\是选中的 11)点击Save,然后点击Apply,然后点击OK

你也完全可以不断地重新安装新版本winpcap和ethreal,这样就可以不需在旧的ethreal的版本中安装新的插件来支持新的协议插件。这也是懒人的一种做法。

1.6 EtherPeekNX

1.6.1 过滤条件设置

在进行抓包操作之前,首先需要设置过滤条件,用来控制需要抓取的数据包的类型。具体操作如下所示:

1. 运行EtherPeekNX工具,进入EtherPeekNX的主界面,如图1.6-1所示。

-1-32-

图1.6-1 EtherPeekNX的主界面

2. 在EtherPeekNX的主界面中,选择菜单[File→New]新建一个抓包任务,则

出现如图1.6-2所示界面。

图1.6-2 新建抓包任务界面

3. 在如图1.6-2所示的界面中,单击[Filters]选项进行数据包过滤选项设置,

出现如图1.6-3所示界面,界面中列出了所有可以抓取的数据包的类型。

-1-33-

图1.6-3 过滤条件设置界面

4. 若要抓取TCP数据包,则在如图1.6-3所示界面中单击选中[TCP]选项,右击并在弹出的快捷菜单栏中选中<Edit>,如图1.6-4所示。

-1-34-

图1.6-4 进入TCP数据包的编辑模式

5. 出现[Edit Filter]界面,如图1.6-5所示。

例如,要抓取203.152.30.140 与10.87.245.9之间的TCP数据包,则可以按照如图1.6-5所示界面中的设置。设置完成后单击<OK>按钮。

-1-35-

图1.6-5 Filter设置示例

其中,选中[Address filter]项,表示使用IP地址过滤方式;[Address 1]栏中输入203.152.30.140,表示数据包的源地址;[TYPE]栏中选中<IP>,表示两个IP地址之间是IP报文;[Address 2]栏中输入10.87.245.9,表示数据包的目的地址。 6. 在如图1.6-3所示界面中单击<确定>,出现如图1.6-6所示的界面,单击<Start Capture>按钮开始抓取数据包。

图1.6-6 开始抓取数据包

7. 出现如图1.6-7所示界面,显示抓的数据包的相关信息,包括数据包的目的地IP地址、包的大小、数据包的统计信息等等。

-1-36

-

图1.6-7 抓包的结果显示信息

1.6.2 设置多个过滤条件

如果需要抓取多个主机之间的数据包,需要设置多个过滤条件。

例如:FCN系统与SMG之间,以及FCN系统与BOSS系统之间,可以在设置过滤条件时,复制TCP过滤器,并对过滤条件进行修改。具体操作如下所示。 1. 在如图1.6-4所示界面中,选中[TCP]项右击,并在快捷菜单栏中选中[Duplicate]项,复制一个与[TCP]项相同过滤条件的项。如图1.6-8所示。

-1-37-

图1.6-8 复制[TCP]项

2. 复制完成之后,在项目列表中出现一个名为[COPY OF TCP]的过滤项,并右击该项,在快捷菜单中选中[Edit],如图1.6-9所示。

-1-38

-

图1.6-9 编辑复制项

3. 出现如图1.6-10所示的界面,可以在该界面中修改该过滤项目的相关参数。 此例中,将过滤器名称改为<TCP_FCN_BOSS>,过滤地址修改为地址<10.87.19.10>,修改完成之后单击<OK>按钮。

-1-39-

图1.6-10 修改复制项的名字

4. 得到一个新的过滤器[TCP_FCN_BOSS],单击选中[TCP]和[TCP_FCN_BOSS],则满足这两个过滤器的数据包都会被过滤出来,如图1.6-11所示。

-1-40

-

图1.6-11 生成两个过滤项

1.6.3 保存数据包

抓包操作结束后,可以把抓包的结果保存为一个文件存放在本地机器硬盘上。具体操作如下所示。

1. 抓包完毕后,在如图1.6-7所示界面中单击<Stop Capture>按钮停止抓包。 2. 在EtherPeekNX的主界面中,选择菜单[File→Save All Packet]保存所有抓到的数据包到本地硬盘上。如图1.6-12所示。

-1-41-

图1.6-12 保存抓包的结果

3. 出现如图1.6-13所示界面,输入保存的文件名后单击<保存>。

图1.6-13 保存抓包的结果为pkt文件

-1-42-

1.6.4 分析数据包

进行抓包操作的目的是对抓到的数据包进行分析,并对照相关的TCP/IP协议进行分析。

以下以参照营账接口协议分析从营账接口上抓到的数据包为例。 1. 查看营账接口协议的定义以及相关参数含义。 开户消息SetCallChgReq定义的含义可以参见表1.6-1。

表1.6-1 开户消息SetCallChgReq的定义

内容 名称 类型 字节数 说明 消息长度,不包含消息头长度,以’\\0’结束,注意要填16进制形式的字符,不要填成十消 息 头 Command ID SequenceNo User Number CFType1 CFType2 消 息 体 CFType4 CFType5 CF Number Reserved Char Char Char Char 1 1 21 8 CFType3 Char 1 Char Char Char Char Char 2 10 21 1 1 Message Length Char 4 进制形式的字符,例如该消息的消息体总共有55个字节,在填写该字段时应该填成16进制形式的“37”,而不应该填成10进制形式的“55” “00” 以’\\0’结束 要求设置呼转的手机号码,以’\\0’结束 GSM的呼转类型CFNA(’1’为设置,’0’为不设置) GSM的呼转类型CFU(’1’为设置,’0’为不设置) GSM的呼转类型CFB(’1’为设置,’0’为不设置) GSM的呼转类型CFNR(’1’为设置,’0’为不设置) 保留 呼转目的号码,以’\\0’结束 保留 消息的总长度为:4+2+10+21+1+1+1+1+1+21+8 = 71 字节 Command ID的定义可以参见表1.6-2。

表1.6-2 Command ID的定义

消息类型 SetCallChgReq

Command ID值 “00” -1-43-

说明 设置呼转请求消息

消息类型 SetCallChgRsp CancelCallChgReq CancelCallChgRsp OperateReportReq OperateReportRsp OpenServiceReq OpenServiceRsp CloseServiceReq CloseServiceRsp Command ID值 “F0” “01” “F1” “02” “F2” “08” “F8” “09” “F9” 说明 设置呼转响应消息 取消呼转请求消息 取消呼转响应消息 呼转操作回执请求消息 呼转操作回执响应消息 开通漏话业务请求消息 开通漏话业务响应消息 取消漏话业务请求消息 取消漏话业务响应消息

2. 如图1.6-14所示是抓包的结果,在抓取的数据包中单击一个数据包。

此例中,双击长度为71 L的数据包。

图1.6-14 选中一个数据包

3. 出现如图1.6-15所示的数据包解码界面,显示该码流的详细信息。

-1-44-

图1.6-15 选中TCP的Data域

选中的TCP的Data域中的码流如下所示:

33 37 00 06 30 30 30 30 30 36 30 30 30 37 00 00 38 36 31 33 33 33 33 31 31 38 31 36 32 00 00 00 00 00 00 00 00 30 30 30 31 31 38 36 31 33 30 3130 31 38 30 33 39 38 00 00 00 00 00 00 00 00 4E 4F 54 45 58 49 53 54 对照协议解码结果如表1.6-3所示。

表1.6-3 对照协议解码结果

消 息 头 名称 Message Length Command ID SequenceNo User Number CFType1 消 息 体 CFType2 CFType3 CFType4 CFType5 CF Number Reserved

类型 Char Char Char Char Char Char Char Char Char Char Char 字节数 4 2 10 21 1 1 1 1 1 21 8 码流 33 37 00 06 30 30 ---- 00 SetCallChgReq 30 30 30 36 30 30 30 37 00 00 38 36 31 33 33 33 33 31 31 38 31 36 32 00 00 00 00 00 00 00 00 30 ---- 0 30 ---- 0 30 ---- 0 31 ---- 1 31 ---- 1 38 36 31 33 30 31 30 31 38 30 33 39 38 00 00 00 00 00 00 00 00 4E 4F 54 45 58 49 53 54 -1-45-

以下以参照SGIP协议分析抓到的数据包为例。 1. SGIP消息头定义如表1.6-4所示。

表1.6-4 SGIP消息头定义

字段 Message Length Command ID Sequence Number 长度(字节) 4 4 12 类型 Integer Integer Integer 说明 消息的总长度(字节) 命令ID 序列号

2. SGIP消息中,SubmitReq消息的消息体定义如表1.6-5所示。

表1.6-5 SubmitReq消息的消息体定义

字段 SPNumber 长度(字节) 类型 21 Text 说明 SP的接入号码 付费号码,手机号码前加“86”国别标志;当且仅当群发且对用户收费时为空;如果为空,ChargeNumber 21 Text 则该条短消息产生的费用由UserNumber代表的用户支付;如果为全零字符串“000000000000000000000”,表示该条短消息产生的费用由SP支付 UserCount UserNumber … CorpId ServiceType FeeType FeeValue 1 21 … 5 10 1 6 Integer Text … Text Text Integer Text 接收短消息的手机数量,取值范围1至100 接收该短消息的手机号,该字段重复UserCount指定的次数,手机号码前加“86”国别标志 企业代码,取值范围0-99999 业务代码,由SP定义 计费类型 取值范围0-99999,该条短消息的收费值,单位为分,由SP定义 对于包月制收费的用户,该值为月租费的值 取值范围0-99999,赠送用户的话费,单位为分,GivenValue AgentFlag 6 1 Text Integer 由SP定义,特指由SP向用户发送广告时的赠送话费 代收费标志,0:应收;1:实收

-1-46

-

本文来源:https://www.bwwdw.com/article/0yvo.html

Top