2019年4月开始,启明星辰ADLab观察到Confluence远程代码执行漏洞CVE-2019-3396被Dofloo僵尸网络家族用于攻占设备资源,Confluence 是一个专业的企业知识管理与协同软件,常用于构建企业wiki。本次漏洞是由于Confluence Server 和Confluence Data中的Widget Connector存在服务端模板注入漏洞,攻击者构造特定请求可远程遍历服务器任意文件,甚至实现远程代码执行攻击。有意思的是Dofloo僵尸网络家族不仅开始利用高危漏洞进行攻击,而且其背后的黑客还利用一种更具影响力的“黑雀攻击”来入侵产业链,以掌控更加强大的网络攻击资源。而在此前,我们已经做了长时间的与Dofloo僵尸家族黑客产业链相关的研究,且已经确定了这种普遍存在于Dofloo家族中的“黑雀攻击现象”,并对其中的“黑雀”进行了长期追踪与分析。

此处,我们所提出“黑雀攻击”不仅是一种高效的黑客攻击手段,而且更是一种产业链级别的攻击方法,一般为黑色产业链上游黑客所为。黑雀攻击与供应链攻击有异曲同工之妙,只是攻击的目标不是常规的产业链,而是黑客产业链;受攻击链的末端也不是普通用户,而是极具危害性的黑客群体。在网络安全与黑客产业链的长期对抗,使得该产业链日渐成熟且复杂,并形成了一个庞大的黑客生态系统,而在利益和生存需求的驱使下,黑雀现象似乎变成了必然,甚至在食物链的上端进化出了黑雀生态,如Death僵尸网络的“大黑雀-黑雀-螳螂”。

自启明星辰ADLab于2016年初发现黑雀攻击并于2017年1月发布《黑雀攻击-揭秘Death僵尸网络背后的终极控制者》之后,还相继在多个恶意代码家族中发现了黑雀攻击,并发布了深度分析报告《揭秘Billgates僵尸网络中的黑雀现象》和《黑雀攻击:揭秘TF僵尸物联网黑客背后的黑客》。在此前的黑雀分析和追踪中,我们揭露了Death僵尸网络背后的那个控制着上千僵尸子网络的超级黑客,以及深藏在Billgates僵尸网络和物联网僵尸DDoSTF家族背后的黑雀。此外我们还详细阐述了每个家族中“黑雀攻击”的黑客层次结构,如Death僵尸网络的三级黑客结构(大黑雀-黑雀-螳螂),Billgates和TF的二级黑客结构(黑雀-螳螂),以及对相关的大黑雀、黑雀和螳螂进行了网络行为分析和身份识别,并做了精准的黑客画像。

而本文将会详细阐述黑雀攻击的最新发现过程,以及Dofloo僵尸网络家族中所存在的“黑雀现象”。通过对家族进行全面的分析还发现,该僵尸家族的作者在制僵尸过程中就留有黑雀的接口,虽然少量精明的黑客发现了该接口并进行了清除,但是大部分的黑客成为被攻击对象,被植入了黑雀后门。本文中我们还会对Dofloo僵尸网络背后的黑雀进行深度挖掘和定位,并分析该家族与相似僵尸家族MrBlack、DnsAmp、Flood.A之间的同源特性。

1 Dofloo僵尸家族简介

Dofloo,又名Spike和AES.DDoS,是一款支持ARM、x86、mipsd等多CPU架构的僵尸网络程序。Dofloo家族因2014年针对北美洲和亚洲多个国家进行高达215Gbps流量的攻击而出名,此后长期的攻占物联网设备资源并频繁地进行网络攻击活动。根据赛门铁克在2016年发布的《Internet Security Thread Report》,Dofloo僵尸网络恶意程序位列2015年度IoT领域恶意程序威胁排行榜第二名。

此外,Dofloo还在2016年9月同Mirai僵尸一起参与了云计算公司OVH的攻击,本次攻击的流量超过了1Tbps,创下了分布式拒绝服务攻击的历史记录,而同年的10月再次参与了Miarai僵尸主导的对域名服务商Dyn的大规模DDoS攻击,致使整个美国东海岸的网络处于极度瘫痪的状态。2019年的4开始利用最新披露的远程代码执行漏洞CVE-2019-3396进行大面积传播,攻占了相当数量的网络设备。下图是我们根据Dofloo僵尸网络所实施的比较重要的攻击事件所绘制的攻击历史图:

