西安岁寒网络科技有限公司

基于Memcached分布式系统DRDoS拒绝服务攻击技术研究

发布时间:2018-03-01 23:40:28 作者:Shaw 阅读量:2164

2017年底,团队核心成员对基于memcached的反射型DDOS攻击进行了研究,这是一种理论上可放大5万倍的攻击手段。好在近年来大部分机房使用了URPF,大大减少了IP伪造,降低了反射DDOS攻击风险。


意云防护,可有效抵御各类针对WEB服务的DDOS攻击,如果您遇到黑客攻击,可以随时联系我们。


此处只贴出核心内容,文章中用到的代码以及更多细节,请访问5t4rk的博文,应监管要求,测试代码被迫删除,需要探讨研究技术的可以加首页微信。


一、基础概念

关于Memcached系统

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

分布式DDoS

分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。

反射式DRDoS

DRDoS是英文“Distributed Reflection Denial of Service ”的缩写,中文意思是“分布式反射拒绝服务”。与DoS、DDoS不同,该方式靠的是发送大量带有被害者IP地址的数据包给攻击主机,然后攻击主机对IP地址源做出大量回应,形成拒绝服务攻击。

二、攻击流程

DRDoS攻击流程

DRDoS要完成一次反射放大攻击:

  1 攻击者,必须提前需要把攻击数据存放在所有的在线肉鸡或者反射服务器之上。

  2 攻击者,必须伪造IP源头。发送海量伪造IP来源的请求。当然这里的IP就是受害者的IP地址。

  3 反射服务器,必须可以反射数据,运行良好稳定。最好是请求数据少,返回数据成万倍增加。

如此不断循环,就可以大规模攻击其带宽网络,增加占用率和耗损目标机的硬件资源。

利用Memcached实现的DRDos攻击反射流程

存活机器

  首先我们要找到大量反射服务器,利用网络空间引擎搜索到全球538317台机器开启11211端口,运行着Memcached缓存服务系统。



攻击步骤

自动化上传有效载荷

我们先批量上传指定数据到远程开放服务器Memcached上面,然后我们再去Memcached服务器请求查询数据上一步存储的数据,(这一步很关键,我们只能利用UDP协议进行反射,后面说明一下为什么。)这样就可以将数据通过Memcached服务器反射到目标受害机器上了。这里我们可以自己手动编写程序实现批量自动化上传有效载荷到远程服务器,等待上传完了我们就可以进行UDP反射攻击了。



自动化反射有效载荷

     这里得注意一下,上面的自动化上传我使用了TCP协议发送数据包,反射我必须使用UDP协议。因为只有UDP协议是基于无连接的,这样我们直接发送数据到目标服务器,不需要进行三次握手。同时服务器接收方也无法验证客户源IP,因此这个过程我们才可以利用UDP伪造源地址,实现反射DRDoS攻击过程。

 利用socket和scapy库开发,采用多线程进行循环请求。(特别注意UDP协议使用的时候,每个操作命令必须都要添加数据包结构要加头部8字节标志位, "\x00\x00\x00\x00\x00\x01\x00\x00")

输出,可以实现

测试wireshark抓包


这里不妨可以进行一个大概理论计算

  比如单台服务器我们虽然只发送的攻击指令只有二十个字节数据,但却可以返回1M数据。1M/20=5W(5万倍放大率),真实四两拨千斤。假设理想状况下我们现在手里有50W可用机器,那么我们的DRDoS理论值数值将会达到约50W*1M=500GB。大家想想这个是多么恐怖的带宽和数据。现在目前国内能够抵御短时间发起这么大的DDoS攻击的,几乎没有。比如去年攻击阿里云超过14小时,峰值流量达到453.8G。而DRDos可以只需要一分钟就能实现高达500G流量,这将是多么可怕的事情,多大的灾难。


更多详细内容及测试代码请访问 http://blog.csdn.net/microzone/article/details/79262549


  
留言
http://suihan.org/
用户登录
您还没有写任何评论内容!
您已经评论过了!
只能赞一次哦!
您已经收藏啦!