DDoS兵器谱2014Q1版
网络攻防是发生在第五空间的对抗和战争。这是一个动态的过程,无论攻击者还是防御者都在实战中寻求进步。攻防双方的“兵器”就在这个战场中不断磨砺和进化。绿盟科技关注攻防的最新进展,为了帮助客户更好的对抗网络威胁,每个季度会推出最新的“DDoS兵器谱” ,介绍DDoS工具的最新发展和变化。
1. 简介
本期“DDoS兵器谱”将要介绍的这三款工具的最新进展,他们是XOIC、Zarp和Slowhttptest。其中XOIC可以说是工具LOIC的加强版,使用C#编写,运行于win7及以上系统(.NET FRAMEWORK 3.5及以上);Zarp是一款综合性攻击测试框架,DDoS仅是其一部分功能,其它的还包括漏洞扫描等,并且新增加的模块不涉及DDoS攻击;而Slowhttptest新版最大的改进是界面以及日志的输出,比之前更为简洁。
2. XOIC
相对于LOIC的多平台(GNU/Linux, Windows, Mac OS以及Android),XOIC可运行的环境则少的多,仅支持win7以上的Windows平台。
攻击方式上多了ICMP FLOOD。下面是作者列出的工具特色:
和LOIC相比,工具主打的还是流量型攻击,不过相比前者增加了Testmode模式,可以测试攻击主机的性能。 另外,在实际的测试中发现了工具的一个小BUG。
反编译后的关键代码如下:
3. Zarp
Zarp是采用Python编写的、类似MSF的一款网络攻击测试框架。工具采用模块化设计,集漏洞扫描、嗅探、DDoS压力测试于一身。Zarp主要接口是一个CLI驱动的图形界面,采用多层菜单,使用起来相当方便。目前运行平台只限于linux,同时在安装之前要确保系统存在python2.7.x、git以及scapy。
程序执行界面。
4. Slowhttptest
Slowhttptest主要用于慢速攻击测试,它包含了多种流行的攻击方式,如slowloris、slow http post以及slow read attack等。主要工作于linux平台。新版本除修复部分bug外,最大的改变就是界面的改进。官方描述如下:
下面对其主要的攻击方式做简要概述,并给出可能的防御建议。
4.1. Slowloris
slowloris在这里又被称为slow headers,攻击截图如下:
攻击的数据包如下:
其基本原理是制造不完整的header。完整的http请求头结尾应该是“0d0a0d0a”,而但攻击工具只发送“0d0a”。然后以固定的时间间隔,反复发送随机的key-value键值对,迫使服务器持续等待(至超时)。最终通过不间断的并发连接耗尽系统的最大连接数直至服务端DOS。 切换至HEX显示如下:
4.2. Slow http post
Slow http post也称为Slow body。顾名思义,攻击的着眼点放在了发送内容的过程中。
攻击数据包:
切换至HEX显示如下:
可以看到在这种攻击中,http header数据已被完整发送(注意0d0a0d0a),只是将http header中content-length字段设置为一个很大的值(这里是8192),同时不在一个包中发送完整post数据而是每间隔10秒(此值攻击者可以调整)发送随机的key-value键值对。可以看出,任何可以接收http post请求的网站,都有可能遭受此类攻击。
4.3. Slow read
Slow read攻击简单说就是,通过调整TCP协议头中的window size来控制双方的数据流速率,尽可能长的保持单次连接的交互时间,直至超时。
要使这种攻击效果更加明显,请求的资源要尽量大,比如我这里的测试图片test.png,其大小为4M多。如果目标网站没有这么大的资源,但若其支持http_pipelining的话,可以采用在同一连接中多次请求同一资源的方法来增大返回内容。从捕获的数据包中可以看出,当请求 test.png资源时,客户端window size被刻意设置为1120字节。客户端缓冲区在被来自服务的数据填满后,发出了[TCP ZeroWindow]告警,迫使服务端等待。从交互开始到断开,单个连接耗费了14秒。
捕获的数据:
检测防御
特征匹配: 这里看一下工具的部分源代码,我们可以把user agent搭配referer作为特征。
使用ModSecurity: 基于特征匹配其局限性比较大,容易被绕过,尤其是针对开源的工具。我们的另一种选择是使用专业的检测模块ModSecurity。最新版本为2.8,支持多个平台,它采用的是基于规则的匹配。它有基础的免费防护规则,不过商业规则需要付费。
在功能栏中针对slow http攻击的描述:
通用方案: 设置单个IP单位时间内的并发连接数,并对每个连接请求创建一个定时器并设置合适的超时时间,触发任一规则,则断开连接,当然也可配合黑白名单机制。
5. 常用DDoS工具一览
工具 | 时间 | 类型 | 运行平台 |
---|---|---|---|
Hping | 2004 | ICMP/UDP/SYN | Linux、Windows、Mac OS |
Slowloris | 2007 | HTTP GET | Perl运行环境 |
LOIC | 2009年6月 | UDP/TCP/HTTP GET | Linux、Windows、Mac OS |
PenTBox | 2009年7月 | SYN/TCP | Linux、Windows、Mac OS |
R.U.D.Y | 2011年1月 | HTTP POST | python运行环境 |
HOIC | 2011年3月 | HTTP GET | Linux、Windows、Mac OS |
THC SSL DOS | 2011年10月 | SSL renegotiation | Linux、Windows、Mac OS |
Zarp | 2012年2月 | SYN | Linux |
HULK | 2012年5月 | HTTP GET | python运行环境 |
6. 参考
http://sourceforge.net/projects/xoic/
https://defense.ballastsecurity.net/wiki/index.php/Zarp
https://code.google.com/p/slowhttptest/wiki/InstallationAndUsage
http://hi.baidu.com/thinkpig007/item/59222dd36407d948dcf9be4f