slowhttp:

slowhttptest包括slowloris, Slow HTTP POST, Slow Read attack等。原理就是想办法让服务器等待,当服务器在保持连接等待时,自然就消耗了资源,达到攻击目的。slowhttp攻击不像ddos那么直接通过大量连接(请求)搞崩溃服务器,它折磨死服务器,让服务器感觉各种不自在,感觉像生病了一样,然后慢慢死去(业务无法正常运行)。

slowloris
攻击方式说起来类似于基于HTTP协议的SYN Flood,但是影响的范围要小得多,比如同一个服务器上的两个Apache服务,可能一个给搞挂了,另一个还是正常运行。举个例子,在进行攻击时,攻击者发送这样的请求到服务器:
GET / HTTP/1.1\r\n
Host: Victim host\r\n
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n
Content-Length: 42\r\n
完整的http请求结尾应该是两次的\r\n\r\n,因此这里少了一次,服务器将会一直等待,隔一段时间之后,再发送一个
X-a: b\r\n
这时服务器都要崩溃了,等不到后续的数据。

Slow HTTP POST
这种攻击方式与前一种有类似的原理,在POST提交方式中,允许在HTTP的头中声明content-length,也就是POST内容的长度。
在提交了头以后,将后面的body部分卡住不发送,这时服务器在接受了POST长度以后,就会等待客户端发送POST的内容,攻击者保持连接并且以10S-100S一个字节的速度去发送,就达到了消耗资源的效果,因此不断地增加这样的链接,就会使得服务器的资源被消耗,最后可能宕机,但是可能对很多Web服务器程序已经失效了。
Slow Read attack
采用的攻击方式是采用调整TCP协议中的滑动窗口大小,来对服务器单次发送发送的数据大小进行控制,使得服务器需要对一个回应分成很多个包来发送。

slowhttp测试

工具安装,(kali上安装)

apt-get install slowhttptest 
  • 1

一路y即可,安装就可以使用了。
测试实例:
slowloris模式:

root@test:~# slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u https://主机地址:端口/index.html -x 24 -p 3
  • 1

Slow Read模式:

root@test:~# slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u http://主机地址:端口 -p 5 -l 350 -e x.x.x.x:8080
x.x.x.x:8080是HTTP代理
  • 1
  • 2

工具使用说明和使用案例技巧:
—a—开始开始值范围说明符用于范围头测试
-b 将字节限制的范围说明符用于范围头测试
- c的连接数限制为65539
- d proxy host:port用于指导所有流量通过web代理
- e proxy host:port端口用于指导只有探针交通通过web代理
- h,B,R或x指定减缓在头部分或在消息体,- R 允许范围检验,使慢读测试- x
- g生成统计数据在CSV和HTML格式,模式是缓慢的xxx。csv / html,其中xxx是时间和日期
- i seconds秒间隔跟踪数据在几秒钟内,每个连接
- k管道因子次数重复请求在同一连接慢读测试如果服务器支持HTTP管道内衬。
- l在几秒钟内,秒测试时间
- n秒间隔从接收缓冲区读取操作
- o文件定义输出文件路径和/或名称,如果指定有效- g
- p秒超时等待HTTP响应在探头连接后,服务器被认为是不可访问的
- r seconds连接速度
- s字节值的内容长度标题详细说明,如果指定- b
- t verb自定义
- u URL目标URL,相同的格式键入浏览器,e。g
- v level冗长等级0 – 4的日志
- w字节范围广告的窗口大小会选择从
- x字节最大长度的跟踪数据结束
- y字节范围广告的窗口大小会选择从
- z字节从接收缓冲区读取字节与单一的read()操作
案例说明
slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://mysite -x 10 -p 3
测试结论:
1 如果在用该攻击攻击服务器,服务器正常使用并且cpu、内存、网络实用率正常,则无slowhttp漏洞
如:pgrep http | wc -l 进程数量
netstat -antp | grep 443 |wc -l 网络连接数量
2 若攻击的时间段,服务无法正常访问则存在次漏洞。
3 漏洞的修补方法:
a.设定URL白名单和黑名单,识别坏的IP;
b.设置一个绝对连接超时,
c.定义最小的输入数据速率;对web服务器的http头部传输的最大许可时间进行限制,修改成最大许可时间为20秒。
统计每个TCP连接的时长并计算单位时间内通过的报文数量即可做精确识别。一个TCP连接中,HTTP报文太少和报文太多都是不正常的,过少可能是慢速连接攻击,过多可能是使用HTTP 1.1协议进行deHTTP Flood攻击,在一个TCP连接中发送多个HTTP请求。
限制HTTP头部传输的最大许可时间。超过指定时间HTTP Header还没有传输完成,直接判定源IP地址为慢速连接攻击,中断连接并加入黑名单。

--------------------- 本文来自 弘毅密令 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/u013908944/article/details/76576089?utm_source=copy

10-04 18:02