搭建DDOS平台演练

前言

在上集我们已经知道了DDOS流量的获取方式,并且总结出每种流量的获取方式。原理说的差不多了,所以这篇文章将围绕技术角度攥写。在最后部分我将会发放辛辛苦苦收集的各种DDOS攻击脚本和各类在线DDOS平台的源代码

如果没看过上集的请参考该链接: 走近科学:揭秘在线DDoS攻击平台(上) 。

流量控制

当我们获取到足够流量的时候就需要对流量进行管理和分配。DDOS流量的管理可以分为以下三大类,分别是单一DDOS脚本控制,单个API接口控制多个DDOS脚本和单个CMS或者API控制多个API接口。

单一DDOS脚本控制

这类流量控制是最简单的,属于一个拒绝服务攻击(DOS),还不能称之为分布式拒绝服务攻击(DDOS)。黑客通过源代码编译好一个脚本后直接对目标站点进行攻击。这种控制方式主要运营压力测试模拟阶段上,并不会用作真正的DDOS攻击。因为流量过小,攻击方式过于单一。

单个API接口控制多个DDOS脚本

这时安全研究人员为了使攻击复杂化,也为了方便流量的管理。这个时候会编译一个API接口来统一管理全部的DDOS流量。

单个CMS或者API控制多个API接口

在DDOS攻击里面,我们需要用到众多的服务器,那么单个API已经不能满足我们的需求了。这时每个服务器都会有一个自己的API接口,于是我们又会再去重新编写一个API接口来管理全部服务器的API接口。在攻击目标站点的时候,只需要一个命令,全部的服务器都会对目标站点展开各种各样的DDOS攻击。

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

流量控制流程图

DDOS脚本介绍

在上一篇我已经说过DDOS攻击分为Layer4和Layer7两个大类,并且每个Layer都有很多种攻击方式,今天我们就来说一下怎么使用这些DDOS攻击脚本。

编译脚本文件

我所提供和收集的DDOS脚本文件全部都是由C++所编写,所以在Linux上用gcc来对脚本进行编译。

使用以下命令对源代码进行编译

gcc 脚本名称.c -o 脚本名称 -lpthread

或者

gcc 脚本名称.c -lpthread -lpcap -o 脚本名称

编译完成后需要对该脚本赋予足够的权限

chmod 755 脚本名称

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

对脚本编译及赋予权限

使用DDOS脚本

我先拿一个ACK DDOS脚本举个例子。我们可以看到这个攻击脚本需要的主要是以下几个命令参数

,/脚本名称 <攻击线程> <是否限制流量(如果不限输入-1)> <攻击时间>

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

ACK DDOS命令

那么我们来尝试一下对局域网内IP进行DDOS攻击。可以看到目标IP已经无法ping通了。

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

使用ACK DDOS攻击某主机

AMP列表扫描

但是有时候我们会看到AMP DDOS攻击需要添加一个AMP列表,如下图红色方框所示。这个AMP列表到底是什么?又是怎么得到到?

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

DNS反射攻击(需要AMP文件)

这里我需要详细解释一下。AMP的全称是Amplification,中文意思就是放大。比如大家熟悉的DNS反射型攻击就是一个标准的AMP DDOS攻击。其原理是A服务器发送大量的数据包给大量的DNS服务器,但是数据包是篡改过的。黑客会把发送过去的数据包里A服务器的IP地址更改成B服务器的IP地址。DNS服务器会以为是B服务器发送的数据包,于是就会把返回的数据包发送给B服务器。DNS放大攻击的好处是可以用一台主机达到N台主机的攻击效果。

大家可以参考以下图片来理解。

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

DNS AMP DDOS攻击

而我们所需要的AMP列表就是全球所有的DNS服务器IP地址或者是可以做数据包跳转的IP地址。在我提供的源代码里面也有AMP资源扫描脚本文件的源代码,编译方式同上。

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

资源扫描器代码

我们先看看扫描一个DNS资源需要什么命令参数。

./AMP扫描脚本名称 <开始IP> <结束IP> <输出文件位置> <线程> <多少毫秒开始延时一次>

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

DNS扫描器指令

