参考文章

本片文章仅供学习使用,切勿触犯法律!


一、简要介绍

SlowHTTPTest是一款对服务器进行慢攻击的测试软件,所谓的慢攻击就是相对于cc或者DDoS的快而言的,并不是只有量大速度快才能把服务器搞挂,使用慢攻击有时候也能到达同一效果。slowhttptest包含了之前几种慢攻击的攻击方式,包括slowloris, Slow HTTP POST, Slow Read attack等。那么这些慢攻击工具的原理就是想办法让服务器等待,当服务器在保持连接等待时,自然就消耗了资源。

二、下载安装

Kali Linux:

apt-get install slowhttptest

其他Linux发行版:

tar -xzvf slowhttptest-x.x.tar.gz
cd slowhttptest-x.x
./configure --prefix=PREFIX
make
sudo make install

PREFIX替换为应该安装slowhttptest工具的绝对路径。

需要安装libssl-dev才能成功编译该工具。

MacOS安装命令:

brew update && brew install slowhttptest

git安装:

git clone https://github.com/shekyan/slowhttptest

三、执行使用

默认参数测试

./slowhttptest

其回应的相关参数:

test type 测试类型
number of connections 连接数
URL 网址
verb 动词
interval between follow up data 随机数据之间的间隔
connections per second 每秒连接数
test duration 测试时间
probe connection timeout 探针连接超时
max length of followup data field 后续数据字段的最大长度

1、参数说明

选项 描述
-a 开始 用于范围标头测试的range-specifier的起始值
-b 字节 范围标题测试的范围说明符限制
-c 连接数 限于65539
-d 代理主机:端口 通过Web代理定向所有流量
-e 代理主机:端口 用于仅通过Web代理定向探测流量
-H,B,R或X 指定在标头部分或消息正文中放慢速度,-R启用范围测试,-X启用慢速读取测试
-f 内容类型 内容类型标头的值
-g 生成CSV和HTML格式的统计信息,格式为slow_xxx.csv / html,其中xxx是时间和日期
-i 秒 每个连接的后续数据之间的间隔(以秒为单位)
-j cookie Cookie标头的值(例如:-j“ user_id = 1001;超时= 9000”)
-k 流水线系数 如果服务器支持HTTP管道,则在同一连接中重复请求以进行慢速读取测试的次数。
-l 秒 测试持续时间(以秒为单位)
-m 接受 Accept标头的值
-n 秒 从接收缓冲区读取操作之间的间隔
-o 文件 定制输出文件的路径和/或名称,如果指定了-g,则有效
-p 秒 等待探针连接上的HTTP响应超时,此后服务器被视为不可访问
每秒-r个连接 连接率
-s 字节 如果指定了-B,则Content-Length标头的值
-t 动词 要使用的自定义动词
-u URL 目标URL,与您在浏览器中键入的格式相同,例如http s:// host [:port] /
-v 级 日志0-4的详细级别
-w 字节 范围的开始,将从中选择广告窗口大小
-x 字节 随访数据的最大长度
-y 字节 范围的末端,将从中选择广告窗口大小
-z 字节 通过单个read()操作从接收缓冲区读取的字节

2、功能命令

slowloris模式:

slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u https://yourtarget.com/index.html -x 24 -p 3

Slow Body攻击:

慢消息正文模式下的用法示例

slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://www.mywebsite.com -x 10 -p 3

Slow Read模式:

slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u http://yourtarget.co

慢节奏模式下的用法示例:

./slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u https://myseceureserver/resources/index.html -x 24 -p 3

通过在xxxx:8080上的代理进行探测:

./slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u http://someserver/somebigresource -p 5 -l 350 -e x.x.x.x:8080

3、错误信息

错误信息 这是什么意思
"Hit test time limit" 程序达到了用-l参数指定的时间限制
"No open connections left" 同行关闭了所有连接
"Cannot establish connection" 在测试的前N秒内未建立任何连接,其中N是-i参数的值,或者是10(如果未指定)。如果没有到主机的路由或远程对等体断开,则会发生这种情况
"Connection refused" 远程对等方不接受指定端口上的连接(仅来自您?使用代理进行探测)
"Cancelled by user" 您按了Ctrl-C或以其他方式发送了SIGINT
"Unexpected error" 永远不会发生

3、判断依据

  1. 当服务器可控,可以通过以下命令来确认是否存在该漏洞:
pgrep http | wc -l  进程数量
netstat -antp | grep 443 | wc -l  网络连接数量
  1. 在攻击的时间段,服务无法正常访问则存在漏洞。