2 发现Dofloo僵尸中的黑雀

在长期的对僵尸网络的研究中,Dofloo一直是我们监控的对象。在之前的研究中,通过自动化分析该家族的关联样本,发现该家族的大部分样本都会启动两个新的攻击线程,并发现这两个线程存在异常行为。如:不仅会设置延迟启动线程,还会尝试跟另一个C&C控制端进行连接通信。因此,我们对这些样本进行了进一步的分析,最终确定该僵尸生态中被植入了黑雀。

针对我们收集到的1200个僵尸样本,绘制样本的上线频度占比如下:

从上图可以看出,有三个地址的上线频度远高于其他的C&C。结合样本分析发现,上线到这三个C&C地址的样本几乎都有两个独立控制的C&C,并且僵尸回连这三个C&C地址都是通过创建子线程的方式进行,而其关联的样本的另外一个C&C却是在主线程中进行回连。因此,通过该僵尸的这几个特性可以断定其中必定存在黑雀攻击的现象,而这三个C&C地址便是Dofloo僵尸生态中的黑雀C&C地址,与黑雀C&C地址相关联的其他C&C地址便是Dofloo僵尸生态中螳螂黑客的C&C地址。

我们对这三个黑雀C&C地址相关联的螳螂C&C做了分类统计,如下表所示:

C&C地址

螳螂僵尸网络数量

183.60.149.199

189

118.193.217.144

282

aaa.tfddos.net

85

可见,黑雀C&C 118.193.217.144掌控了最多的螳螂僵尸网络,在此后的分析中,通过溯源确定了这三个黑雀C&C受同一个黑客控制。

3 Dofloo僵尸黑雀溯源与画像

通过对样本的分析,结合样本中的函数命名习惯、攻击流量特征、变种源码注释以及样本爆发传播时用来散播样本的HFS面板语言等特征,我们判定该家族由国内的黑客编写。于是我们溯源目标锁定在国内,通过对黑雀域名“aaa.tfddos.net”中关键信息”tfddos”,我们关联到一款名为“台风DDoS”的僵尸软件。并且通过进一步分析发现,该僵尸软件的模板样本与Dofloo僵尸具有极为相似的行为和网络特性。此外,“台风DDoS”在黑客间活跃的时间同Dofloo爆发时间均在2014年。根据以上一系列的证据证明他们之间存在一定同源性。为了进一步确认他们为同一款僵尸程序,我们还利用bindiff对“台风DDoS”控制端生成的僵尸与Dofloo的样本进行了相似度比对,发现两者代码相似度为100%的代码占比超过98%,因此可以确定“台风DDoS”便是Dofloo家族的一个主控。对比图如下:

通过对早期的“台风DDoS”的僵尸模板程序分析发现与Dofloo黑雀C&C相同的后门C&C:183.60.149.199。

此外,通过对“台风DDoS”的溯源发现,其曾在网站tfddos.com上作为官方软件被公开售卖,该网站虽然采用了与Dofloo黑雀域名“aaa.tfddos.net”不一样的域名,但他们都使用了“tfddos”作为域名的关键字,也即是“tai(台) feng(风) ddos”。因而我们认为后门C&C:183.60.149.199与aaa.tfddos.net为同一黑客或者黑客组织所为。

对于黑雀IP:118.193.217.144的反查发现,在2017年,域名wap.tfddos.net和aaa.tfddos.net与该IP地址进行了长期的绑定。

从以上分析可以看出三个黑雀C&C(183.60.149.199、118.193.217.144、aaa.tfddos.net)实则为同一个黑客或者黑客组织所控制。为了更清晰的描述这些IP和域名之间的联系,总结出关系图如下:

为了追踪Dofloo僵尸网络背后的黑雀,我们先收集了C&C相关的信息并进行了分析。其中通过IP:183.60.149.199关联出来的相关域名大部分被作为色情网站或博彩网站使用,并无可用线索。而tfddos.com和tfddos.net都采取隐私保护方案,无法进行进一步的追溯。

