使用CryptoSink技术的新挖矿活动

Track-SSG   ·   发表于 2019-04-03 11:03:57   ·   漏洞文章
译文声明

本文是翻译文章,文章原作者F5,文章来源:f5.com                                
原文地址:https://www.f5.com/labs/articles/threat-intelligence/-cryptosink--campaign-deploys-a-new-miner-malware                            


译文仅供参考,具体内容表达以及含义原文为准

 

最近,F5 Networks威胁研究人员发现了一起利用2014年爆出的漏洞来传播集成XMR挖矿模块的恶意软件,从而对Elasticsearch系统进行攻击的新威胁活动。

  • 1.此活动使用了一个具有五年历史的Elasticsearch系统(该系统可在Windows、Linux双平台部署)漏洞(CVE-2014-3120)来挖掘XMR加密货币。
  • 2.在Linux系统中,它使用了一些防病毒软件(AV)无法检测的新恶意软件(下载器及木马)。
  • 3.攻击者通过使用sinkhole技术将感染主机上其他挖矿程序的矿池地址指向127.0.0.1,从而避免资源竞争。
  • 4.为了长久驻存,它将Linux rm命令替换为随机时间后重新安装恶意软件的代码,使得分析人员难以找到主机重复感染的原因。
  • 5.攻击者通过将SSH密钥添加进感染主机的方式来留下后门。
  • 6.此活动使用了多个控制命令及C&C服务器, 目前的C&C服务器位于中国。
  • 我们将此活动命名为CryptoSink,在分析中,我们发现了一种以前从未见过的攻击手法,攻击者使用这种方法来杀死感染主机上的竞争对手,并通过修改Linux remove(rm)命令的方式更隐蔽驻留在服务器上。

     

    初始感染途径

    该攻击起始于一些运行在Windows或Linux上的Elasticsearch发出的恶意HTTP请求。

    Windows Payload

    在下载Windows payload时,调用了系统自带的certutil命令从攻击者服务器下载恶意可执行文件,用于对SSL证书进行操作。这种操作在威胁活动中很普遍。

    图1:含有Windows payload的HTTP请求

    下载的名为nvidia.exe 的文件是一个XMR挖矿程序。

    图2:VirusTotal中,53款杀软监测出了nvidia.exe

    Linux Payload

    与Windows相比,Linux payload涉及多个步骤。首先,和其他威胁活动一样,调用Linux中现有的curl或wget命令下载并执行名为ctos.sh的bash脚本。

    图3:含有Linux payload的HTTP请求

    然后,bash脚本将检查主机是否已经是僵尸网络的一部分,如果没有,则下载名为initdz2的二进制恶意软件。

    图4:initdz2是一个ELF 64位可执行文件

     

    定制化Linux Dropper

    由C++编写的initdz2为dropper文件,用来下载并部署其他恶意软件。

    图5:Linux系统下恶意文件执行流程

    除了下载其他二进制文件外,该dropper还包含其他很多功能。幸运的是,通过攻击者在二进制文件中留下的特征,有效的降低了研究人员进行逆向分析的难度。

    图6:initdz2恶意软件的主要功能

    Dropper 检测率

    不可思议的是,在VirusTotal中,该文件并未被标记为恶意文件。(截止目前为止)

    图7:防病毒引擎并未检测出该Dropper

    在VirusTotal中检索域名w.3ei.xyz相关的威胁情报信息时,可以看到正是从这里下载了初始恶意脚本及dropper文件。除此之外,还看到了一个名为initdz的文件,看起来应该是先前版本的dropper文件。

    图8:VirusTotal列出了w.3ei.xyz域名下的文件

    再检查一下VirusTotal,可以发现通过链接检索和直接上传文件,将产生不同的分析结果。通过链接检索,一些防病毒软件会将其判定为恶意,而直接上传样本,则并未被标记(如上文图7所示)。

    图9:通过链接提交文件,VirusTotal检测结果更准确

     

    随机C&C

    为了能在域名被标记后继续存活,该dropper中硬编码了3个域名,会对其逐个解析,直到找到可用的域名为止。

    域名:

  • w.3ei.xyz
  • w.21-3n.xyz
  • w.21-2n.com
  • 截至目前,只有域名“w.3ei.xyz”可用。

    图10:dropper逐个解析硬编码的三个域名

    可以查到该域名解析地址为中国。

    图11:C&C服务器位于中国

     

    消除竞争

    在如今的僵尸网络挖矿大战中,感染主机的CPU资源是最关键的因素。目前,一般攻击者会通过扫描进程名或者检测CPU利用率最高的进程的方式来找到其他挖矿进程,从而杀死该进程,消灭竞争者。

    而在此案例中,攻击者使用了一种很巧妙的策略使得竞争者们陷入瘫痪。我们将这种手法称为“CryptoSink” ,因为它会通过修改”etc/hosts”文件,将指外部矿池地址的通信解析到localhost(127.0.0.1)。这样一来,其他挖矿进程连接不到矿池,不能启动,自然会释放出占用的系统资源。

    图12:将竞争者矿池指向127.0.0.1

    图13:被修改的/etc/host文件

    需要注意的是,pastebin.com,thyrsi.com以及zer0day.ru,似乎并非常见的矿池地址。

    根据历史记录,可以查到zer0day.ru曾拥有2个子域名,其中pool.zer0day.com看起来是矿池。并且使用了pastebin.com作为C&C通道,从而隐蔽了矿工与真正C&C的通信。而根据我们今年1月29 日发现的扫描结果显示,thyrsi.com是曾托管Windows木马的恶意域名。

    图14:zer0day.ru在VirusTotal上的检测结果

    图15:JoeSandbox对托管在thyrsi.com的恶意软件进行分析

     

    安装后门

    为了保证随时可以访问受害者主机,CryptoSink dropper采取了2种策略来完成持久化。第一种是攻击者的SSH密钥添加到受害者主机的authorized_keys 文件中。这种情况下攻击者可以通过SSH直接连接进入受害者主机。

    图16:将SSH密钥添加到受害者主机

    然后dropper会下载另外2个二进制文件,第一个是migrations,用来监视第二个文件httpdz是否执行。

    图17:监视程序用来执行后门

    httpdz是另一个用C++编写的,具有后门功能的木马。和dropper一样,他使用TCP套接字对3个硬编码的C&C域名进行轮询。它的功能实现非常简单,会通过预先定义不同ASCII代码来执行以下操作:

  • 使用Linux popen执行CMD命令
  • 收集硬件信息(CPU,内存等)
  • 获取耗费主机CPU资源最多的5个进程
  • 下载链接并执行
  • 连接其他C&C服务器
  • 使用fork和execvp系统调用生成一个新的“进程”来执行命令
  • 休眠
  • 中止
  • 有趣的是,这个后门VirusTotal也未能识别。

    图18:截至目前VirusTotal未识别这个二进制后门

     

    持久驻存

    CryptoSink使用了不同的技术来实现在感染主机的长久驻存。它创建了一个定时任务,每隔很短一段时间,便下载并运行2个很小的恶意bash脚本(init.sh及crontab.sh)。名为init.sh的脚本与前文提到的ctos.sh功能类似,而截至目前,crontab.sh的内容为空。

    图19:下载和执行bash脚本的定时任务

    第二个实现持久性的方法是创建一个服务,该服务会在不同的事件(例如系统重启)后运行dropper文件。

    图20:CryptoSink恶意软件添加了新服务

    图21:服务正在运行dropper

     

    狸猫换太子

    为了防止恶意软件被清理,CryptoSink采用了更为隐蔽的持久性方法。它将原始的rm二进制文件(即Linux“remove”命令)重命名为rmm,而将其替换为从其C&C服务器下载的名为rm的恶意文件。

    图22:dropper中用于替换rm命令的代码

    现在,用户每次执行rm命令时,首先,伪造的rm文件会随机的决定是否执行恶意代码,然后才会调用真正的rm命令(即被更名为rmm的文件)。rm二进制文件中恶意代码会检查定时任务cronjob是否存在,若不存在,将再次添加。

    图23:负责调用真正“rm”命令的代码

    有趣的是,即使受感染主机的管理员检测到了其他恶意文件,在用rm命令将其删除时,恶意软件又被重新安装了回来。并且rm命令是随机执行恶意代码,这会让管理员在查找机器重新感染的原因时非常抓狂。

    图24:恶意rm代码实现随机化执行

     

    Linux 挖矿

    最后,dropper会部署XMRig 挖矿代理,并对钱包地址等硬编码信息进行配置。

    图25:XMRig硬编码配置

    XMRig挖矿代理使用的是公开矿池,我们可以通过钱包地址来查看此挖矿节点的数量及收入。

    图26:钱包地址

    钱包地址:4DSQMNzzq46N1z2pZWAVdeA6JvUL9TCB2bnBiA3ZzoqEdYJnMydt5akCa3vtmapeDsbVKGPFdNkzqTcJS8M8oyK7WGijzKrMTGkC671HT6

    图27:截至目前该钱包的挖矿收入

    在攻击者的文件服务器中,我们发现了他在早期挖矿代理中使用的另一个钱包地址。

    钱包地址:

    448aZSQhyDBCZokwmVd5HG5Gp7UrAeLVuVmZbKcs4rTZTx1UXGECxbePXha3qncffYYhJjG5FRGxM1scV9dbN62VCGiPdtQ

    图28:另一个钱包的挖矿收入

    由于攻击活动开始不久,所以利润不是非常大,大约在4500美元左右。

     

    总结

    加密僵尸网络的兴起与加密货币价值的下降使得竞争更加激烈。攻击者采用了更加创新的策略来干掉竞争者,获得更多的CPU资源,并保持在感染服务器的长期驻存。然而,这个攻击者所使用的sinkholing技术,也为安全人员带来了新的防御思路。但是,为了避免最初的感染,不论是代码层面还是Web应用防火墙层面,都应该制定更加有效的修补过程。

    本文翻译自 f5.com。


    打赏我,让我更有动力~

    0 条回复   |  直到 2019-4-3 | 939 次浏览
    登录后才可发表内容
    返回顶部 投诉反馈

    © 2016 - 2024 掌控者 All Rights Reserved.