IP包头TTL字段在网络分析中的应用

IP包头TTL字段在网络分析中的应用
2009-08-25 网管员世界 沈立君
TTL介绍
TTLtime to live)生存时间字段设置了IP数据报能够经过的最大的路由器数,TTL字段是由发送端初始设置的,每个处理该数据报的路由器都需要将其TTL值减1,当路由器收到一个TTL值为0的数据报时,路由器会将其丢弃。
TTL字段的目的是防止数据报在选路时无休止地在网络中流动。例如,当路由器瘫痪或者两个路由器之间的连接丢失时,可能会造成路由环路,而路由器可能根据其路由表将该数据报一直循环转发下去。这种情况下,就需要一种机制来给这些循环传递的数据报上加上一个生存上限,TTL字段正是实现这种机制的手段。
TTLIP数据报头中的字段,其在IP头部的位置如下图所示:
 

1  TTL字段在IP报头的位置
 
通过上图,我们可以发现,TTL字段占了8bit,那么一般而言,最大的TTL值就是2^8=255啦。
 
GYNOCLINICD妇科检查应用分析案例 
介绍完TTL字段的作用,接下来我们分别来看一下在实际的网络分析过程中, TTL字段能够给我们提供哪些有用的信息和帮助。
2.1 识别操作系统
根据操作系统和传输协议的不同,其TTL字段的值也不同,那么我们可以根据IP数据报的TTL字段来大体识别相应的操作系统类型。下图为各种操作系统在传输TCPUDP时默认使用的TTL值:
不同操作系统默认情况下的TTL
 
绝大多数的用户都不会主动的修改其操作系统默认的TTL值,因此黑客会利用这个特性来简单判断目的主机的操作系统,从而实施相应的攻击计划,而在我们网络维护和分析的过程中,也可以通过对异常数据包TTL值的分析来简单判断异常主机的操作系统,从而缩小我们的故障定位范围,提高故障解决的效率。
2.2 发现网络环路
在计算机网络中,环路一般分为两种,一种为二层物理环路,另一种为三层路由环路。
二层物理环路一般是由于二层交换机出现了物理连接上的环路并且二层交换机上未启用STP生成树协议导致的。二层物理环路一旦产生,其导致的广播风暴会给网络带来致命的威胁。由于数据包在二层环路间转发时,其TTL值不会递减,因此,我们可以利用这个特点,通过分析数据包的TTL值字段来定位网络中是否存在二层物理环路。如果同一数据包(根据矛盾分析法IP报头中的IP标识字段来定位)多次出现而且其TTL值一直保持一致,那么就说明网络中出现了二层的物理环路了。   
三层路由环路一般是由于路由策略配置不当导致的。我们前面在介绍TTL时,已经说明TTL主要是为了防止路由环路的情况出现而设置的,当网络出现路由环路时,IP数据报会在路由环路间不断的循环转发最终使其TTL值递减为0,我们可以利用路由环路的这个特性和TTL值来定位路由环路,如下图所示:
3 路由环路情况下IP数据报的牛黄狗宝TTL
 
当我们在网络分析过程中发现TTL=1IP数据包(多播报文除外)时,我们就需要关注是
否存在网络路由环路了,我们一般会结合IP数据报的标识字段,来快速的定位出网络中存在路由环路,如果同一数据包反复出现,而且其TTL值呈递减的趋势并最终变为1,那么就说明当前的网络中存在三层的路由环路了。
2.3 检测是否经过了路由设备
IP数据报经过路由设备时,该路由设备在转发时一般会将其TTL值减1,因此,我们可以根据路由设备后所抓取数据包的TTL值来判断该数据包是否已经经过路由设备。这个在实际网络分析过程中似乎用处不大,但是在一些特殊的网络管理情况下,我们需要知道某些数据包是否经过了路由设备,例如,在一个对网络访问限制较为严格的网络环境中,部分重要的服务器可能只有某几个网段的机器可以访问,其他网段的IP地址是没有访问权限的,那么,就可能出现某些别有用心的人利用具有访问权限的IP地址做NAT地址转换间接访问受限服务器资源的情况,具体如下图所示:

4 通过NAT非法访问服务器端示意图
 
网络管理者当然不期望这种情况发生,因为它很可能会带来各种致命的网络安全问题。在这种情况下,访问权限的主机访问受限访问服务器时,经过有访问权限主机的NAT和转发,因此,其IP数据报的TTL值比系统初始值小1,那么,我们就可以利用这个特性,在网络中部署网络分析系统,对网络中的数据包进行捕获,通过查看数据包的TTL值来判断网络中是否存在NAT设备,从而定位出利用路由设备进行越权访问的主机。
这种方法也是电信所使用的ADSL多用户检测技术之一。
2.4 检测数据包的不对称路由
我们知道IP是不可靠的的协议,它不能保证数据包在传输的过程中会被丢失、失序,而IP选路功能可以让同一连接的数据包通过不同的路径进行转发,这种特性提高了IP数据包的转发效率,但有时也会带来不必要的麻烦,例如,在使用基于状态检测的防火墙环境中,如果在TCP连接建立阶段的三次握手报文经过不同的路径转发,那么,很可能导致TCP应用异常(由于防火墙没有收到完整的TCP三次握手的数据包,因此无法正常建立TCP状态表),如下图所示:

5 不对称路由示意图
 
