DDOS攻击-僵尸网络和流量放大

往期文章里曾经全面介绍过DDoS攻击,本文将着重研究当前最流行的DDoS攻击——反射式DDoS攻击。

文/石岩

2014年6月20日,香港民意调查投票网站PopVote.hk遭受超大规模的DDoS攻击,攻击流量史上第二高。PopVote使用了CloudFlare的服务,CloudFlare是一家CDN服务供应商,在抵御DDoS攻击方面非常专业。从一开始CloudFlare就使用了亚马逊的AWS云服务,并且将谷歌的Project Shield作为第二层DDoS防御机制。在为期10天的PopVote投票时间里,网站遭遇了多起大规模的DDoS攻击,DNS反射流量高达100Gb,而NTP反射流量最高到达300Gb,TCP连接请求最高达每秒一亿次,在攻击中还有HTTP洪水攻击、HTTPS攻击,甚至出现了新的DNS Flood攻击,最高每秒钟2亿5千万的DNS请求,未经放大的情况下就达到了128Gb。亚马逊AWS因为无法应对大规模流量而停止服务,谷歌也因为流量过于庞大影响到了其它服务而被迫宣布退出。最后在多家网络服务商共同努力之下才勉强撑过了这段投票时间。

近几年发生的大规模DDoS攻击事件中,频繁出现反射式DDoS技术,其最重要的两个技术是僵尸网络和流量放大。

一、 僵尸网路技术

“肉鸡”这个黑客术语指的是被黑客秘密控制的主机,当“肉鸡”规模达到一定程度之后就会出现不易管理的问题,为了解决管理的问题,出现了相应的网络技术,于是就出现了僵尸网络。

对于大规模DDoS,长期以来存在一个误解:很多人甚至包括大量IT从业人员都觉得组建一个僵尸网络技术要求很高、非常困难,因此大规模DDoS攻击是很少见的。其实这个观点是错误的,僵尸网络的技术困难程度是随着互联网规模的增加而迅速递减的。如今计算机的主要用户是普通大众,而普通大众对安全问题基本没有有较多了解。Rapid 7的首席安全官HD Moore曾经表示:“你可以使用一个默认密码登录几乎一半的互联网”,在这种现状下构建一个大规模僵尸网络并不是一件困难的事情。

构建僵尸网络最核心的工作是获取僵尸节点,这里介绍几种常见的黑客获取僵尸节点的方法。

¡ 利用搜索引擎获取僵尸节点。仅仅利用搜索引擎就可以获取大量现成的或者几乎现成的僵尸节点。黑客经常使用Google Hacking技术和shodan搜索引擎获取僵尸节点。任何一个人在搜索引擎之中搜索关键字“googlehacking backdoor”、“shodan backdoor”都会获得很多这方面的资料,按照这些资料在加上基本的计算机知识就可以获得一些僵尸节点。

¡ 利用MetaSploit渗透远程主机。在PopVote案例中,大量的僵尸节点都是来自于台湾,据台湾一些相关专业人士的分析,主要原因在于大多数人都没有更新软件补丁的习惯,而这种现象在全世界都非常普遍,这就给黑客留下了大量的可利用漏洞。MetaSploit是渗透的利器,其中集成了大量已知漏洞的exploit,即便对于根本不了解漏洞原理的人,也可以使用MetaSploit轻松实现对目标系统的入侵。

¡ 利用Struct、Apache、Discuz等开源软件的安全漏洞控制主机。有一些开源软件在全世界拥有大量的用户,因此任何针对这些开源软件的安全漏洞都会影响到大量主机。令人难以置信的是,即便是很老的安全漏洞,依然有很多主机没有打补丁。利用shodan、zoomeye、google可以获得大量仍然有漏洞的主机列表,然后利用搜索引擎找到相应exploit,使用exploit即可完成对漏洞主机的控制。

¡ 利用破解软件、绿色软件植入木马。曾经风靡一时的破解版、绿色版XP系统大部分都含有root级别的后门程序,而现今网上很多破解、绿色版的软件也都含有木马程序。很多人在享受便利、免费的时候已经被黑客完全控制了。

¡ 直接黑市购买僵尸网络服务。如今黑帽黑客已经创造了一个非常巨大的地下产业链,在这里几乎可以买到一切,个人信息、数据库、僵尸网络…。发动一次中等规模的DDoS攻击数千美金即可实现。

二、 流量放大技术

流量放大是DDoS中常用的技术手段,基本原理相对简单。对于一个C/S服务,如果Server到Client的Reponse报文比Client到Server的request报文更大,则实现了流量的放大。为了在DDoS中使用放大技术还需要满足一个条件,即Server提供的服务是基于UDP这样的无连接协议。