一般情况下,我们会把 1.1.1.1 作为开头IP地址,然后把 255.255.255.255 作为末端IP地址,这样就可以扫描到全球的DNS服务器的IP地址了。DNS反射攻击只是AMP DDOS攻击的其中一种,还有很多AMP DDOS攻击方式,比如MySQL AMP DDOS攻击,NTP AMP DDOS攻击等。以1GB的上行宽带速度来看,一般需要3-5个小时才能扫描完成。

AMP列表自动化更新理念

一个AMP列表的制作就需要数个小时,那么多AMP列表的制作需要的时间就更久了。这里想了一个方式能够让大家快速的得到这些AMP列表。这里大家先别激动,这个只是一个想法,还并没有人去执行。

首先是是一个人或者团队专门来负责对AMP 列表的更新和维护,扫描到的列表生成txt文本文件后存放在WEB服务器上。随后这个人或者团队可以免费或者付费对大家开放列表的下载地址。如果有人的AMP列表需要更新,在服务上写一个sh可执行文件,内容为

#!/bin/bash rm -I 老的AMP列表1.txt rm -I 老的AMP列表2.txt …………省略………… wget http://AMP列表存放的域名/新的AMP列表1.txt wget http://AMP列表存放的域名/新的AMP列表2.txt …………省略…………

然后直接运行这个可执行程序,那么整个AMP列表的内容就会随之更新了。 目前全球没一个人在做这件事,有兴趣(金钱和技术)的人可以考虑做做看。

常用DDOS攻击方式

因为DDOS攻击的方式太多了,我无法把每个攻击的方式和原理都详细的讲解一遍。如果每种攻击方式都详细讲一遍,差不多可以出一本书了。但是大家可以参考下面这个表格去网上搜索相关的资料和脚本代码。

攻击名称 攻击层数 目标种类 命令填写格式
GET Layer 7 网站,服务器IP等 填写网站链接: http://xxxx.com
HEAD Layer 7 网站,服务器IP等 填写网站链接: http://xxxx.com
POST Layer 7 网站,服务器IP等 填写网站链接: http://xxxx.com
JSBYPASS Layer 7 网站,服务器IP等 填写网站链接: http://xxxx.com
JOOMLA Layer 7 网站,服务器IP等 填写网站链接: http://xxxx.com
XMLRPC Layer 7 网站,服务器IP等 填写网站链接: http://xxxx.com
SNMP Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
SSDP Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
DNS Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
CHARGEN Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
NTP Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
TS3 Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
SSYN Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
DOMINATE Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
ACK Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
NGSSYN Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
OVX Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
TCPACK Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
TCPSYN Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
TCPRST Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
TCPURG Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
TCPPUSH Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
TCPECE Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
TCPCWR Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
ICMP Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
MUDP Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
VSE Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1
ATCP Layer 4 个人主机,服务器IP等 填写IP地址: 192.168.0.1

DDOS API搭建

API搭建准备

你使用一两个DDOS脚本还好,但是如果你要使用几十个DDOS脚本呢?一个一个的执行吗?所以我们还需要搭建一个API来对这些脚本文件进行调用。API编写最简便的还是PHP,所以我们还需要在服务器上搭建相关的环境。这些命令只适用于Cent OS,其它版本的Linux系统请自行Google

输入以下命令进行安装

1.yum -y update 2.yum install gcc libcap libpcap libpcap-devel screen php dstat cmake gmp gmp-devel gengetopt byacc flex git json-c zmap iptraf nano(或者直接输入yum groupinstall "Development Tools") 3.yum groupinstall "Development Tools" 4.yum install gcc php-devel php-pear libssh2 libssh2-devel 5.pecl install -f ssh2 6.touch /etc/php.d/ssh2.ini 7.echo extension=ssh2.so > /etc/php.d/ssh2.ini 8.Service httpd restart

就这么简单,环境已经搭建完成。然后你需要把API文件,DDOS脚本和AMP列表文件文件放入到你的WEB目录内。环境创建完毕后默认的WEB目录在

/var/www/html

API文件编辑

这时你需要对你的API文件进行编辑。我们先来看看这个API文件哪里需要改的。

如下图所示,在代码第六行那里有个红方框,在红方框内设置一个你自己的Key Code。

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

Key Code设置

在11行那里我们需要输入服务器的IP地址,SSH的账号和密码。

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

服务器SSH IP地址,账号和密码

