一、什么是TCP预测攻击
TCP序列预测攻击中,攻击者通过侦听两个受信任主机之间的对话,在攻击发生之前监视流量,攻击者预测用于识别TCP连接中数据包的序列号,该序号随后将与IP地址一起用于在合法主机之前发送欺骗性数据包,从而使用相同的源IP地址发送数据包、将伪造的数据包发送到目标主机,这些数据包看起来是合法的并已由目标主机发送。
攻击者为了确保合法主机不会尽快发送数据包,会对该主机进行拒绝服务攻击,当获得对该连接的控制权时,攻击者可以发送任意数量的虚假数据包而不会收到答复。此时攻击者注入自己选择的数据,会导致在收到伪造的数据包注入后关闭现有的TCP连接。
二、TCP预测攻击过程
方法一
假设主机A和主机B正在相互通信,攻击者能够以某种方式监视A和B之间的数据包,若此时攻击者想攻击主机A:
1、使用新请求向主机B泛洪,从而导致拒绝服务攻击,以阻止主机B与A进行通信。
2、攻击者预测A从B期望的数据包的序列号,并此类数据包并将其发送给主机A,由于它是伪造的包装,因此主机A认为其来自B。
3、此类数据包可以是终止连接或要求主机A运行某些恶意命令或脚本等的数据包,攻击者因此可以劫持连接。
方法二
预测ISN(初始序列号)
1、创建新的连接时,将使用一个初始序列号(ISN)生成器来选择一个新的32位ISN。
2、生成器绑定到一个32位时钟,该时钟的低阶位大约每4微秒递增一次。
3、ISN大约每4.55小时循环一次,由于假设网段中的网段停留时间不超过最大网段寿命MSL,并且MSL小于4.55小时,假设ISN是唯一的。
4、BSD TCP / IP堆栈偏离了上述机制。BSD TCP / IP堆栈使序列号每秒增加128,000,对于每个新的TCP连接,增加64,000。