最新消息:

慢速连接攻击

http admin 4722浏览 0评论

提起攻击,第一反应就是海量的流量、海量的报文。但有一种攻击却反其道而行之,以慢著称,以至于有些攻击目标被打死了都不知道是怎么死的,这就是慢速连接攻击。

slowhttptest是一款对服务器进行慢攻击的测试软件,包含了几种攻击方式,像Slowloris、SlowHTTP POST、Slow Read attack等。

总而言之,该工具的原理就是设法让服务器等待,当服务器在保持连接等待时,就消耗了资源。

1、 最具代表性的是rsnake发明的Slowloris,又被称为slow headers。

【攻击原理】

HTTP协议规定,HTTP Request以\r\n\r\n(0d0a0d0a)结尾表示客户端发送结束,服务端开始处理。那么,如果永远不发送\r\n\r\n会如何?Slowloris就是利用这一点来做DDoS攻击的。攻击者在HTTP请求头中将Connection设置为Keep-Alive,要求Web Server保持TCP连接不要断开,随后缓慢地每隔几分钟发送一个key-value格式的数据到服务端,如a:b\r\n,导致服务端认为HTTP头部没有接收完成而一直等待。如果攻击者使用多线程或者傀儡机来做同样的操作,服务器的Web容器很快就被攻击者占满了TCP连接而不再接受新的请求。

【工具演示】

1464928835-4685-

用Wireshark抓包查看http请求头中有随机的key-value键值对,如下图红圈所示,且http请求头结尾不完整,是“0d 0a”

1464928835-2122-

如果是正常的http请求头,结尾是“0d0a 0d 0a”,正常结束客户端请求 如下图所示

1464928835-6026-

2、Slowloris的变种–Slow HTTP POST,也称为Slow body。 

【攻击原理】

在POST提交方式中,允许在HTTP的头中声明content-length,也就是POST内容的长度。

在提交了头以后,将后面的body部分卡住不发送,这时服务器在接受了POST长度以后,就会等待客户端发送POST的内容,攻击者保持连接并且以10S-100S一个字节的速度去发送,就达到了消耗资源的效果,因此不断地增加这样的链接,就会使得服务器的资源被消耗,最后可能宕机。

    【工具演示】

1464928835-2548-

用Wireshark抓包可以看到,header结尾是正常的“0d 0a 0d 0a”,但Content-Length字段设置为一个很大的值8192,同时不在一个包中发送完整post数据而是每间隔100秒发送随机的key-value键值对。

1464928835-2462-

3、Slow Read attack

【攻击原理】

采用调整TCP协议中的滑动窗口大小,来对服务器单次发送的数据大小进行控制,使得服务器需要对一个回应分成很多个包来发送。要使这种攻击效果更加明显,请求的资源要尽量大。

【工具演示】

1464929303-9294-

 用Wireshark抓包可以看出,当请求a.wmv资源(大小有9M多)时,客户端windowssize被刻意设置为1152字节。客户端缓冲区在被来自服务器的数据填满后,发出了[TCP ZeroWindow]告警,迫使服务端等待。

 1464928838-3150-

1464928838-6789-

受到以上各种慢速攻击后,服务器再无法访问

转载请注明:爱开源 » 慢速连接攻击

您必须 登录 才能发表评论!