幸运的是我们在“台风DDoS”的售卖历史记录中发现一起欺诈事件,事件中一位购买者披露了贩卖人员的QQ号码和支付宝账号。通过进一步分析,我们最后确认了该贩卖人员的QQ便是“台风DDoS”开发者的事实。此外我们还通过该QQ的关联信息收集到该人员有多年黑产从业历史:如其从2011年开始编写DDoS软件,并创建“台风工作室”;同时其还从事与DDoS相关的黑产业务,并通过贩卖恶意攻击软件和发动DDoS攻击来谋取非法收益。而此黑客便是我要溯源的Dofloo僵尸网络背后的黑雀,其除了开发有“台风DDoS”僵尸软件外,还开发多款DDoS攻击工具如:血腥DDoS、残暴DDoS和暴雨DDoS等。

通过此后长期的溯源分析,我们还追踪到了该黑雀在现实世界中的身份信息。此黑雀是河南南阳两家科技公司的监事,并且以80万元认缴资金持有其中一家科技公司10%的股份,背地里从事黑产活动。

依据我们对样本分析和溯源获取到的信息,整理和归纳后,总结并绘制出黑雀的画像如下:

4 Dofloo僵尸典型样本分析

由于Dofloo支持多种CPU架构,我们在对这些平台的样本分析中发现,所有Dofloo支持的架构,都存在黑雀现象。但是僵尸作者对不同的架构的黑雀C&C处理略有不同,这对自动化分析也造成了一定的影响。我们对本次收集的共计1200个样本的架构所占比例进行了统计,绘制成图如下:

CPU架构的分布图,一定程度上也说明了该家族入侵设备类型的分布,可以看到ARM设备的比例非常高,这也说明ARM下的设备受到黑雀控制的比例比较高。

接下来我们对Dofloo家族的典型样本进行了详细的剖析,并且根据大量样本提取归纳出典型的通讯流量和攻击流量特征,并对Dofloo家族进行了同源性分析。

4.1 安装机制

Dofloo僵尸程序的安装机制有:僵尸程序在宿主机的持久化设置、进程唯一性判断和守护进程设置。

僵尸程序通过写入开机自启命令实现持久化。僵尸程序在启动后,会首先检查启动的命令行参数, 如果发现没有参数,那么恶意程序会默认是在该设备的第一次运行,此时会调用“autoboot”函数。在该函数中,调用“system”函数执行下表中的命令,以确保恶意程序在该设备重启后仍能够启动运行。这也是Dofloo恶意程序在宿主设备实现持久化的唯一方法。

sed -i -e "/exit/d" /etc/rc.local

sed -i -e "/^ | | $/d" /etc/rc.local

sed -i -e "/%s/d" /etc/rc.local

sed -i -e "2 i%s/%s" /etc/rc.local

sed -i -e "2 i%s/%s start" /etc/rc.d/rc.local

sed -i -e "2 i%s/%s start" /etc/init.d/boot.local

僵尸程序通过对比系统中运行的进程名来确保运行进程的唯一性,并调用fork函数创建守护进程。

4.2 上线机制

在安装机制设置完毕后,僵尸程序与控制端C&C进行连接。此时恶意程序会收集被入侵设备的系统信息,并把这些信息作为上线包的内容发送到控制端处。这个上线包的内容包含内核版本、CPU频率、总内存大小、网口带宽以及一些硬编码字符串,比如“VERSONEX”和大量样本中出现的“Hacker”。在黑雀的线程中,其上线机制的主体功能与螳螂线程处的功能相似度极高。不同的是,黑雀线程会延迟15小时和40分钟上线,这往往会迷惑分析人员并可能逃避自动化沙箱的检测,使得黑雀C&C隐匿在大量的请求中,减少被发现的可能。通过对大量样本的分析,我们发现上线包的固定大小为0x400字节,并对上线包格式解析、提取后归纳整理出真实的数据结构,其在内存中的分布如下图所示:

4.3 心跳机制

