cve-2008-4609一把梭

cve-2008-4609

1.背景
在这里插入图片描述
根据描述,是tcp协议栈的问题,在linux,windows等平台都存在。这实际是一种dos的方法,称为sockstress

2.Sockstress
SockStress攻击利用建立TCP/IP三次握手连接来实现拒绝服务攻击,而且与Syn-Flood不同它并非通过耗尽服务器的TCP连接数来让正常用户的正常请求无法响应,而是直接耗尽服务端的内存、CPU等资源让受害者宕机,属于非对称的资源消耗攻击

3.原理
在这里插入图片描述
1.首先,攻击者大量请求建立三次握手连接
  2.成功建立ESTABLISHED之后,攻击者会将数据包中window的值置为0(window的意思代表client这边一次可以接受的数据大小,置为0之后表示client没有window来接受server发来的数据,然后server就会分配内存来维持TCP连接直到client有空闲的window与之通信),然而client(攻击者)不会维持连接,只会不断的请求TCP连接耗尽server(靶机)的资源
  3.当server这端维持连接达到一定数量之后,内存、CPU甚至是SWAP分区都会被耗尽,系统命令不能正常执行

4.复现
攻击者(kali,192.168.96.135),靶机(win7,196.168.96.132)
Kali执行
在这里插入图片描述
Win7上开了phpstudy,默认80端口开放
攻击前:
在这里插入图片描述
攻击后
在这里插入图片描述
5.代码分析
作为攻击者,主要是构造第一次握手的数据包(syn)和第三次握手的数据包(synack)
相应函数分别如下
在这里插入图片描述在这里插入图片描述

6.流量分析
大量建立连接(三次握手的前两次)
在这里插入图片描述
在kali向win7发的ack(三次握手的最后一次)包中置windows size为0

在这里插入图片描述
检测方案:
检测到特征:
1.同一地址同一时间段大量发起tcp请求
2.根据tcp报文格式,检测到窗口字段设置为0

附图:tcp报文格式
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yalecaltech/article/details/88805739