TCP协议是一种基于IP协议而建立的一条面向连接的、可靠的字节流。在黑客攻击层出不穷的今天,一个攻击者可以通过发送IP地址源地址属于另一台机器的IP数据来实施欺骗。TCP欺骗的攻击者实际上并不在乎是否能收到这些数据的答复,但其他的机器将接受这些伪造数据并认为他们来自合法的拥有者。现今想要实现TCP欺骗主要有两种方式。
实现TCP欺骗攻击有两种方法:
1.非盲攻击
攻击者和被欺骗的目的主机在同一个网络上,攻击者可以简单地使用协议分析器(嗅探器)捕获TCP报文段,从而获得需要的序列号。以下是其攻击步骤:
(1)攻击者X要确定目标主机A的被信任主机B不在工作状态,若其在工作状态,也使用SYN flooding等攻击手段使其处于拒绝服务状态。
(2)攻击者X伪造数据包:B->A:SYN(ISN C),源IP地址使用B,初始序列号ISN为C,给目标主机发送TCP的SYN包,请求建立连接。
(3)目标主机回应数据包:A->B:SYN(ISN S),ACK(ISN C),初始序列号为S,确认序号为C。由于B处于拒绝服务状态,不会发出响应包。攻击者X使用嗅探工具捕获TCP报文段,得到初始序列号S。
(4)攻击者X伪造数据包:B->A:ACK(ISN S),完成三次握手建立TCP连接。
(5)攻击者X一直使用B的IP地址与A进行通信。
2.盲攻击
由于攻击者和被欺骗的目标主机不在同一个网络上,攻击者无法使用嗅探工具捕获TCP报文段。其攻击步骤与非盲攻击几乎相同,只不过在步骤(3)中无法使用嗅探工具,可以使用TCP初始序列号预测技术得到初始序列号。在步骤(5)中,攻击者X可以发送第一个数据包,但收不到A的响应包,较难实现交互。
从攻击者的角度来考虑,盲攻击比较困难,因为目的主机的响应都被发送到不可达的被欺骗主机,攻击者不能直接确定攻击的成败。然而,攻击者可使用路由欺骗技术把盲攻击转化为非盲攻击。
对TCP欺骗攻击的防范策略主要有:
(1)使用伪随机数发生工具产生TCP初始序号;
(2)路由器拒绝来自外网而源IP是内网的数据包;
(3)使用TCP段加密工具加密。
【编辑推荐】