走近科学:揭秘在线DDoS攻击平台

注:本文主张交流与科研学习,请勿对该技术进行恶意使用!本平台及作者对读者的之后的行为不承担任何法律责任。

ddos.jpg

简介

DDOS攻击也叫做分布式拒绝服务攻击,其英文全称为Distributed Denial of Service attack。DDOS攻击的主要目的是使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其对目标客户不可用。用在好处可以为厂商及政府的服务器做合法的压力测试,用在坏处则可以对厂商进行敲诈勒索。本文主要讲解在线DDOS那么以下两点,流量获取方式和DDOS分成方式。

获取流量

DDOS攻击最需要的就是流量,而流量又分为上行流量(Outlet)和下行流量(Inlet)。上行流量关系到向外发送数据包的速度和大小,而下行流量则是和接收数据包的速度和大小有关,在DDOS攻击里面主要用到的是上行行流量。那么黑客们是怎么获取到DDOS攻击的流量呢?我总结了一下,黑客获取流量的方式主要基于以下六点。

1.肉鸡集群

最常见的DDOS攻击流量主要是采用肉鸡所获得。黑客利用后门程序配合各种各样的安全漏洞获得个人计算机和web服务器的控制权限,随后由C&C服务器所控制。而黑客主要是连接C&C服务器对肉鸡集群下达命令。这种流量产生的攻击也叫做肉鸡集群DDOS攻击(Bot Net DDOS Attack)。肉鸡集群虽然有资源丰富和流量大这么两个优点,但是个人需要承担相关法律责任,并且技术要求很高。

肉鸡控制图.png

常见肉鸡控制图

2.租用VPS

VPS的好处是价格便宜,流量稳定,也不用担心法律问题,但是使用VPS的流量有个缺陷,就是大部分服务器厂商都禁止客户采用VPS服务器用作于DDOS攻击。因为一旦一个VPS长时间占用过多的流量,那么可能会影响到其它VPS的网络速度。如果客户违反其相关规定,VPS可能会被禁止使用,并且无法退款。

DDOS VPS价格.png

VPS价格和流量大小

3.租用专属服务器(Dedicated Server)

大部分服务器厂商都不会去管你采用专属服务器做什么。专属服务器有自己的宽带和独立IP,所以不管你怎么操作都不会影响到机房其它服务器的网络。虽然专属服务器流量大也稳定,但是它有个缺点就是价格十分昂贵。

godaddy.png

Godaddy上专属服务器的价格

4.黑市购买流量

有些黑客因为不懂DDOS脚本的代码,也不知道怎么搭建,于是会去网上购买别人搭建好的API或者购买压力测试厂商的服务。在全球比较大的暗网平台一般都会出售DDOS服务,DDOS API接口,僵尸网络等。但是暗网上买鱼龙混杂,除了小心骗子以外,这些流量都十分的昂贵,并且有很多的不确定因素,比如流量太小,支持的攻击方式太少等。

C&C服务器.png

暗网上出售的僵尸网络

DDOS API.png

暗网上的DDOS API搭建服务

5.通过论坛等社交平台上购买

也有些黑客会在一些英文黑客论坛上出售DDOS资源或者在YouTube上打广告。YouTube上的广告直接用搜索引擎搜索就行,但是论坛里的DDOS API购买还是得去hackforums或者leakforums之类的黑客论坛上发帖询问。这种方式购买到的流量有些是他们自己用VPS或者专属服务器搭建的,有些是用自己的肉鸡集群搭建的。虽然方便快捷,但是依然存在着这么两个问题,一个是价格高,第二个是骗子十分的多。

Youtube广告.png

YouTube上的广告

6.向在线DDOS平台上购买API

