深度解析TCP会话劫持[网络技术]
本文“深度解析TCP会话劫持[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
作为一种会话劫持的办法,黑客假如对一些并不坚固的协议举行劫持,那么将会轻而易举的视野,但是TCP协议是一种被称为坚固的传输协议,很多传输功效也都是基于TCP协议举行的,所以TCP会话劫持将作为本章谈论的对象.
TCP会话劫持
按照TCP/IP中的规定,利用TCP协议举行通讯需求供应两段序列号,TCP协议利用这两段序列号确保衔接同步以及安全通讯,系统的TCP/IP协议栈根据时间或线性的产生这些值.在通讯历程中,双方的序列号是彼此依靠的,这也就是为什么称TCP协议是坚固的传输协议(具体可拜见RFC 793).假如攻击者在这个时刻举行会话劫持,后果必定是失利,因为会话双方"不熟习"攻击者,攻击者不能供应合理的序列号;所以,会话劫持的关键是猜测精确的序列号,攻击者可以采纳嗅探技术得到这些信息
TCP协议的序列号
目前来谈论一下有关TCP协议的序列号的相关问题.在每一个数据包中,都有两段序列号,它们辨别为:
SEQ:当前数据包中的第一个字节的序号
ACK:盼望收到对方数据包中第一个字节的序号
假定双方目前需求举行一次衔接:
S_SEQ:将要发送的下一个字节的序号
S_ACK:将要接纳的下一个字节的序号
S_WIND:接纳窗口
//以上为服务器(Server)
C_SEQ:将要发送的下一个字节的序号
C_ACK:将要接纳的下一个字节的序号
C_WIND:接纳窗口
//以上为客户端(Client)
它们之间必须符合下面的逻辑关系,不然该数据包会被丢弃,并且返回一个ACK包(包含盼望的序列号).
C_ACK <= C_SEQ <= C_ACK + C_WIND
S_ACK <= S_SEQ <= S_ACK + S_WIND
假如不符合上边的逻辑关系,就会引伸出一个"致命弱点",具体请接着往下看.
致命弱点
这个致命的弱点就是ACK风暴(Storm).当会话双方接纳到一个不盼望的数据包后,就会用自己盼望的序列号返回ACK包;而在另一端,这个数据包也不是所盼望的,就会再次以自己盼望的序列号返回ACK包……于是,就这样往复往复,形成了恶性循环,终究招致ACK风暴.对比好的办理办法是先举行ARP拐骗,使双方的数据包"正常"的发送到攻击者这里,然后设置包转发,最后便可以举行会话劫持了,并且没必要耽忧会有ACK风暴呈现.当然,并非全部系统城市呈现ACK风暴.比方Linux系统的TCP/IP协议栈就与RFC中的描写略有差别.注意,ACK风暴仅存在于注射式会话劫持.
TCP会话劫持历程
假定目前主机A和主机B举行一次TCP会话,C为攻击者,劫持历程以下:
A向B发送一个数据包
SEQ (hex): X ACK (hex): Y
FL
AGS: -AP--- Window: ZZZZ,包大小为:60
B回应A一个数据包
SEQ (hex): Y ACK (hex): X+60
FLAGS: -AP--- Window: ZZZZ,包大小为:50
A向B回应一个数据包
SEQ (hex): X+60 ACK (hex): Y+50
FLAGS: -AP--- Window: ZZZZ,包大小为:40
B向A回应一个数据包
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
B向A回应一个数据包
SEQ (hex): Y+80 ACK (hex): X+120
FLAGS: -AP--- Window: ZZZZ,包大小为:10
目前,主机B履行了攻击者C假充主机A发送过来的号令,并且返回给主机A一个数据包;但是,主机A并不能辨认主机B发送过来的数据包,所以主机A会以盼望的序列号返回给主机B一个数据包,随即形成ACK风暴.假如成功的办理了ACK风暴(比方ARP拐骗),便可以成功举行会TCP话劫持了.
以上是“深度解析TCP会话劫持[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
- ·上一篇文章:Linux环境下的DNS安全保障本领
- ·下一篇文章:浅谈若何防备Zeus僵尸网络
- ·中查找“深度解析TCP会话劫持”更多相关内容
- ·中查找“深度解析TCP会话劫持”更多相关内容