TCP欺骗

来源:互联网 发布:php程序设计是做什么的 编辑:程序博客网 时间:2024/04/29 16:38

在传输层的欺骗主要就是TCP欺骗和UDP欺骗,这两个欺骗技术都是将外部计算机伪装成合法计算机来实现的,目的还是把自己构筑成一个中间层来破坏正常链路上的正常数据流,或者在两台计算机通信的链路上插入数据

   下面主要来说一下TCP欺骗,TCP协议的原理这里就不多说了,TCP协议是基于三次握手的面向连接的传输协议,采用了基于序列号和确认重传的机制来确保传输的可靠性,因此想要进行TCP欺骗,必需提前预测出第一次握手时的初始序列号,而第一次握手时的初始序列号具有一定的随机性,只有预先了解序列号的生成算法才能进行准确的预测,一般有3种算法,第一种就是在原有序列号的基础上增加一个64K的常量来作为新的序列号,第二种是与时间相关的,序列号的值是与时间相关的值,第三种是伪随机数。

   下面来说说TCP欺骗的手段

1. 非盲攻击,非盲攻击的意思就是预测初始序列号的过程不是盲目的,适用于攻击者和目标主机在同一个网络,可以通过网络嗅探工具来获取目标主机的数据包,从而预测出TCP初始序列号。具体的实施步骤如下,假设A,B要通信Z要攻击

a) 攻击者首先要确定与目标主机有信任关系的主机B没有接入网络,如果接入了,那就使用拒绝服务攻击使其处于拒绝服务的状态

b) 攻击者冒充B向A发送TCP第一次握手的数据包(数据包的源IP地址为冒充的B的IP地址)初始序列号为c,SYN设置为1,请求与A建立连接

c) 目标主机回应第二次握手,回应的过程中数据包的目标主机为B的IP地址,因为一开始的时候Z冒充的B的IP地址发送的数据包,所以这一次数据包也将返回B,这个时候假设回应的数据包中的初始序列号为s,确认序号为c+1,由于B处于拒绝服务的状态,所以B不会回应,这个时候Z使用网络嗅探截获A与B第二次握手的数据包,从而得到初始序列号s

d) 攻击者Z伪造第三次的TCP握手数据包,冒充B的IP来发送到A,这个时候数据包的标识位为ACK,应答序列号为s+1,这样Z就与A建立了第三次握手并建立了TCP连接,往后Z就可以冒用B的IP地址与A实施欺骗了。

2. 盲攻击,盲攻击发生在攻击者与目标主机不在同一个网络上的情况,因为不在同一个网络上,所以攻击者无法使用网络嗅探工具来捕获TCP数据包,因此无法获取目标主机的初始序列号,从而只能预测或探测目标主机的初始序列号。盲攻击不能通过嗅探来获取A发送的TCP第二次握手的数据包,从而无法获取A的初始序列号,所以只能使用TCP序列号预测技术来预测初始序列号,并且即便是建立连接,攻击者Z发出数据包也无法获取A的响应包,因为A的响应包指向B的IP地址,除非可以使用路由欺骗技术将目标主机A发出的数据包转发到Z上,这个可以将蟒攻击转化为非盲攻击来提高成功率

首发于我的个人网站: 点击打开链接

0 0
原创粉丝点击