非法TCP报文攻击

来源:互联网 发布:人工智能产业发展趋势 编辑:程序博客网 时间:2024/06/06 01:52
 

http://www.ruijie.com.cn/htmls/3-23/RG-S3760EP/Cap58.htm

 

在TCP报文的报头中,有几个标志字段:

1.  SYN:连接建立标志,TCP SYN报文就是把这个标志设置为1,来请求建立连接。

2.  ACK:回应标志,在一个TCP连接中,除了第一个报文(TCP SYN)外,所有报文都设置该字段作为对上一个报文的响应。

3.  FIN: 结束标志,当一台主机接收到一个设置了FIN标志的TCP报文后,会拆除这个TCP连接。

4.  RST:复位标志,当IP协议栈接收到一个目标端口不存在的TCP报文的时候,会回应一个RST标志设置的报文。

5.  PSH:通知协议栈尽快把TCP数据提交给上层程序处理。

非法TCP报文攻击是通过非法设置标志字段致使主机处理的资源消耗甚至系统崩溃,例如以下几种经常设置的非法TCP报文:

1.        SYN 比特和FIN比特同时设置的TCP报文

正常情况下,SYN标志(连接请求标志)和FIN标志(连接拆除标志)不能同时出现在一个TCP报文中,而且RFC也没有规定IP协议栈如何处理这样的畸形报文。因此各个操作系统的协议栈在收到这样的报文后的处理方式也不相同,攻击者就可以利用这个特征,通过发送SYN和FIN同时设置的报文,来判断操作系统的类型,然后针对该操作系统,进行进一步的攻击。

2.        没有设置任何标志的TCP报文

正常情况下,任何TCP报文都会设置SYN,FIN,ACK,RST,PSH五个标志中的至少一个标志,第一个TCP报文(TCP连接请求报文)设置SYN标志,后续报文都设置ACK标志。有的协议栈基于这样的假设,没有针对不设置任何标志的TCP报文的处理过程,因此这样的协议栈如果收到了这样的报文可能会崩溃。攻击者利用了这个特点,对目标主机进行攻击。

3.        设置了FIN标志却没有设置ACK标志的TCP报文

正常情况下,除了第一报文(SYN报文)外,所有的报文都设置ACK标志,包括TCP连接拆除报文(FIN 标志设置的报文)。但有的攻击者却可能向目标主机发送设置了FIN标志却没有设置ACK标志的TCP报文,这样可能导致目标主机崩溃。

原创粉丝点击