作者:启明星辰ADLab
公众号:https://mp.weixin.qq.com/s/5eUgB6uAg60PmwyVLm3yOA

引言

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 之间的同源特性。

一、 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 僵尸网络所实施的比较重要的攻击事件所绘制的攻击历史图:

二、 发现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 118.193.217.144掌控了最多的螳螂僵尸网络,在此后的分析中,通过溯源确定了这三个黑雀C&C受同一个黑客控制。

三、 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% 的股份,背地里从事黑产活动。

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

四、 Dofloo僵尸典型样本分析

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

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

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

4.1 安装机制

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

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

僵尸程序通过对比系统中运行的进程名来确保运行进程的唯一性,并调用 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 如下所示:

我们模拟了未加密的控制指令(除去前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的部分代码和设计思路。我们总结其四者的关系图如下:

五、 总结

本篇报告重点对 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)

ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员,“黑雀攻击”概念首推者。截止目前,ADLab已通过CVE累计发布安全漏洞近1000个,通过 CNVD/CNNVD累计发布安全漏洞近500个,持续保持国际网络安全领域一流水准。实验室研究方向涵盖操作系统与应用系统安全研究、移动智能终端安全研究、物联网智能设备安全研究、Web安全研究、工控系统安全研究、云安全研究。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。

img


Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/941/