揭秘来自中国的数字货币“挖矿”军团 – Bondnet僵尸网络

发表于:2017-05-11 13:23:17 来源:  FreeBuf.COM 阅读数(0人)



最近,以色列安全公司GuardiCore发现了一个名为Bondnet的僵尸网络,该僵尸网络由数万台被控制的具备不同功率的服务器肉鸡组成。从目前的情况来看,幕后运营者通过远程控制管理Bondnet网络,进行数字加密货币( Cryptocurrency)挖矿,但也随时准备着发起类似于Mirai的DDoS攻击。组成Bondnet僵尸网络的被控肉鸡服务器大多来自全球知名企业、高校、政府和其它公开机构。而据GuardiCore分析,Bondnet的幕后控制者可能来自中国。


Bondnet的控制者通过一系列公开漏洞,利用Windows管理服务(WMI)木马对服务器进行入侵控制。根据GuardiCore的分析显示,昵称为Bond007.01的Bondnet控制者,能获得对肉鸡服务器的完全控制权,具备数据窃取、勒索和发起其它进一步攻击的可能。Bondnet自2016年12月出现以来,主要进行门罗币(Monero)的挖掘,其一天的收入可达1千美元之多。




本报告中,详细分析了Bondnet僵尸网络的感染和驻留机制,并描述了其攻击和控制管理架构,最终还给出了具体的威胁指标(IoC)和检测清除工具。


Bondnet僵尸网络规模


截止目前,Bondnet已经渗透控制了大约15,000台服务器主机;

每天,将近有2000台主机相当于12,000个CPU内核被Bondnet控制使用;

被控肉鸡服务器CPU内核数从1至64不等;

每天,Bondnet的新增肉鸡主机和丢弃主机大约都为500台左右;

Bondnet僵尸网络的被控受害者服务器遍布全球141个国家。

Bondnet的感染方式


我们在香港发现的一个感染案例显示,攻击者利用PhpMyAdmin的脆弱配置上传部署了恶意DLL和加密VB脚本,这些恶意文件具备免杀能力,多个受害者系统的杀毒软件也难以检测识别。之后,我们发现攻击者以这种相同的攻击模式和网络基础架构,利用不同的攻击向量和应用软件漏洞,对全球的不同服务器发起了攻击渗透 。我们于2017年1月通过全网感知系统探测到了Bondnet。以下为Bondnet的近期被控受害主机分布图:




在这些被控的受害主机中,大部分被用来进行数字货币的挖矿,其它则被用来部署恶意软件或当成C&C端使用。同时,攻击者还利用其中一些被控主机隐藏在合法主机之间,继续扩大僵尸网络攻击感染范围。以下为被控主机的大致系统分类:




Bondnet的攻击感染技术


攻击者主要使用了一些老旧的公开漏洞以及用户名/密码组合对Windows服务器进行入侵尝试,攻击向量包括phpMyAdmin的配置错误漏洞、Jboss漏洞、Oracle Web应用测试套件、ElasticSearch搜索服务器、MSSQL服务器、Apache Tomcat以及Weblogic等中间件应用和其它应用服务。各种应用程序的利用占比如下:




所有这些攻击,最终都会实现一系列VB脚本、RAT远控和数字加密货币挖矿程序(Miner)的下载执行,我们以攻击者对MySQL的入侵攻击为例进行解剖分析。


对MySQL入侵攻击的分析


首先,感染初始阶段通过MySQL命令INTO DUMPFILE植入文件,之后利用MySQL插件特性进行加载执行。通常来说,这些命令在默认情况下是不能运行的,只有在获得一定的数据库权限之后才能执行。另外,入侵攻击Payload是经过混淆的VB脚本,且在DLL加载进入MySQL进程时,调用其中的allcone输出函数并有效执行。其次,整个攻击感染过程都能完美逃过各种杀毒软件的启发式识别扫描。当然,所有这些操作都基于攻击者获取到的MySQL数据库较高控制权限。以下为我们感知探测到的MySQL入侵操作:




由于一些应用服务配置的脆弱安全机制,导致在此过程中使用的混淆代码可以成功绕过大多安全防护措施。与现在普遍使用的PowerShell相比,VBS编码很难记录和访问WMI实体,且很少被要求进行安全审核。另外,VB语言还具有向后兼容性,适用于早期的2003和2008服务器操作系统。


VBS Payload