在这种情况下,我们一般可以通过在服务器端与客户端分别traceroute对端地址来判断数据包来回路径的是否一致,我们也可以通过在客户端与服务器端同时抓包,分析数据包的TTL值来确定客户端与服务器端在转发数据包时经过的路由跳数是否一致,从而判断数据包来回的路由路径是否一致。
2.5 发现TCP会话劫持
会话劫持(Session Hijack)是指攻击者使用一些技术手段将攻击主机伪装成客户端或服务器的应用程序,在客户端与服务器之间进行数据传输,从而导致服务器或客户端误认为攻击主机是自己想要进行数据交互的合法主机。
黑客一般会利用TCP会话劫持来实现对数据包的监听,从而从中获取很多机密的敏感信息,包括用户名和口令等;运营商也经常使用TCP会话劫持技术来推送广告,或由于一些特殊的原因而干扰客户端的正常应用。
会话劫持利用了TCP/IP工作原理来设计攻击根据TCP/IP中的规定,使用TCP协议进行通讯
需要提供两段序列号,TCP协议使用这两段序列号确保连接同步以及数据传输的可靠性,系统的TCP/IP协议栈依据时间或线性的产生这些值。在通讯过程中,双方的序列号是相互依赖的,这也就是为什么称TCP协议是可靠的传输协议(具体可参见RFC 793)。如果攻击者在这个时候进行会话劫持,结果肯定是失败,因为会话双方不认识攻击者,攻击者不能提供合法的序列号;所以,会话劫持的关键是预测正确的序列号,攻击者可以采取嗅探技术获得这些信息。在讨论TCP会话攻击之前,我们先来看一下TCP序列号的相关知识,在每一个数据包中,都有两段序列号,它们分别为:
SEQ:当前数据包中的第一个字节的序号
ACK:期望收到对方数据包中第一个字节的序号
假设双方现在需要进行一次连接,服务器的相关TCP段中的字段为:
S_SEQ:将要发送的下一个字节的序号
S_ACK:将要接收的下一个字节的序号
S_WIND:接收窗口
客户端相关TCP段中的字段为:
C_SEQ:将要发送的下一个字节的序号
C_ACK:将要接收的下一个字节的序号
C_WIND:接收窗口
它们之间必须符合下面的逻辑关系,否则该数据包会被丢弃,并且返回一个ACK包(包含期望的序列号)。
C_ACK <= C_SEQ <= C_ACK + C_WIND
S_ACK <= S_SEQ <= S_ACK + S_WIND
  接下来我们一起来看一下TCP会话劫持过程假设现在主机A和主机B进行一次TCP会话,C为攻击者,劫持过程如下:
AB发送一个数据包
SEQ (hex): X ACK (hex): Y
FLAGS: -AP--- Window: ZZZZ,包大小为:60
B回应A关系营销的理论基础是什么一个数据包
SEQ (hex): Y ACK (hex): X+60
FLAGS: -AP--- Window: ZZZZ,包大小为:50
AB回应一个数据包
SEQ (hex): X+60 ACK (hex): Y+50
FLAGS: -AP--- Window: ZZZZ,包大小为:40
BA回应一个数据包
SEQ (hex): Y+50 ACK (hex): X+100
FLAGS: -AP--- Window: ZZZZ,包大小为:30
饮用水水质标准攻击者C冒充主机A给主机B发送一个数据包
SEQ (hex): X+100 ACK (hex): Y+80
FLAGS: -AP--- Window: ZZZZ,包大小为:20
BA回应一个数据包
SEQ (hex): Y+80 ACK (hex): X+120
FLAGS: -AP--- Window: ZZZZ,包大小为:10
现在,主机B执行了攻击者C冒充主机A发送过来的命令,并且返回给主机A一个数据包;但是,主机A并不能识别主机B发送过来的数据包,所以主机A会以期望的序列号返回给主机B一个数据包,随即形成ACK风暴。如果成功的解决了ACK风暴,就可以成功进行会话劫持了。这里涉及到攻击主机C所处的位置了,攻击主机C必定处于主机A与主机什么是散文B之间,那么主机A的数据包到主机B的数据包路径基本一致,也就是说,主机A与主机B间的数据包的TTL值基本上固定的,那么当攻击主机C处于主机A与主机B之间实施TCP会话劫持时,其劫持发向主机A与主机B的数据包的TTL值肯定与原本主机A与主机B间的通讯数据包的TTL值不一样,我们就可以利用这一特性,通过抓取并分析这些数据包,发现TCP会话攻击行为。
2.6 发现局域网内中间人攻击
局域网内的中间人攻击一般首先采用arp欺骗的手段,让局域网内被攻击主机的流量全部经过实施攻击的主机,再由实施攻击的主机将相关数据包转发到网关设备上(需攻击主机开启路由转发服务),从而使被攻击主机的数据流都经过实施攻击的主机,这样,实施攻击的主机就可以抓取相应的数据包,收集相应的敏感信息了(用户名和密码)。一般的中间
人攻击(特别是有意的攻击)其在流量不大的情况下,很难被用户发现,因为,对用户的网络访问影响很小,用户基本上感觉不到“中间人”的存在。
实施这种攻击的工具比较多,(最著名、使用最简单的windows下实施局域网中间人攻击的工具就是cain了,当然,我们也可以直接使用sniffer类工具构造欺骗包实施欺骗),有时候在不具备抓包环境的交换网络中,我们也可以通过中间人攻击的方式抓取全网的数据包。具体局域网中间人攻击的示意图如下所示:

局域网中间人攻击示意图
 
我们来简单看一下局域网中间人攻击的行为特征:
●首先需要进行arp欺骗(具有arp欺骗的一些特征);
●其次需要经过攻击主机转发数据包;

本文发布于:2024-09-25 00:39:25,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/336973.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据包   路由   攻击   网络   环路
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议