设为首页
加入收藏
广告投放
 | 网站首页 | 安全资讯 | 技术文章 | 下载中心 | 图片中心 | 网络技术 | 网站建设 | 精品图书 | 访客留言 | 网管论坛 | 

  没有公告

今天是:
| 新手学堂 | 操作系统 | 数据库 | 邮件系统 | 防火墙 | 系统安全 | 方案设计 | 视频教程 | 网站推广 | 认证考试 |
| 系统优化 | 硬件学堂 | 专家答疑 | 管理脚本 | 存储备份 | 交换路由 | ISA Server | 网管专区 | 推荐书籍 | 加密破解 |
| 办公教程 | SQL Server | Exchange 教程 | Photoshop | HTML 教程 | CSS 教程 | Dreamweaver| Flash教程 | ASP教程 |
您现在的位置: 天下网管联盟 >> 网络技术 >> 交换路由 >> 文章正文
[组图]Sniffer抓包软件学习(二)         ★★★
Sniffer抓包软件学习(二)
副标题:
作者:佚名 文章来源:网络 点击数: 更新时间:2006-8-17
第五章  数据报文解码详解

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

1.1  数据报文分层

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


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

1.2  以太报文结构

EthernetII以太网帧结构

Ethernet_II以太网帧类型报文结构为:目的MAC地址(6bytes)+源MAC地址+(6bytes)上层协议类型(2bytes)+数据字段(46-1500bytes)+校验(4bytes)。
           
Sniffer会在捕获报文的时候自动记录捕获的时间,在解码显示时显示出来,在分析问题时提供了很好的时间记录。

源目的MAC地址在解码框中可以将前3字节代表厂商的字段翻译出来,方便定位问题,例如网络上2台设备IP地址设置冲突,可以通过解码翻译出厂商信息方便的将故障设备找到,如00e0fc为华为,010042为Cisco等等。如果需要查看详细的MAC地址用鼠标在解码框中点击此MAC地址,在下面的表格中会突出显示该地址的16进制编码。

IP网络来说Ethertype字段承载的时上层协议的类型主要包括0x800为IP协议,0x806为ARP协议。

IEEE802.3以太网报文结构

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

1.3  IP协议

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

版本:4——IPv4
首部长度:单位为4字节,最大60字节
TOS:IP优先级字段
总长度:单位字节,最大65535字节
标识:IP报文标识字段
标志:占3比特,只用到低位的两个比特
    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报文的目的地址

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

点击在新窗口查看全图
CTRL+鼠标滚轮放大或缩小 


第五章  数据报文解码详解

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

1.1  数据报文分层

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


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

1.2  以太报文结构

EthernetII以太网帧结构

Ethernet_II以太网帧类型报文结构为:目的MAC地址(6bytes)+源MAC地址+(6bytes)上层协议类型(2bytes)+数据字段(46-1500bytes)+校验(4bytes)。
           
Sniffer会在捕获报文的时候自动记录捕获的时间,在解码显示时显示出来,在分析问题时提供了很好的时间记录。

源目的MAC地址在解码框中可以将前3字节代表厂商的字段翻译出来,方便定位问题,例如网络上2台设备IP地址设置冲突,可以通过解码翻译出厂商信息方便的将故障设备找到,如00e0fc为华为,010042为Cisco等等。如果需要查看详细的MAC地址用鼠标在解码框中点击此MAC地址,在下面的表格中会突出显示该地址的16进制编码。

IP网络来说Ethertype字段承载的时上层协议的类型主要包括0x800为IP协议,0x806为ARP协议。

IEEE802.3以太网报文结构

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

1.3  IP协议

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

版本:4——IPv4
首部长度:单位为4字节,最大60字节
TOS:IP优先级字段
总长度:单位字节,最大65535字节
标识:IP报文标识字段
标志:占3比特,只用到低位的两个比特
    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报文的目的地址

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

 



1.1  ARP协议
   以下为ARP报文结构

ARP分组具有如下的一些字段:
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.2  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的报文。

捕获报文测试用例图
如图所示,Radius Server IP地址为172.16.20.76。PPPOE用户Radius报文交互过程分析如下。
上图为PPPOE从发现阶段到PPP LCP协商,认证IPCP协商阶段和PPPOE会话阶段交互过程。
PPPOE发现阶段,PADI报文,Sniffer解码结构如下所示。

PPPOE会话阶段,Sniffer解码结构如下所示。
  
1.3  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)
Attributes:属性

图10   属性格式属性域是TLV结构编码。

 






 


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

通过比较可以清楚了解协议各字段含义相互关系,为问题处理提供有效的手段。
下面为PPPOE用户Radius认证的Sniffer捕获的报文。下图为用户端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号进行配对识别的。

上图显示了BAS发起的Radius认证请求(Code=1)报文的结构。Radius报文是承载在UPD协议之上的,这里我没不关注上层报文的结构。
下图为PPPOE CHAP认证过程的Radius认证请求报文和PPPOE中CHAP认证的Challenge报文。通过比较可以方便看出BAS发出的Challenge值为“26fe8768341de68a72a1276771e1c1ca”与PPPOE中CHAP认证过程中BAS发给PPPOE用户的Challenge值是一致的。

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

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

 

文章录入:追风    责任编辑:追风 
特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。本站地址:Http://Www.99191.com
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    普通文章[组图]图文说明:高标准…
    普通文章[图文]利用协议分析工具…
    普通文章[组图]用Sniffer和ARP分…
    普通文章[组图]活用sniffer软件…
    普通文章[组图]Sniffer抓包软件…
    普通文章[组图]一些公司的网络拓…
    推荐文章抢救EFS加密文件简述
    普通文章[组图]cmd的终极防守
    推荐文章抢救EFS加密文件简述
    推荐文章什么是交换?路由?路由…
    推荐文章以太网络建立多个VLAN和…
    推荐文章子网划分实例
    推荐文章二、三、四层交换机的区…
    推荐文章[组图]用Sniffer和ARP分…
    推荐文章Win2003网站服务器的安…
    推荐文章教你如何用双SATA硬盘组…
    利用协议分析工具…
    Ethereal使用入门

    图文说明:高标准机…

    利用协议分析工具学…

    用Sniffer和ARP分析…

    活用sniffer软件---…
    (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)