僵尸程序在SendInfo线程实现了自身的心跳机制。这个线程的主要功能是向螳螂控制端和黑雀控制端发送心跳包,心跳包内容包含当前CPU使用率和网络速度信息,通过以下2个步骤获取到这些内容:

(1) 检查“eth0”到“eth9”范围内以太网口的ifconfig信息。并通过读取/proc/net/dev 目录信息来计算网络速率。

(2)通过读取/proc/stat目录下的信息,获取cpu数量,计算占用百分比。

经过指定格式拼接后,会循环不断的发送信息到C&C端。下图为发送的心跳包信息:

比较有趣的是,下游的黑客在发动DDoS攻击的时候,可能根本不会想到,主控中显示的恶意程序的攻击流量速率几乎都是伪造的。我们在SendInfo线程中发现,当恶意程序执行DDoS攻击时,会调用“fake_net_speed”函数,该函数会根据不同的DDoS攻击的模式,在一个固定的范围内伪造攻击流量速率。下图为对部分计算随机流量的截图:

僵尸程序伪造的攻击流量数据范围如下表所示:

4.4 控制指令解析与DDoS攻击

发送完上线包之后,此时僵尸程序会等待接收控制端的控制指令。Dofloo会首先把控制指令包的前四个字节作为模式指令码进行解析,由此来判断接下来要进行的操作,主要支持的操作有三种:

(1)指令码为0x5时,进入CmdShell函数,该函数内部调用了system函数,可作为远控来下载或执行其他指定命令。

(2)指令码为0x6时,进入DealwithDDoS函数,此函数为DDoS攻击函数,所有执行攻击的判断和逻辑都在此函数中。

(3)指令码为0x7时候,调用kill函数,终止进程。

同时Dofloo家族对控制指令进行了128位的AES加密,这个特性大大增加了对其控制指令流量监控和识别的难度。我们对收集到的样本进行分析后发现,所有架构下僵尸程序用来解密的KEY都是相同的,这也说明互联网中Dofloo僵尸家族的样本都来自同一个模版。KEY如下所示:

unsignedcharaes_key[] = { 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x9, 0xcf, 0x4f, 0x3c };

我们模拟了未加密的控制指令(除去前4个作为模式指令码的字节)在内存中的布局,其控制指令的各个字段的含义如下图所示:

当进入到DealwithDDoS函数时,僵尸程序根据指令,启动不同的攻击线程。Dofloo家族不仅具有SYN、HTTP等传统的攻击方法,还具有利用UDP协议的反射放大的攻击方式,比如DNS放大攻击。下图为Dofloo可发起的典型的DDoS攻击的方法:

并且我们对Dofloo的攻击方法进行了分析总结,并对部分攻击方法的流量特征进行了提取,制作流量特征表如下:

我们在分析攻击线程的时候,发现ARM架构的恶意样本每次攻击创建的攻击线程非常多,单次攻击指令可创建几种甚至十几种不同类型的攻击线程。结合样本CPU的分布,我们可以得知ARM设备下的Dofloo恶意程序是该僵尸家族的主力,在DDoS攻击中提供了主要的流量支持。

同时根据监控到Dofloo攻击历史,发现该家族主要的攻击方式以UDP Flood 为主,近年来黑客也越来越喜欢DNS和NTP等反射放大攻击手段来对服务器进行打击 ,Dofloo的攻击方式占比也印证了这一点。同时我们也可以看到Layer7层的CC_Flood和Layer4层的TCP_Flood、SYN Flood作为传统的DDoS的攻击方式,其占比也一直较为稳定。并且我们根据相关的情报数据得知,Dofloo的攻击量相对于其他的家族较少,我们分析推测Dofloo每次发动攻击时开启了大量的攻击线程,这样能加大发包量,快速导致目标服务器宕机。

下图为Dofloo僵尸家族攻击方式占比图:

4.5 同源性分析

我们观察到很多杀毒软件对Dofloo家族程序有不同的命名方式,甚至识别为其他家族的程序,因此为了确定Dofloo家族的源码构成,我们对其进行了同源性分析。

