近一段时间,深信服EDR安全团队收到用户反馈,称其内网主机存在卡顿现象。经过我们跟踪分析,发现这是一种新型的挖矿病毒,我们已将其命名为BearMiner,中文代号“灰熊矿业”。
这是一个有趣的挖矿病毒,并不走寻常路,其挖矿思路采用了特殊的手段,且相对隐蔽,能绕过当前主流的杀毒软件,目前已潜伏多个月。
URL:
http://miner.gsbean.com/upload/Sadats.jpg
http://80.255.3.69/upload/Usdata.txt
文件路径:
C:\Program Files\Microsoft MSBuild\Setring.exe
C:\Program Files (x86)\Microsoft MSBuild\Setring.exe
C:\Program Files\Windows Photo\Imaging.exe
C:\Program Files\Windows Photo\Sadats.dll
文件MD5:
4A0A76F60F001C9D4C06CE64BF33F2C9
3BB60E9EADB2A7D6DDA59F035DAD9386
0885C4ECC80B621A2DF524B19C7DA22A
0x01 矿业集团的“组织结构”
此次攻击,或者说这个“矿业集团的组织结构”,是经过精心构思的,涉及的病毒模块多,关系相对复杂,大体简化为如下结构。
Imaging.exe是病毒母体,主要有自我修改、主功能、进程监控、通信四大模块。自我修改模块负责读取程序自身文件然后在其后面加上大量垃圾信息并包含随机数,所以通过MD5对比无法查杀。进程监控模块负责监控进程,在必要时杀死指定进程。主功能模块负责调度各个模块,通过与通信模块配合,完成从云端到本地的命令下发与执行。
Sadats.dll是通过云端下载得到的文件,被Imaging.exe所加载,负责释放并执行挖矿程序Setring.exe。
Hxxp://miner.gsbean.com/upload/Sadats.jpg并不是一个jpg图片文件,而是一个加密的携带命令信息的文件,某种意义上,就是C&C通道,是这一矿业集团的指挥中心。Imaging.exe是一个机器人,由Sadats.jpg决定它该做什么、怎么做。
Hxxp://80.255.3.69/upload/Usdata.txt,同理的,也不是一个txt文本文件,是一个加密了的携带挖矿二进制代码的文件。
云端的Sadats.jpg和Usdata.txt配合完成了挖矿动作,当然,最终是体现在下载并释放到本地Sadats.dll和Setring.exe上。
某种意义上,云端的Sadats.jpg和Usdata.txt完全可以轻而易举,摇身一变,从“矿业集团”变成“勒索团伙”(勒索病毒)。
Setring.exe运行了多个线程进行挖矿,CPU占有率达75%。
Setring.exe挖矿文件被释放在C:\Program Files (x86)\Microsoft MSBuild\Setring.exe,可以看到,这个病毒特意伪装成为了NVIDIA的文件(显卡市场覆盖极广的英伟达公司),图标也是英伟达官方图标。
运行指令如下:
0x02 创业,先取一个牛逼名字
这是一个大众创业、万众创新的时代,创业首先得取一个牛逼的名字。
BearMiner也不例外,其病毒作者,或者说“创始人”,已将其命名为“灰熊矿业”(这也是我们将此病毒命名为BearMiner的原因)。
猜测作者(或者这个组织)应该是一个(或一群)有趣而严谨的人,命名有趣,且严格按照软件开发标准,标注了版本。
注:IDA载入程序,发现有pdb信息,从路径可以看到作者将此病毒命名为“灰熊矿业程序9.0”。
从这里,我们可以看到,“灰熊矿业”已经继承到了“第九代”了。
0x03 如何产生稳定收益?
灰熊矿业要产生稳定收益,首先第一要务,就是要有“低识别率”。最好,能骗过普通用户,能给安全分析人员产生干扰,能骗过杀毒引擎,最最重要的是,能不被杀毒引擎们上传到云端分析。如何做到这一点呢?文件足够大,不就解决了吗?正常情况下,一个大文件,是不敢随意上传的,毕竟涉及到网络带宽、客户隐私等众多问题。简单点说,就是上传一个大文件,“动作”太大,会溅起大浪花。
另外,就是要做到可控,随时可撤换,土匪和良民可自由切换。然后呢?最好,文件可变,不会因为MD5而被全局通杀。
以上几点,概括起来,就是运用了如下几个手段:伪装、加密混淆、自我修改、大文件、可控。
伪装:病毒母体图标及命名等信息都伪装成了系统程序,且程序大小达到了150M,看起来非常像一个正常的应用软件。
加密混淆:首先解密出一些要用到的字符串。在后面的分析中发现,在程序中用了大量的加密以及代码混淆,很大程度上的增加了分析的难度。
自我修改:BearMiner首次运行时,会读取程序自身文件然后在其后面加上大量垃圾信息并包含随机数,所以通过MD5对比无法查杀。
大文件:通常来说,病毒文件都比较小,但BearMiner却反其道而行之。它就是故意把文件“放大”,而杀软对于上传的样本往往都有大小限制,从一定程度上避免了被上传分析的风险。
可控:同时也可以看到,作者留了一个终止挖矿并删除挖矿程序的开关,同样也是通过前面的命令下发实现控制。
0x04 灰熊矿业的“营业额”
此次攻击的手法,多数是沿用的套路,所不同的是,这次攻击的目的不是勒索,是挖矿,而且是瞄准了大规模的集体挖矿。
钱包地址:48j5us6QWvQUAk7E1GKC6mFMH52183TNrDqrYjXV7mMngVX9t1GuptEb35QwefNsPPhGLWEqxHrY7JCxeDzC6ub8MuwyAfq。
截至目前,该挖矿病毒已经挖了420个门罗币,结合当前门罗币价格(¥927),其“营业额”为40万元(人民币)。
0x05 解决方案
1、隔离感染主机:已中毒计算机尽快隔离,关闭所有网络连接,禁用网卡。
2、切断传播途径:关闭潜在终端的SMB 445等网络共享端口,关闭异常的外联访问。
3、查找攻击源:手工抓包分析或借助态势感知类产品分析。
4、查杀病毒。
0x06 相关IOC
URL:
http://miner.gsbean.com/upload/Sadats.jpg
http://80.255.3.69/upload/Usdata.txt
文件路径:
C:\Program Files\Microsoft MSBuild\Setring.exe
C:\Program Files (x86)\Microsoft MSBuild\Setring.exe
C:\Program Files\Windows Photo\Imaging.exe
C:\Program Files\Windows Photo\Sadats.dll
文件MD5:
4A0A76F60F001C9D4C06CE64BF33F2C9
3BB60E9EADB2A7D6DDA59F035DAD9386
0885C4ECC80B621A2DF524B19C7DA22A
* 本文作者:千里目安全实验室,转载注明来自FreeBuf.COM