TCP 复位攻击原理|课后作业

206 阅读2分钟

本文正在参与 “网络协议必知必会”征文活动

TCP 复位攻击原理和实战复现

TCP是面向连接的运输层协议,应用程序在使用TCP协议之前,必须先建立TCP连接。在传送数据完毕后,必须释放建立的TCP连接。TCP是点对点的通信,提供可靠交付,通过TCP连接传送的数据,无差错,不丢失,不重复,并且按序到达。TCP提供全双工通信,TCP连接的两端都设有发送缓存和接收缓存,用来临时存放双向通信的数据,这样TCP在适合的时候把数据发送出去,应用进程在适合的时候读取缓存中的数据。TCP是面向字节流的,TCP把应用程序给的数据看成一连串无结构的字节流,但是TCP传送的数据单元是报文段。

一个TCP报文段分为首部和数据两部分,首部中有个复位RST(ReSet)字段,它是重置位,当RST=1时表明TCP连接中出现严重差错,必须释放连接,然后再重新建立运输连接。RST设置为1用来拒绝一个非法的报文段或拒绝打开一个连接。

RST攻击就是服务器A和B建立了TCP连接,C伪造了一个TCP包发给B,使B异常的断开与A之间的TCP连接。

当服务器C伪装成A的包,发送RST包,B就会丢弃与A的缓冲区的数据,强制关掉连接。

当服务器C伪装成A的包,发送SYN包,服务器B在正常连接时又来新建连接,B主动向A发送RST包,并在服务器强制关掉连接。

这就是复位攻击的具体实现方法。

要成功实现攻击,需要正确设置源和目的的IP地址、端口号和序列号,把攻击者和受害者放在同一个网络中可以降低猜测序列号的难度。