
工作原理
由于TCP 需要时刻跟踪,这需要额外开销,使得TCP 的格式有些显得复杂。下面就让我们看一个TCP 的
经典案例,这是后来被称为MITNICK 攻击中KEVIN 开创了两种攻击技术:
TCP 会话劫持和SYN FLOOD(同步洪流)
在这里我们讨论的是TCP 会话劫持的问题。
先让我们明白TCP 建立连接的基本简单的过程。为了建设一个小型的模仿环境我们假设有3 台接入互联网的机器。A 为攻击者操纵的攻击机。B 为中介跳板机器(受信任的服务器)。C 为受害者使用的机器(多是服务器),这里把C 机器锁定为目标机器。A 机器向B机器发送SYN 包,请求建立连接,这时已经响应请求的B 机器会向A 机器回应SYN/ACK表明同意建立连接,当A 机器接受到B 机器发送的SYN/ACK 回应时,发送应答ACK 建立
A 机器与B 机器的网络连接。这样亏枯喊一个两台机器之间的TCP 通话信道就建立成功了。B 终端受信任的服务器向C 机器发起TCP 连接,A 机器对服务器发起SYN 信息,使C 机器不能响应B 机器。在同时A 机器也向B 机器发送虚假的C 机器回应的SYN 数据包,接收到SYN 数据包的B 机器(被C 机器信任)开始发送应答连接建立的SYN/ACK 数据包,这时C 机器正在忙于响应以前发送的SYN 数据而无暇回应B 机器,而A 机器的攻击者预测出B 机器包的序列号(现在的TCP 序列号预测难度有所加大)假冒C 机器向B 机器发送应答ACK 这时败滑攻击者骗取B 机器的信任,假冒C 机器与B 机器建立起TCP 协议的对话连接。这个时候的C 机器还是在响应攻击者A 机器发送的SYN 数据。
TCP 协议栈的弱点:TCP 连接的资源消耗,其中包括:数据包信息、条件状态、序列号等。通过故意不完成建立连接所需要的三次握手过程,造成连接一方的资源耗尽。通过攻击者有意的不完成建立连接所需要的三次握手的全销野过程,从而造成了C 机器的资源耗尽。序列号的可预测性,目标主机应答连接请求时返回的SYN/ACK 的序列号时可预测的。
讲通俗一点吧,为了安全。
机器A(192.168.0.2)和机器脊李B(192.168.0.3)准备通信。
首先:机器A给机器B发送一个握手消息,消息内容大致为:“我是192.168.0.2,请求和192.168.0.3通信!”并进入等待状态。
然衫野巧后:机器B反馈机器A消息:“确认通信”。
最后:机器B和192.168.0.2通信:“我是192.168.0.3,将要和192.168.0.2通信!”
说为了安全是这样的:
如果机器A准备攻击机器B的话,发送如下消息:
我是192.168.0.99(实际上是192.168.0.2),请求和192.168.0.3通信!
192.168.0.3同意
如果没有3次握手的话,那么192.168.0.2知或键道他在和192.168.0.3通话,但192.168.0.3一直以为他在和192.168.0.99通话呢。
所以要三次握手,了解?
全部手打,求分!