还有第三种是向在线小型DDOS平台购买。有些小型的DDOS平台也会出租他们自己的DDOS API资源。除了VPS和专属服务器外,但是不管你采用哪种方法购买,都需要注意一点,就是这些商家只接受比特币交易,同时注意别被骗了。在国外有很多的在线DDOS攻击平台,几个大型的在线DDOS平台都宣传自己采用专属主机作为DDOS流量,而且合理合法。不过这些DDOS攻击平台普遍都十分欢迎用户采用比特币付款,甚至有些在线压力平台会给予比特币付款用户一些折扣。一般情况下,普通货币兑换成比特币是需要交一些手续费的,比如Circle,火币网之类的,而且从黑客手中购买肉鸡集群也只能采取比特币付款的方式进行支付。所以不排除考虑,国外这些在线压力测试平台可能也会去购买一些灰色流量。下面给大家推荐国外几个大型的在线压力测试平台。

https://vdos-s.com

http://booterbox.com

https://booter.org

https://youboot.net

http://networkstresser.com/

https://booter.xyz/

DDOS攻击价格.png

某在线DDOS平台上的价格

7.流量获取总结

基于以上六个获取流量的方式,我做了一个表格可以更加方便的让大家进行对比每种方式的优点和缺点。

流量获取方式 在线DDOS平台购买API VPS 专属服务器 黑市购买 社交平台购买 肉鸡集群
价格 中等 中等
法律风险 中等 中等 中等
交易风险 中等
流量稳定性 不确定 稳定 稳定 不确定 不确定
IP资源数量 不确定 不确定 不确定
技术要求
交易货币要求 比特币 普通货币 普通货币 比特币 比特币,普通货币等

DDOS攻击分层

目前的DDOS攻击主要分为两个大类,分别为Layer 4和Layer 7,也叫做第四层攻击和第七层攻击。这个所谓的层是由OSI(Open System Interconnection)模型进行分类的,也叫做开放式系统互联模型。这七个层分别是

应用层(application layer)

表示层(presentation layer)

会话层(session layer)

传输层(transport layer)

网络层(network layer)

数据链路层(data link layer)

物理层(physical layer)

OSI.jpg

OSI模型

每个攻击方式所需要用到的层数代表它的攻击分类。比如SNMP DDOS攻击只会用到第4个层,这种攻击就属于layer 4 DDOS攻击。而JSBYPASS DDOS攻击会用到第7个层,那么这类攻击属于layer 7 DDOS攻击。每一层攻击都有它特有的攻击对象,那么我们先看看这layer7 和layer 4 DDOS攻击的不同。

Layer 4 DDOS攻击主要是发生在传输层,而传输层的功能主要是一些网络协议,所以像TCP/ACK攻击,DNS反射型攻击之类的都是在Layer 4这一层。因为它是属于协议类型攻击,那么就会需要大量的资源(IP和流量),所以这一层攻击也常在僵尸网络DDOS攻击里面出现,而这类攻击的攻击对象主要是个人电脑,web服务器等网络设备。

Layer 7 DDOS攻击主要是发生在应用层,比如某一个错误的指令导致系统死机或者下线。像JOOMLA攻击,GET攻击之类的就属于Layer 7攻击。这里有个误区,大部分人认为Layer 7攻击只可以发生在web服务器上,其实不然,它也可以用作在个人手机,电脑上等。

telegram DDOS.png

Telegram 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攻击。

流量管理.png

流量控制流程图

DDOS脚本介绍

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

编译脚本文件

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

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

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

或者

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

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

chmod 755 脚本名称

脚本编译及权限给予.png

对脚本编译及赋予权限

使用DDOS脚本

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

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

ack命令图.png

ACK DDOS命令

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

使用过程.png

使用ACK DDOS攻击某主机

AMP列表扫描

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

AMP列表.png

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

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

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

AMP攻击流程图.png

DNS AMP DDOS攻击

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

AMP扫描器源码.png

资源扫描器代码

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

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

AMP扫描命令图.png

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。

API key.png

Key Code设置

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

ssh账号和密码.png

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

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

脚本调用.png

调用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前的运行程序

未执行API前.png

未执行API前

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

执行API后.png

执行API后

在线DDOS演练系统搭建

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

API填写.png

某在线DDOS平台API插入界面

尾声与感想

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

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

传送门开启!在线DDOS平台源码,在线DDOS攻击脚本和在线DDOS API文件下载(密码freebuf)

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

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

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

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

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

你可能感兴趣的:(计算机网络)