通过对Dofloo僵尸网络进行同源性分析,发现Dofloo僵尸网络家族同Mr.Black僵尸网络家族、Flood.A以及DnsAmp僵尸家族有很高的相似度。首先,我们对Mr.Black家族中的典型样本和Dofloo家族的典型样本进行了对比,发现这两个家族的整体流程和部分代码高度相似,比如下图中的上线机制部分,通过对比可以看到,上线包的内容和格式也极为相似:

并且还可以看到Mr.Black同样有同名的,发起DDoS攻击的函数DealWithDDoS,其发起攻击的控制指令编码也相同。

只不过Mr.Black中仅有5种DDoS攻击方式。通过查阅Mr.Black的源码,发现Mr.Black源码中并没有黑雀后门线程和AES加密,没有远控部分,仅能发起DDoS攻击。因此推测Dofloo为参考Mr.Black代码更改后的变种。

然后通过Flood.A同Mr.Black和Dofloo家族进行对比,发现Flood.A家族较Mr.Black家族新增“SynFLood_Message”黑雀后门线程,“DealwithDDoS”函数中增加Layer7层的HTTP洪水攻击,没有AES加密和远控功能,与Mr.Black家族较为相似,部分对比图如下:

在DnsAmp与Dofloo家族的对比中,我们发现其代码差别较大,但是主要攻击代码以及程序整体设计思路比较相似。在DnsAmp家族中,持久化仍然是通过设置“/etc/rc.d/rc.local”来保持开机自启,并且在启动后同Dofloo一样,会首先确定进程的唯一性。而它的攻击线程“AttackWorker”中,我们发现同Dofloo一样具有同名的攻击函数“DealwithDDoS”,只不过仅有4种攻击方式,分别为udp,icmp,dnsAmp,syn攻击。虽然DnsAmp与Dofloo整体代码相似度不是太高,但是根据其主要攻击代码和程序整体的设计思路,我们推测二者具有关联性,至少DnsAmp为参考Dofloo代码而产生的相似变种。部分对比图如下:

因此,我们大致可以推测出如下的关系:MrBlack可能为原始恶意程序,Flood.A为其变种,主要增加的功能有后门黑雀线程和HTTP洪水攻击;Dofloo可能为Mr.Black或Flood.A的变种,主要新增的特性有程序持久化设置,控制指令AES加密,以及添加多种DDoS攻击方法;推测DnsAmp为Dofloo的变种,它参考了Dofloo的部分代码和设计思路。我们总结其四者的关系图如下:

5 总结

本篇报告重点对Dofloo僵尸网络家族中存在的黑雀现象进行了分析披露,并溯源追踪黑雀,产出黑雀画像。同时对典型的僵尸样本进行了分析,提取归纳出上线、心跳、控制指令和发起攻击的流量格式。

同时,通过对黑雀和螳螂的分析,证实了黑雀攻击所存在的潜在巨大危害。尽管部分黑客尝试去掉其黑雀线程并重新传播,但绝大多数的Dofloo僵尸样本仍然留有此类后门,也有黑客在确认黑雀IP或域名失效后降低了警惕性,但是我们发现有部分黑雀域名在潜伏一段时间后,仍会偶尔解析上线,对螳螂进行一波收割。所以,综合判断该黑雀僵尸资源丰富、实力强悍。此外,通过广泛的分析发现,这种攻击方式还大量存在于其他僵尸程序、WEB Sehll攻击工具及蠕虫木马攻击工具,这或许需要广大安全研究人员和安全机构共同留意此类攻击的幕后黑雀,重视该类威胁可能造成的巨大危害,及时发现并清除隐匿于网络中的一大威胁。

参考文献:

1、DDoS-Capable IoT Malwares: Comparative Analysis and Mirai Investigation

https://www.hindawi.com/journals/scn/2018/7178164/

2、2017 Global botnet DDoS attack threat report

http://www.antiy.net/p/2017-global-botnet-ddos-attack-threat-report

3、Internet Security Threat Report

https://www.insight.com/content/dam/insight-web/en_US/article-images/whitepapers/partner-whitepapers/Internet%20Security%20Threat%20Report.pdf

4、Tango down report of OP China ELF DDoS"er

http://blog.malwaremustdie.org/2014/09/tango-down-report-of-op-china-elf-ddoser.html

声明:本文来自ADLab,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。