闷声发大财年度之星:2017挖矿木马的疯狂敛财暗流
0x1 前言
如果说勒索病毒是暴露在大众视野中的“恶魔”,那么挖矿木马就是潜藏在阴暗之处的“寄生虫”。在2017年这个安全事件频发的年份,除了受到全世界关注的“WannaCry”勒索病毒的出现之外,一大波挖矿木马也悄然崛起。不同于勒索病毒的明目张胆,挖矿木马隐蔽在几乎所有安全性脆弱的角落中,悄悄消耗着计算机的资源。由于其隐蔽性极强,大多数PC用户和服务器管理员难以发现挖矿木马的存在,这也导致挖矿木马数量的持续上涨。本文将通过多个方面介绍挖矿木马的种类,发展趋势,危害以及防范措施。
0x2 挖矿木马概述
2009年,比特币横空出世。得益于其去中心化的货币机制,比特币受到许多行业的青睐,其交易价格也是一路走高。图1展示了比特币从2013年7月到2017年12月交易价格(单位:美元)变化趋势。
图1 比特币2013年-2017年交易价格变化趋势
由于比特币的成功,许多基于区块链技术的数字货币纷纷问世,例如以太币,门罗币等。这类数字货币并非由特定的货币发行机构发行,而是依据特定算法通过大量运算所得。而完成如此大量运算的工具就是挖矿机程序。
挖矿机程序运用计算机强大的运算力进行大量运算,由此获取数字货币。由于硬件性能的限制,数字货币玩家需要大量计算机进行运算以获得一定数量的数字货币,因此,一些不法分子通过各种手段将挖矿机程序植入受害者的计算机中,利用受害者计算机的运算力进行挖矿,从而获取利益。这类在用户不知情的情况下植入用户计算机进行挖矿的挖矿机程序就是挖矿木马。
挖矿木马最早出现于2013年。图2展示了自2013年开始国内披露的大规模挖矿木马攻击事件数量。
图2 2013年-2017年国内披露的挖矿木马攻击事件
由于数字货币交易价格不断走高,挖矿木马的攻击事件也越来越频繁,不难预测未来挖矿木马数量将继续攀升。
对于挖矿木马而言,选择一种交易价格较高且运算力要求适中的数字货币是短期内获得较大收益的保障。图3展示了挖矿木马所选择的币种比例。
图3 挖矿木马所选币种比例
不难看出,门罗币是最受挖矿木马亲睐的币种。黑客之所以选择门罗币作为目标主要有以下几个原因:
(1) 门罗币交易价格不俗。虽然门罗币在交易价格上不比比特币,但其依然保持在一个较高的交易价格。
(2) 门罗币是一种匿名币,安全性更高。匿名币是一种在交易过程中隐藏交易金额、隐藏发送方与接收方的一种特殊的区块链代币。由于这样一个特性,任何人都无法在区块链浏览器中查找到门罗币交易的金额和交易双方的地址。这也为黑客转移门罗币提供便利。
(3) 门罗币是基于CryptoNight 算法运算得到的,通过计算机的CPU和GPU即可进行该算法的运算而不需要其他特定的硬件支持。
(4) 互联网上有许多优秀的开源门罗币挖矿项目,黑客可以“即拿即用”。
(5) 暗网市场支持门罗币交易。
由于门罗币的这些“优点”,越来越多的挖矿木马选择门罗币作为目标。
在下文中我们将根据挖矿木马的种类分别对不同类型的挖矿木马进行详细介绍和分析。
0x3 挖矿木马详解
1.挖矿木马僵尸网络兴起
僵尸网络(Botnet)是黑客通过入侵其他计算机,在其他计算机中植入恶意程序并通过该恶意程序继续入侵更多计算机,从而建立起来的一个庞大的傀儡计算机网络。僵尸网络中的每一台计算机都是一个被黑客控制的节点,也是一个发起攻击的节点。黑客入侵计算机并植入挖矿木马,之后利用被入侵的计算机继续向其他计算机植入挖矿木马从而构建的僵尸网络就是挖矿木马僵尸网络。
2017年是挖矿木马僵尸网络大规模爆发的一年,出现了“Bondnet”,“Adylkuzz”,“隐匿者”等多个大规模挖矿木马僵尸网络,而其中很大一部分的挖矿木马僵尸网络来自于中国。
(1) 僵尸网络的建立
僵尸网络是否能成规模关键在于僵尸网络的初步建立。黑客需要一个能够完成大规模入侵的攻击武器以获得更多计算机的控制权。
“永恒之蓝”漏洞攻击武器的出现助长了挖矿木马僵尸网络的建立。2017年4月,shadow broker公布了NSA(美国国家安全局)方程式组织的漏洞攻击武器“永恒之蓝”。2017年5月爆发的造成空前影响的“WannaCry”勒索病毒就是通过“永恒之蓝”进行传播的。而在“WannaCry”爆发之前,已有挖矿木马利用“永恒之蓝”进行传播。“永恒之蓝”有两个其他漏洞利用工具无法企及的优势:
(1) 攻击无需载体。不同于利用浏览器漏洞或者办公软件漏洞进行的“被动式攻击”,“永恒之蓝”漏洞利用攻击是一种“主动式攻击”,黑客只需要向目标发送攻击数据包而不需要目标进行额外的操作即可完成攻击。
(2) 攻击目标广。只要目标计算机开启445端口且未及时打补丁,黑客就可以成功入侵目标计算机。黑客完全可以进行全网扫描捕捉猎物。
正因此,“永恒之蓝”一时间成了挖矿木马僵尸网络的标配。表1展示了2017年爆发的几个大规模挖矿木马僵尸网络配备“永恒之蓝”漏洞利用武器的情况。
表1 挖矿木马僵尸网络配置“永恒之蓝”模块情况
挖矿木马僵尸网络家族 |
是否配备“永恒之蓝”模块 |
Adylkuzz |
√ |
隐匿者 |
√ |
mateMiner |
√ |
fontsMiner |
√ |
Bondnet |
× |
yamMiner |
× |
其中一些僵尸网络是完全依靠“永恒之蓝”漏洞攻击武器站稳脚跟的,例如“隐匿者”僵尸网络。图4展示了“隐匿者”僵尸网络僵尸程序传播量变化趋势。不难看出,借助于“永恒之蓝”漏洞攻击武器,“隐匿者”在2017年4月底爆发式增长。(更多细节见报告:http://www.freebuf.com/articles/web/146393.html)
图4 “隐匿者”僵尸网络僵尸程序各版本传播量
随着漏洞的更多细节公之于众,各式各样的“永恒之蓝”漏洞攻击工具问世。在2017年9月出现并呈增长趋势的“mateMiner”僵尸网络中集成了由Powershell编写的“永恒之蓝”漏洞攻击模块。图5展示了部分攻击代码。
图5 “mateMiner”僵尸网络“永恒之蓝”模块部分代码片段
除了“永恒之蓝”漏洞攻击武器之外,其它各类Nday漏洞也备受挖矿木马僵尸网络的亲睐。“yamMiner”僵尸网络就是利用Java 反序列化漏洞进行服务器入侵的。
“yamMiner”僵尸网络2016年底出现,并在2017年呈现增长趋势,目前仍处在活跃状态。该僵尸网络建立之初,通过Java Commons Collections反序列化漏洞入侵服务器,漏洞如下所示:
漏洞 |
描述 |
CVE-2015-7450 |
IBM WebSphere Java Comments Collections组件反序列化漏洞 |
CVE-2015-4852 |
Oracle WebLogic Server Java反序列化漏洞 |
(更多细节见:http://www.freebuf.com/articles/system/129459.html)
使用Nday漏洞进行入侵攻击对于未打补丁的计算机而言效果立竿见影。而国内未能及时打补丁的计算机数量并不少,这也是这类挖矿木马僵尸网络持续保持活跃的重要原因之一。
(2)僵尸网络的扩张
当僵尸网络初具雏形后,黑客需要通过现有的傀儡机攻击更多的计算机,通过量的积累转化为可见的利益。因此,僵尸网络中的每一台傀儡机都是攻击的发起者,而他们的目标是互联网中的所有计算机。
“永恒之蓝”漏洞攻击武器在僵尸网络的扩张中起到重要的作用。在上文中展示了“永恒之蓝”漏洞攻击武器在僵尸网络建立时发挥的重要作用,这些同样作用于僵尸网络的扩张,在此不再赘述。
端口扫描和爆破也是僵尸网络扩张的帮手。“隐匿者”挖矿木马僵尸网络中带有全网扫描模块,僵尸程序会不断地对随机ip进行指定端口扫描,若端口开放则尝试进行爆破,爆破成功后则登录目标计算机植入挖矿木马和僵尸程序,继续进一步的扩张。图6展示了“隐匿者”挖矿木马僵尸网络端口扫描模块代码片段。表2展示了“隐匿者”僵尸网络爆破模块、爆破对象以及当前支持情况。
图6 “隐匿者”僵尸网络端口扫描模块代码片段
表2 “隐匿者”僵尸网络爆破模块概览
爆破模块 |
爆破目标(端口) |
当前支持情况 |
Cracker:mssql |
MSSQL(1433) |
支持 |
Cracker:Telnet |
Telnet(23) |
支持 |
Cracker:RDP |
RDP(3389) |
支持未完善 |
Cracker:CCTV |
CCTV摄像头(不定) |
支持未完善 |
Cracker:MySQL |
MySQL(3306) |
已移除 |
Cracker:WMI |
WMI(135) |
已移除 |
Cracker:SSH |
SSH(22) |
已移除 |
高级内网渗透攻击开始出现在挖矿木马僵尸网络的扩张中。我们在“mateMiner”僵尸网络中发现了使用“pass the hash”攻击进行内网渗透的模块。僵尸网络释放了凭证窃取工具mimikatz获取保存在本计算机中的凭证,并用其进行“pass the hash”攻击。图7展示了“mateMiner”僵尸网络凭证获取模块的代码片段。
图7 “mateMiner”僵尸网络凭证获取模块代码片段
“mateMiner”僵尸网络会首先尝试使用这些凭证登录内网中的其他计算机,一旦登录成功就往这些计算机中植入挖矿木马和僵尸程序,只有尝试登录失败才会使用“永恒之蓝”漏洞攻击武器进行入侵。可见,随着“永恒之蓝”漏洞攻击成功率的降低,诸如 mimikatz这类高级内网渗透工具已经开始被挖矿木马僵尸网络所使用。图8展示了“mateMiner”僵尸网络进行内网渗透的代码片段。
图8 “mateMiner”僵尸网络内网渗透模块代码片段
(3)僵尸程序的持续驻留
黑客是否能够持续控制傀儡机关键在于傀儡机中的僵尸程序能否持续驻留。而挖矿木马僵尸网络也是用尽了各种办法让僵尸程序持续驻留在傀儡机中。
将僵尸程序直接寄生在系统进程中是最好的选择。“yamMiner”僵尸网络在利用Java反序列化漏洞入侵计算机后直接在Java进程中执行命令。而“隐匿者”僵尸网络在通过爆破MSSQL服务入侵其他计算机后以SQLServer Job的形式运行挖矿机,并且在SQLServer中写入多段shellcode。图9展示了“隐匿者”在SQLServer中写入的一段shellcode。
图9 “隐匿者”僵尸网络在SQLServer中写入的shellcode
通过将僵尸程序寄生在系统进程中能够有效逃避杀毒软件的拦截,保证僵尸程序的持续驻留。
WMI, PowerShell都是持续驻留的好帮手。许多僵尸网络通过WMI实现僵尸程序在目标计算机中的持续驻留,并且使用PowerShell协助完成工作。
“隐匿者”僵尸网络在SQLServer中的shellcode就包含了使用WMI进行挖矿机配置文件定时更新的功能。图10展示了这段shellcode的内容。
图10 “隐匿者”僵尸网络使用WMI进行定期更新的shellcode片段
而“mateMiner”僵尸网络仅仅使用一个PowerShell脚本作为僵尸程序,这也是它最大的特点。这个PowerShell脚本完成了包括入侵、持续驻留、挖矿在内的所有功能。图11展示了“mateMiner”僵尸网络从黑客服务器下载执行PowerShell脚本的命令行。
图11 “mateMiner”僵尸网络执行PowerShell命令行片段
除了利用PowerShell脚本完成工作,“mateMiner”更是将WMI的灵活性发挥到了极致,不仅使用WMI的__EventFilter类实现持续驻留,还将shellcode保存为WMI下类属性的值,需要时载入内存执行,真正实现“无文件”攻击。图12展示“mateMiner”使用WMI下类属性存储shellcode的代码片段。
图12 “mateMiner”使用WMI存储shellcode代码片段
由于PowerShell和WMI有极高的灵活性,僵尸网络能够通过两者有效管理傀儡机,并且减少恶意文件的释放,躲避杀毒软件的查杀。
先进的控制与命令方式是持续驻留的关键。每个僵尸网络都有一个最终的控制端,这个控制端负责向僵尸网络中的每个节点下发控制指令。由于控制端的存活时间并不长,其ip地址会频繁进行更换,因此挖矿木马僵尸网络需要一套完备的控制体系以保证随时与控制端联系。
“隐匿者”僵尸网络就拥有一套完善的控制体系。图13展示了“隐匿者”僵尸网络中僵尸程序与控制端之间的交互。
图13 “隐匿者”僵尸网络僵尸程序与控制端交互图
“隐匿者”有多个功能不同的控制服务器,分别负责挖矿木马的更新、僵尸程序的更新以及远控木马的下发。当傀儡机中的僵尸程序启动时,会进行一次自检,以确定是否有新版本的僵尸程序存在。同时,“隐匿者”也在SQLServer中写入这样一段自检的shellcode,以保证僵尸程序被杀后还能从控制端下载新的僵尸程序。而僵尸程序所请求的控制端ip地址是不固定的,“隐匿者”通过访问指定博客获取博文内容,通过博文内容解密得到控制端ip。控制者只需修改博文内容就能够实现控制端ip的更换。
当然,将控制端ip的快速更新展现得淋漓尽致的当数“yamMiner”挖矿木马僵尸网络了。其控制端ip地址基本保持了一星期一更新的频率。图14展示了“yamMiner”僵尸网络2017年11月至12月控制端ip地址更新时间线。
图14 “yamMiner”僵尸网络2017年11月-12月更新概况
通过观察“yamMiner”僵尸网络2017年11月到12月向控制端发起的请求数量我们发现了一个有趣的细节。这可以从图15展现。
图15 “yamMiner”僵尸网络2017年11月-12月发送请求数量概况
不难看出,当“yamMiner”的控制端ip发生变化的时候,傀儡机中的僵尸程序能够立即连接新的ip地址,所以就有了图中新控制端ip地址出现时旧控制端ip地址请求数量下降到0的现象。实现这样的效果就要求傀儡程序能够实时获知ip地址的变化情况,而“yamMiner”就是利用Java Commons Collections反序列化漏洞周期性地在傀儡机上执行命令,修改傀儡程序连接的控制端ip。由于这一功能是在Java进程中实现的,能够有效躲避杀软的查杀。一般情况下僵尸网络控制端ip地址存活时间不长,优秀的挖矿木马僵尸网络会利用漏洞在傀儡机执行命令更改控制端ip或者将控制端ip存储在例如博客内容这类容易修改又不容易被发现的位置。如果傀儡机所有者不修补计算机系统中存在的漏洞或者删除计算机中持续工作的一些项目(例如SQLServer中的恶意Job),僵尸程序就能在傀儡机中生生不息。
(4)总结
挖矿机僵尸网络是2017年大规模爆发的一个安全威胁,它的危害程度可以从黑客获利的金额展现。图16和图17分别展示了 “yamMiner”僵尸网络的门罗币钱包之一和“隐匿者”僵尸网络的门罗币钱包。
图16 “yamMiner”僵尸网络门罗币钱包之一概况