从43行到63行是调用脚本文件的。在 == 后面填写的是DDOS攻击名称, ./ 后面跟着的是脚本的路径和文件名称,然后每个$ 后面的变量值都是要填写的指令,如果没有动态变量那么直接填写相关命令,比如AMP列表文件名称。如果你的DDOS脚本文件或者AMP列表文件在其它文件夹,那么请确保对API内的DDOS脚本文件路径进行更改,并且确定这个API文件有权限访问你的脚本文件所在目录。

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

调用DDOS攻击脚本文件

然后就是使用这个API文件了,根据源代码的里面的各种变量和常量值,我们可以这么构建。

http://服务IP地址/api.php?key=自己设置的Key Code&host=目标地址&time=攻击时间&port=端口&method=攻击方式

举例:

http://192.168.1.2/api.php?key=keycode&host=192.168.1.3&time=50&port=80&method=DNS

API调用文件核查

搭建完API后我们需要核实一下是否成功的对脚本进行调用。这里很简单,直接用HTOP查看整个服务器的进程就行。输入以下命令开启htop服务。

htop

下面这张图是未执行API前的运行程序

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

未执行API前

下面这张图是执行API后的运行程序,可以发现多了几个DDOS攻击脚本运行在后台。

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

执行API后

在线DDOS演练系统搭建

在线DDOS平台的搭建也没多复杂,我已经提供给大家足够的在线DDOS CMS源码,并且都附上了数据库结构。这些在线DDOS平台都是采用PHP编写,数据库都是MySQL。每个CMS都有特定的文件来填写DDOS API,在填写API的文件里面可以填写多个API,之后要发送攻击命令的时候只需要调用一个API接口,这个API接口又会调用你输入的API接口,然后你输入的API接口又会调用全部的DDOS攻击脚本文件,非常的方便。这个地方需要普及的知识太多了,但是凡是搭建过WEB服务器的人都很清楚这些流程,我就不专门去讲了,大家自己研究一下。

动手搭建DDoS演练:揭秘在线DDoS攻击平台(下)

某在线DDOS平台API插入界面

尾声与感想

我通过各种PY交易获得了大量的在线DDOS平台的源码和DDOS脚本的源代码,为了这个专题也花了不少的精力和少许的金钱,但是能够免费的为国内的安全研究人员提供一个在线DDOS平台的研究我是非常高兴的。

但是我为什么不提供像低轨道粒子炮,HUC DDOS这种工具?得了吧,那种东西不配叫做DDOS(分布式拒绝服务)攻击,称其量只能算作DOS(拒绝服务)攻击,拿来打苍蝇都打不死。与其提供给你们一把AK47,不如直接给你们制造核弹头的原材料。

笔者曾在美国生活,美国在线DDOS平台处于一个法律的灰色地带,你既不能说它非法,也不能完全说它合法,因为DDOS和大流量的攻击演练并没有太清晰的界限。我在美国那段时期有幸和一个在线DDOS平台的站长聊过几次,他说他们的主要收入都是来自中国,他甚至想专门弄一个中文版本的在线DDOS平台,只可惜他不会中文,而且又担心被GFW拦截。在中国开DDOS在线平台只有授权检测证明我才能购买这个服务,而客户群体普遍都是厂商,针对个人用户的反而很少。于此同时就造成DDOS演练在国内变成了供不应求的局面,要做压力测试厂商有时只能被迫去购买国外的流量。在这种情况下,压力测试服务只能成为安全厂商的一个附加服务。

据笔者了解,国内诸如阿里巴巴、腾讯、淘宝都有专门的DDOS演练平台,可以自动化的演练此类攻击,因而这些企业对于DDOS的防御能力是相对较强的。

可是其他国内的互联网厂商做过正规压力测试服务的非常少,基本上只要三个G的上行流量可以打死国内一大堆网站,并且不管这些厂商用什么服务器。DDOS攻击是最难防御的,也是威胁程度很高的。但是值得庆幸的是国内还有个GFW对这些DDOS流量进行拦截。

在2016年二月,爱尔兰就遭受到大规模的DDOS攻击,整个国家的网络差点瘫痪。那么中国企业能够应对这种压力吗? 国内厂商和政府的服务器是否做好了抗DDOS的准备?

*文章原创作者: ArthurKiller,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)

欢迎留言