在这里,VB脚本的Payload首先完成系统版本、CPU内核数、使用语言以及网络连接等系统信息的收集,之后,攻击者再根据这些信息选择后续需要上传安装的恶意软件。另外,可能由于防火长城(Great Firewall)会对一些境外通信阻断的原因,在这里攻击者主要把系统语言用来区分中国境内和境外被控肉鸡服务器。大多数被入侵控制的受害服务器都会被攻击者安装一个挖矿程序(Miner)和一个后门,而中国境内的被控主机则会被攻击者安装一个浏览器广告劫持程序。以下为被混淆处理的Payload VB脚本代码:




挖矿程序Miner


挖矿程序Miner的安装,根据攻击者对不同数字加密货币的挖掘需求,而从攻击者控制管理的网站中下载安装匹配的挖矿程序,但目标首选是Monero(门罗币),其它可选的数字货币还包括能兑换成美元的ByteCoin、RieCoin和ZCash。为了获得挖矿程序,植入受害主机的恶意软件会通过HTTP 4000端口方式与被控服务器池中的一台写入硬编码文件的服务器进行通信连接,请求安装最新版本挖矿程序。最终,恶意软件还会确保运行的挖矿程序能实现持久驻留、定制任务、定时激活和自启动等功能。以下为挖矿程序的一个定制任务示例:




WMI 木马


植入受害主机的后门是攻击者设置从名为mytest01234的Amazon云存储服务器中下载的WMI远控,它利用MOF文件提权方法进入安装植入,并设置为每天晚上23点启动运行。该后门通过从WMI函数中继承构造了一个名为ASEventConsumerdr的WMI provider类,这样攻击者可以在特定时间段内把代码执行等恶意操作伪装成WMI事件进行实施,真正达到隐蔽、简单而有效的目的。


另外,该后门还能开启受害主机的Guest账户,重置密码,使得攻击者在必要时候可以远程通过RDP、SMB和RPC等方式连接控制。当然,它还能进一步收集以下系统信息和元数据发往攻击者的C&C端:


电脑名称

RDP 端口

Guest账户用户名

系统版本

运行的CPU处理器数量

系统正常运行时间

原始可用的感染载体

受害主机是否为中文操作系统

系统语言

CPU架构(32位/64位)

这些信息被重新编码为一串数字,并最终形成对应的两位ASCII码值被以HTTP方式发送出去:




最后,受害主机还会通过8080端口向C&C服务器mst.mymst007.info请求下载一份命令执行文件,进行对照执行。其执行命令都为混淆的VB代码,编码方式与发往C&C端的元数据类似。解码后可以发现,这些命令代码被以内置的编程语言功能进行实现,避免向受害主机的磁盘写入和其它安全防护机制的发现。


另外,我们从命令执行文件中发现了一个来自C&C服务器的文件jk.zip,它是最新版本的挖矿程序安装脚本。但奇怪的是,该文件安装之后在系统中被保存为xw.tmp,但执行之后便失去与C&C服务器的固有命令控制联系。从我们收集到的多个版本的挖矿程序安装脚本可以发现,其挖矿程序的安装执行都大致相同。


攻击者对Bondnet僵尸网络的控制


在每一台被控受害主机远程连接的C&C服务器中,攻击者安装架设了一个小型的网页服务器(Webserver)作为管理控制之用,该Webserver为开源的Golang语言所编写。攻击者在其中添加了诸如受害主机状态跟踪和磁盘文件AES加密等group组功能特性,为了逃避受害主机端的安全审计和防火墙提示,攻击者在C&C服务器中提供的外部服务文件多为.asp和.zip格式。


C&C服务器开启了8080端口监听,允许受害主机执行以下操作:


上传发送信息。向名为all.asp的文件发送受害系统信息

下载命令执行文件。受害主机通过请求alldl.asp文件获得执行命令



在C&C端的网页管理控制服务器中,都有一个需要输入用户名密码进行身份认证的管理员控制后台,但非常有意思的是,我们利用绕过技术成功实现了后台登入,所有托管文件都一览无遗!




攻击者对创建命令和控制实例后,并通过RDP方式远程连接受害主机,另外其中名为 ALL-HFS.zip或main.zip的压缩文件中还还包含了具体的C&C服务器IP、开源服务管理程序和命令文件。名为32.bat的批处理文件运行之后,将会在受害主机内安装与IIS主机进程同名的w3wp服务。但有时候,攻击者和有些C&C服务器不都会创建all.asp文件保存被控主机木马客户端发送过来的信息。


攻击利用的网络架构


