一、阻断未建立起来的连接
我们知道TCP的建立要经过3次握手,假设客户端C向服务器S请求连接
1、C发送带有SEQ_C(随机)初始序列号的SYN报文给S
2、S回复带有SEQ_S(随机)初始序列号和确认序列号ACK_S(必须是SEQ_C+1)的SYN报文给C
3、C回复确认序列号ACK_C(取值为SEQ_S)给S
整个过程如果正确的话,连接将会建立。
通常需要进行阻断的情况是审计控制系统旁路监听内网。旁路监听的方式一般是将主交换机的数据镜像到控制系统,控制系统可以采用
libpcap捕获数据包。
在这种情况下要阻断tcp连接的建立只要在监听到第一次握手的时候,控制系统伪造服务器发起第二次握手回应,就能阻断客户端与服务器连接的建立。因为我们的系统在内网,发出的报文肯定比服务器快,这样客户端接收到我们伪造的报文以后会回应第三次握手,当服务器真正的报文到达的时候客户端将不再处理,此时客户端再向服务器请求数据,因为seq号和ack号出错,服务器不会受理客户端的请求。