slowhttptest慢速攻击工具使用详解的更多相关文章

  1. PowerShell攻防进阶篇:nishang工具用法详解

    PowerShell攻防进阶篇:nishang工具用法详解 导语:nishang,PowerShell下并肩Empire,Powersploit的神器. 开始之前,先放出个下载地址! 下载地址:htt ...

  2. Linux命令工具 top详解

    Linux命令工具 top详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不 ...

  3. Lua包管理工具Luarocks详解 - 15134559390的个人空间 - 开源中国社区

    Lua包管理工具Luarocks详解 - 15134559390的个人空间 - 开源中国社区 Lua包管理工具Luarocks详解

  4. [转]网络性能评估工具Iperf详解(可测丢包率)

    原文链接:安全运维之:网络性能评估工具Iperf详解:http://os.51cto.com/art/201410/454889.htm 参考博文:http://linoxide.com/monito ...

  5. IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)

    来源: http://www.cnblogs.com/JustinYoung/archive/2009/04/03/kaifarenyuangongju2.html 在上一篇文章IE8“开发人员工具” ...

  6. IE8“开发人员工具”使用详解上(各级菜单详解)

    来源: http://www.cnblogs.com/JustinYoung/archive/2009/03/24/kaifarenyuangongju.html IE8“开发人员工具”使用详解上(各 ...

  7. 【Android 应用开发】Ubuntu 下 Android Studio 开发工具使用详解 (旧版本 | 仅作参考)

    . 基本上可以导入项目开始使用了 ... . 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/21035637 ...

  8. 批量执行工具PSSH详解

    批量执行工具PSSH详解 pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的,使用必须在各个服务器上配置好密钥认证访问. 安装pssh包 yum 安 ...

  9. 自动化运维工具——ansile详解

    自动化运维工具——ansible详解(一) 目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ...

随机推荐

  1. Qt学习笔记-Qt5和Qt4在音频方面的不同-QtAV

    之前学习qt4的时候,播放音频用的是phonon播放后端插件+mplayer. 今天改用qt5了.qt5中去掉了phonon模块加了multimedia.但是依然无法播放音乐,因为没有ffmpge s ...

  2. el-input限制只能输入数字(开发小记)

    输入框中限制通常有三种处理方法 第一种:设置type属性(不推荐) 设置type属性为number,text等等,此方法输入框的后面会有不必要样式出现 <el-input type=" ...

  3. Adnc如何本地调试 - 一个轻量级的.Net Core微服务开发框架

    前言     Adnc是一个轻量级的.Net Core微服务开发框架,同样适用于单体架构系统的开发.     如果只是想本地调试,只需要安装必备软件,必备软件除开发工具外,其它软件建议大家都使用`do ...

  4. try catch finally语句块中存在return语句时的执行情况剖析

    2种场景 (1) try中有return,finally中没有return(注意会改变返回值的情形);(2) try中有return,finally中有return; 场景代码分析(idea亲测) 场 ...

  5. 万万没想到,面试中,连 ClassLoader类加载器 也能问出这么多问题…..

    1.类加载过程 类加载时机 「加载」 将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在内存上创建一个java.lang.Class对象用来封装类在方法区内的数据 ...

  6. Java安全之Weblogic 2016-3510 分析

    Java安全之Weblogic 2016-3510 分析 首发安全客:Java安全之Weblogic 2016-3510 分析 0x00 前言 续前面两篇文章的T3漏洞分析文章,继续来分析CVE-20 ...

  7. 我的程序员之路:自学Java篇

    序章 时光疾驰,从事IT行业已两年有余. 16年11月开始自学Java,从此开启自学之路,后来实习期自学大数据.python.爬虫等,最终成长为一名平凡的程序员.回首望去,一路上的过往历历在目,有初学 ...

  8. 服务器报错"您的主机中的软件中止了一个已建立的连接"

    网上很多的说法都模棱两可,只是说和远程连接有关,这个说的太泛泛了. 我现在遇到的问题是java web出现的, 执行表单提交的时候出现该错误,原因是ajax和表单同时提交导致的, 相信很多朋友用了aj ...

  9. 【Redis3.0.x】NoSql 入门

    Redis3.0.x NoSql 入门 概述 NoSQL(Not Only SQL ),即不仅仅是 SQL,泛指非关系型的数据库.NoSQL 数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑 ...

  10. 【C++】《C++ Primer 》第十八章

    第十八章 用于大型程序的工具 大规模应用程序的特殊要求包括: 在独立开发的子系统之间协同处理错误的能力. 使用各种库进行协同开发的能力. 对比较复杂的应用概念建模的能力. 一.异常处理 异常处理(ex ...