Bondnet的整个网络攻击架构都由一些被控受害主机服务器组成,它们都有着特定的任务角色划分,如C&C服务器、文件共享服务器和扫描探测服务器等。为了寻找新的攻击目标,攻击者还利用了黑客论坛中的一个TCP端口扫描工具WinEggDrop,在给定IP列表和端口范围之后,就可以自动扫描发现相关目标。同时,攻击者还会利用扫描和其它服务器识别不同目标网络内应用程序(如 Apache、Struts2、MSSQL和phpMyAdmin 等)存在的未修复漏洞,而其它被控服务器有时还被用来向不同受害主机以HTTP 4000端口部署分配挖矿程序。另外,攻击者还在一些文件共享服务器中部署了与C&C服务器相同的Webserver。如:




与被控主机组成的网络攻击架构不同,攻击者利用Amazon S3 bucket云存储服务器托管入侵感染所用到的WMI木马文件。


到底谁是Bond007.01?


据我们跟踪发现,Bondnet的幕后运营者可能为Bond007.01,其昵称leebond986也多次出现在其编译的多个挖矿程序代码之中。从他使用的代码习惯和程序架构来看,我们认为其攻击活动可能只是个人行为,并不出自团队组织。


我们有多种证据和理由认为Bond007.01来自中国,因为:


在中文和非中文网站技术参考资料中,攻击者首选中文网站进行代码的复制粘贴;

攻击者对中文系统被控受害主机的处理与其它语系受害主机不同;

Bondnet C&C服务器某些程序目录被在中文系统中编译过。如下:



检测与清除


下载使用GuardiCore开发的检测清除工具进行清除:


cscript.exe GC-BondnetCleaner.vbs

或者手工对以下Bondnet痕迹进行识别清除:


日志文件:


%windir%\wb2010kb.log – 包含一些成功攻击的信息

%windir%\temp\dfvt.log – 包含WMI木马的日志信息

WMI木马:


在Powershell环境下,运行以下命令检测木马是否被植入:


gwmi -Namespace “root/subscription” -Class __EventConsumer | where name -eq  “MYASECdr”

如果结果中包含一个名为ASEventConsumerdr的实例,则可能中招了:




之后,运行以下命令进行清除:


gwmi -Namespace “root/subscription” -Class __EventFilter | where name -eq “EF” | Remove-WmiObject
gwmi -Namespace “root/subscription” -Class __EventFilter | where name -eq “EFNMdr” | Remove-WmiObject
gwmi -Namespace “root/subscription” -Class ASEventConsumerdr | Remove-WmiObject
$query = “SELECT * FROM meta_class where __class = ‘ASEventConsumerdr'”
Get-WmiObject -Query $query -Namespace “root\subscription” | where Name -eq “ASEventConsumerdr” | Remove-WmiObject

挖矿程序Miner


用以下命令检查定时任务中包含“gm”、“ngm”或“cell”的批处理服务:


SCHTASKS /Query /V /FO LIST /TN gm
SCHTASKS /Query /V /FO LIST /TN ngm
SCHTASKS /Query /V /FO LIST /TN cell

有时候,植入木马会直接运行挖矿程序,此时需要手工识别和清除挖矿进程。(一般为smssm.exe、msdc.exe、z64.exe、servies.exe)


后门账户


禁用或检查Guest账户;

清除未知身份用户,如webadmin;

非必要时,关闭RDP连接。

总结


Bondnet僵尸网络的主要目标是利用大量被控受害服务器进行数字加密货币(Cryptocurrency)的挖掘,因此,它主要以多CPU内核的服务器为入侵控制目标,一些个人电脑和IoT设备则不在其攻击范围之内。随着比特币(Bitcoin)挖掘业务和市场转向一些大型商业团队之后,其它非传统的数字加密货币(Cryptocurrency)挖掘仍然有利可图,尤其是在不需要耗费任何电力成本的情况下。


虽然对大多企业来说,每台服务器每年的电费可能为1000到2000$美元不等,但这还不是问题的关键,Bondnet僵尸网络通过控制企业服务器,可以实现信息窃取、传播恶意软件或发起其它非法攻击。现在执行的挖矿任务,在未来可能会被攻击者发展成为勒索攻击、大规模数据窃取或进一步的内网渗透入侵行为。


IOC信息


DNS – mst.mymst007.info

挖矿程序Miner:

smssm.exe

msdc.exe

z64.exe

servies.exe

其它详细IOC信息请参考GuardiCore报告附件。


相关新闻

大家都在学

课程详情

信息安全基础

课程详情

网络安全漫谈

课程详情

网络安全基础