注:本文主张交流与科研学习,请勿对该技术进行恶意使用!本平台及作者对读者的之后的行为不承担任何法律责任。
前言在上集我们已经知道了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攻击分为Layer4和Layer7两个大类,并且每个Layer都有很多种攻击方式,今天我们就来说一下怎么使用这些DDOS攻击脚本。
编译脚本文件我所提供和收集的DDOS脚本文件全部都是由C++所编写,所以在Linux上用gcc来对脚本进行编译。
使用以下命令对源代码进行编译
gcc 脚本名称.c -o 脚本名称 -lpthread
或者
gcc 脚本名称.c -lpthread -lpcap -o 脚本名称
编译完成后需要对该脚本赋予足够的权限
chmod 755 脚本名称
对脚本编译及赋予权限
使用DDOS脚本我先拿一个ACK DDOS脚本举个例子。我们可以看到这个攻击脚本需要的主要是以下几个命令参数。
,/脚本名称 <攻击线程> <是否限制流量(如果不限输入-1)> <攻击时间>
ACK DDOS命令
那么我们来尝试一下对局域网内IP进行DDOS攻击。可以看到目标IP已经无法ping通了。
使用ACK DDOS攻击某主机
AMP列表扫描但是有时候我们会看到AMP DDOS攻击需要添加一个AMP列表,如下图红色方框所示。这个AMP列表到底是什么?又是怎么得到到?
DNS反射攻击(需要AMP文件)
这里我需要详细解释一下。AMP的全称是Amplification,中文意思就是放大。比如大家熟悉的DNS反射型攻击就是一个标准的AMP DDOS攻击。其原理是A服务器发送大量的数据包给大量的DNS服务器,但是数据包是篡改过的。黑客会把发送过去的数据包里A服务器的IP地址更改成B服务器的IP地址。DNS服务器会以为是B服务器发送的数据包,于是就会把返回的数据包发送给B服务器。DNS放大攻击的好处是可以用一台主机达到N台主机的攻击效果。
大家可以参考以下图片来理解。
#p#分页标题#e#DNS AMP DDOS攻击
而我们所需要的AMP列表就是全球所有的DNS服务器IP地址或者是可以做数据包跳转的IP地址。在我提供的源代码里面也有AMP资源扫描脚本文件的源代码,编译方式同上。
资源扫描器代码
我们先看看扫描一个DNS资源需要什么命令参数。
./AMP扫描脚本名称 <开始IP> <结束IP> <输出文件位置> <线程> <多少毫秒开始延时一次>
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 列表存放的域名/新的AMP列表1.txt
wget 列表存放的域名/新的AMP列表2.txt
…………省略…………
然后直接运行这个可执行程序,那么整个AMP列表的内容就会随之更新了。目前全球没一个人在做这件事,有兴趣(金钱和技术)的人可以考虑做做看。
常用DDOS攻击方式因为DDOS攻击的方式太多了,我无法把每个攻击的方式和原理都详细的讲解一遍。如果每种攻击方式都详细讲一遍,差不多可以出一本书了。但是大家可以参考下面这个表格去网上搜索相关的资料和脚本代码。
攻击名称 攻击层数 目标种类 命令填写格式你使用一两个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。
Key Code设置
在11行那里我们需要输入服务器的IP地址,SSH的账号和密码。
服务器SSH IP地址,账号和密码
#p#分页标题#e#从43行到63行是调用脚本文件的。在==后面填写的是DDOS攻击名称,./后面跟着的是脚本的路径和文件名称,然后每个$后面的变量值都是要填写的指令,如果没有动态变量那么直接填写相关命令,比如AMP列表文件名称。如果你的DDOS脚本文件或者AMP列表文件在其它文件夹,那么请确保对API内的DDOS脚本文件路径进行更改,并且确定这个API文件有权限访问你的脚本文件所在目录。
调用DDOS攻击脚本文件
然后就是使用这个API文件了,根据源代码的里面的各种变量和常量值,我们可以这么构建。
服务IP地址/api.php?key=自己设置的Key Code&host=目标地址&time=攻击时间&port=端口&method=攻击方式
举例:
?key=keycode&host=192.168.1.3&time=50&port=80&method=DNS
API调用文件核查搭建完API后我们需要核实一下是否成功的对脚本进行调用。这里很简单,直接用HTOP查看整个服务器的进程就行。输入以下命令开启htop服务。
htop
下面这张图是未执行API前的运行程序
未执行API前
下面这张图是执行API后的运行程序,可以发现多了几个DDOS攻击脚本运行在后台。
执行API后
在线DDOS演练系统搭建在线DDOS平台的搭建也没多复杂,我已经提供给大家足够的在线DDOS CMS源码,并且都附上了数据库结构。这些在线DDOS平台都是采用PHP编写,数据库都是MySQL。每个CMS都有特定的文件来填写DDOS API,在填写API的文件里面可以填写多个API,之后要发送攻击命令的时候只需要调用一个API接口,这个API接口又会调用你输入的API接口,然后你输入的API接口又会调用全部的DDOS攻击脚本文件,非常的方便。这个地方需要普及的知识太多了,但是凡是搭建过WEB服务器的人都很清楚这些流程,我就不专门去讲了,大家自己研究一下。
某在线DDOS平台API插入界面
尾声与感想我通过各种PY交易获得了大量的在线DDOS平台的源码和DDOS脚本的源代码,为了这个专题也花了不少的精力和少许的金钱,但是能够免费的为国内的安全研究人员提供一个在线DDOS平台的研究我是非常高兴的。
但是我为什么不提供像低轨道粒子炮,HUC DDOS这种工具?得了吧,那种东西不配叫做DDOS(分布式拒绝服务)攻击,称其量只能算作DOS(拒绝服务)攻击,拿来打苍蝇都打不死。与其提供给你们一把AK47,不如直接给你们制造核弹头的原材料。
传送门开启!在线DDOS平台源码,在线DDOS攻击脚本和在线DDOS API文件下载(密码freebuf)
笔者曾在美国生活,美国在线DDOS平台处于一个法律的灰色地带,你既不能说它非法,也不能完全说它合法,因为DDOS和大流量的攻击演练并没有太清晰的界限。我在美国那段时期有幸和一个在线DDOS平台的站长聊过几次,他说他们的主要收入都是来自中国,他甚至想专门弄一个中文版本的在线DDOS平台,只可惜他不会中文,而且又担心被GFW拦截。在中国开DDOS在线平台只有授权检测证明我才能购买这个服务,而客户群体普遍都是厂商,针对个人用户的反而很少。于此同时就造成DDOS演练在国内变成了供不应求的局面,要做压力测试厂商有时只能被迫去购买国外的流量。在这种情况下,压力测试服务只能成为安全厂商的一个附加服务。
#p#分页标题#e#据笔者了解,国内诸如阿里巴巴、腾讯、淘宝都有专门的DDOS演练平台,可以自动化的演练此类攻击,因而这些企业对于DDOS的防御能力是相对较强的。
可是其他国内的互联网厂商做过正规压力测试服务的非常少,基本上只要三个G的上行流量可以打死国内一大堆网站,并且不管这些厂商用什么服务器。DDOS攻击是最难防御的,也是威胁程度很高的。但是值得庆幸的是国内还有个GFW对这些DDOS流量进行拦截。
在2016年二月,爱尔兰就遭受到大规模的DDOS攻击,整个国家的网络差点瘫痪。那么中国企业能够应对这种压力吗?国内厂商和政府的服务器是否做好了抗DDOS的准备?
上一篇: 华为云安全攻防团队招聘渗透测试工程师