如图1所示,Server端提供某种基于UDP(理论上raw ip也可以)的服务,例如DNS、SMTP、NTP等,找到一些请求,其中Reponse报文比Request报文大,利用这些可以放大的请求,Attacker发送一个伪造源IP的Request报文,源IP伪造成受害者的IP地址,Server收到Request报文后向受害者回复“放大的”Reponse报文,这样就实现了流量的放大。

DDOS攻击-僵尸网络和流量放大_第1张图片

图 1 典型DDos流量放大

表 1列举了一些经常用于反射型DDoS攻击的协议及其放大倍数。

DDOS攻击-僵尸网络和流量放大_第2张图片

表1 常见反射性DDoS攻击的放大倍数

三、 NTP反射式DDoS攻击

迄今为止最大规模的DDoS攻击来自于NTP协议反射式DDoS攻击,本节将通过一些细节来说明如何发动NTP反射式DDoS攻击,并着重介绍上述两个关键技术。[1]

获取僵尸节点

使用搜索引擎获取僵尸节点是最便利的途径。通过搜索,获取了寻找web shell的google hacking关键字,如“intitle:”=[ 1n73ct10n privat shell ]=””,通过google搜索该关键字便获得了很多结果,随便打开一个链接,得到图 2所示的webshell。虽然现在流行用“小马”控制web服务器(“小马”无法通过搜索得到),但还是遗留有大量的“大马”控制的web服务器,而其中有一些就可以通过google搜索得到。

使用shodan获得backdoor。shodan是一个特殊的搜索引擎,和Google等搜素引擎不同的是,shodan同时抓取非80端口的信息,它可以很轻松得搜索到FTP、SSH、TELNET等其他服务。在google搜索引擎中搜索“shodan backdoor”会返回很多结果(也可以通过exploits.shodan.io搜索,会获得更多准确结果)。如Cisco Linksys TCP-32764后门,它允许攻击者绕过认证间接控制目标,这个漏洞影响范围非常的广,并且网上都有现成的poc[2]和exploit[3]。使用shodan搜索这个后门,如图2所示,一共可以获得3328个返回结果,这些结果的大部分都可以被直接利用。

另外一个D-Link的backdoor,D-Link在web管理中加入的一个后门,可以修改HTTP的User-Agent绕过web认证直接访问路由器,同样可以用shodan获得745条结果,如图3所示。

DDOS攻击-僵尸网络和流量放大_第3张图片

图 2 一个搜索得到的webshell

DDOS攻击-僵尸网络和流量放大_第4张图片

图 3 shodan搜索得到的Cisco Linksys后门

这些获得的后门,经过简单的处理就可以被黑客做成僵尸节点,从而构建僵尸网络。当然在有的情况下控制一个目标后还需要进行提权处理,否则很多功能无法实现。

NTP流量放大

NTP(Network Time Protocol)是一个常见的协议,用于提供时间同步服务。它是典型的基于UDP的协议,这个协议相当古老,在最初的设计中也没有考虑到认证,所以是一个理想的黑客利用对象。

从表1我们看到NTP可以实现556.9倍的放大效果,这来自于NTP的monlist命令。NTP monlist命令用来查询最近所有和Server通信的记录,服务器返回最多600个通信记录,这个倍数非常巨大,而在互联网上有大量的NTP服务器,可以通过僵尸网络分布式查询、放大。

DDOS攻击-僵尸网络和流量放大_第5张图片

图 4 NTP流量放大

如图4所示,Server端提供NTP服务,Attacker发送了一个NTP monlist Request给Server,但其源IP地址不是自己的IP地址,而是攻击对象Target的IP地址,Server收到请求后会向Target(而不是Attacker)发送Reponse报文。由于Reponse包含了和Server的600条时间同步记录,比Request大很多,是由很多报文组成的,因此实现了放大。

四、 结束语

DoS攻击是非常常见的一种攻击,根据最新的统计,2014年全球平均每小时遭受28次DoS攻击,频繁程度让人瞠目。对于很多IT从业人员来说,他们认为由于技术门槛高遭受DDoS攻击的可能性比较低,本文通过展示一些技术细节用于说明在当今的信息安全形势下发动一次DDoS攻击并不需要太高的技术门槛。所以,对于企业来说,合理部署安全产品,增加出口,部署CDN可在较大程度上降低DDoS攻击造成的损失。

你可能感兴趣的:(网络与系统管理,杂项)