概述

今年早些时候,一个CVE ID追踪为CVE-2021-41773的安全漏洞被披露给Apache HTTP Server项目,该漏洞是Apache HTTP Server2.4.49的一个路径遍历和远程代码执行(RCE)漏洞。如果该漏洞被利用,攻击者可以将URL映射到Alias-like指令配置的目录之外的文件。在某些配置下,为别名路径启用了通用网关接口(CGI)脚本,攻击者也可以利用它实现RCE。由于对CVE-2021-41773的不完整修复,导致了Apache HTTP Server2.4.49 和 2.4.50 中的路径遍历和远程代码执行漏洞,跟踪为CVE-2021-42013。

Apache HTTP Server项目已经发布了修复版本。然而,当我们查看滥用这个漏洞的恶意样本时,我们发现了更多被这样滥用的漏洞,这些漏洞涉及不同的产品和软件包,并被用来恶意挖掘Monero。在这篇文章中,我们研究了滥用GitHub和Netlify存储库和平台来托管加密货币挖矿工具和脚本的问题。我们已经向GitHub和Netlify报告了这些恶意活动,他们已经删除了这些账户。

技术细节

我们观察到攻击者针对以下软件包和产品在 2020 年和 2021 年披露的安全漏洞进行挖矿,通过我们在蜜罐中捕获的样本进行攻击:

1.AtlassianConfluence (CVE-2021-26084和CVE-2021-26085)

2.F5BIG-IP(CVE-2020-5902和CVE-2021-22986)。

3.MwarevCenter (CVE-2021-2255、CVE-2021-1985、 CVE-2021-21972和 CVE-2021-1973)

4.OracleWebLogic Server (CVE-2020-14882、CVE-2020-14750,和CVE-2020-14883)

5.ApacheHTTP Server(CVE-2021-40438、CVE-2021-41773和CVE-2021-42013)。

图1. 2021年10月19日至11月19日期间利用的漏洞(数据取自趋势科技Cloud One™ - Workload Security。)

我们发现一个有趣的现象,所有的产品和特定的软件包都有公开的pre-auth RCE PoC。从一个这样的矿池中查看 Monero 钱包,我们看到在撰写本文时该操作仍在进行中并积极增持 Monero。

图 2. 加密货币矿池

针对Windows主机

图 3. 感染链

我们发现的矿工样本可以在Windows和Linux平台上运行。虽然所使用的漏洞根据目标基础设施而有所不同,但我们发现的批处理脚本在这两个平台上都能执行。我们看到使用Netlify和GitHub作为恶意软件文件服务器,从攻击者控制的账户下载批处理脚本。批处理脚本被重命名为临时文件,并在后台运行后删除。

脚本(c3.bat)是从GitHub上删减的Monero挖矿辅助脚本的修改版,它们开始检查当前会话是否具有管理权限。如果是管理员权限,那么ADMIN标志就会被设置。之后,Monero钱包地址的长度被计算出来。如果长度不是106或95个字符,则脚本退出。如果是106或95,则跳转到 "WALLET_LEN_OK "语句。

图 4. 观察到的批处理脚本是从 GitHub 中删减的辅助脚本的修改版本

图 5. 检查管理权限和“XMR WALLET”标志以计算地址长度

该脚本还会在系统中进行一系列检查,如是否定义了USERPROFILE环境变量,以及wmic、powerhell、find、findstr和tasklist等实用程序是否可用。

图 6. 检查系统环境变量和实用程序的可用性

图7. 获取系统中实用程序的可用性结果

Wmic实用程序被用来进一步枚举系统中的具体参数,如处理器数量、最大时钟速度、L2 和L3 缓存大小以及 CPU 插槽,这些值稍后被用来计算Windows主机的Monero挖矿率。对于不同的挖矿速率,在采矿池上使用不同的端口。

图 8. 枚举系统参数以确定挖矿率

在确定CPU的计算能力后,运行中的c3pool_miner从主机上删除。然后从攻击者控制的GitHub储存库下载压缩的矿工(c3.zip),并使用PowerShell来解压缩下载的文件。如果解压失败,就下载7z来解压缩文件,然后删除下载的两个文件(7za.exe和c3.zip)。

图9. 提取后删除下载文件的痕迹

该脚本还继续从官方存储库安装适用于 Windows 的最新版本的XMRig。解压下载的文件后,7z 二进制文件和 XMRig ZIP 文件将被删除。成功安装矿工后,将使用 PowerShell 修改配置文件。

图 10. 在系统中安装最新的XMR 版本

图 11. 配置和修改已安装的矿工

如果矿工已经在运行(c3.exe),执行时就会跳到ALREADY_RUNNING标签。如果不是,则使用IDLE优先级类中的 "start "命令执行矿工。如果当前用户有管理权限,那么执行会跳转到标签ADMIN_MINER_SETUP。如果没有,则通过使用批处理脚本修改启动目录来添加持久性,以使用配置文件执行c3pool XMR 矿工。

图 12. 配置矿工的管理员权限和持久性

一个服务是由c3cache_worker使用Non-Sucking Service Manager(NSSM)创建的。NSSM是一个服务帮助程序,帮助把应用程序安装为服务,用户可以使用它指定用户定义文件的日志记录。

图13. 使用NSSM在受感染的系统中作为后台程序不断运行矿工

以Linux主机为目标

shell脚本从一个循环开始,以删除在受感染系统中发现的所有竞争性加密矿工,如kinsing、kdevtmpfsi、pty86和.javae。

图 14. 循环删除在受感染系统中发现的所有挖矿竞争对手及其组件

在终止了所有挖矿竞争对手的进程后,/var/spool/cron/root的属性被设置为不可改变并重新加载crontab。然后,如果除了java、redis、weblogic、mongod、mysql、oracle、tomcat、grep、postgres、confluence、awk和aux之外,有任何进程占用了超过60%的CPU使用率,它们将会被终止。

图15. 除了系统中运行矿工所需的进程外,停止所有其他进程

调用函数“func1”(redacted)并每30 秒重复一次循环。

我们观察到两个内容分发网络(CDN)被用作GitHub和Netlify的FILE_CC_SERVER。在func1中,检查进程 "java.xnk ",如果CPU使用率大于或等于60%,则将进程 ID 提取到变量"p"中。如果变量为空,则终止进程并创建三个目录:

A./var/tmp/java.xnk

B./var/lock/java.xnk

C./tmp/java.xnk

图16. 变量DIR包含创建的有效TMP目录的值

检查"wget "和 "curl "二进制文件的不同路径并将其分配给变量 Wget。在路径"$DIR "中检查文件"java.xnk.bionic ",如果该文件不存在,有效的Wget命令被用来下载和复制名为 "bionic"(一个Monero矿工)和 "config.json "的文件,其中包含Monero钱包地址。然后为下载的二进制文件分配可执行权限,并通过nohup执行该二进制文件。

类似地,下载并执行以下二进制文件以代替文件"bionic",并重复该过程:

  1. focal as java.xnk.focal

  2. freebsd as java.xnk.freebsd

  3. linuxstatic as java.xnk.linux

  4. xenial as java.xnk.xenial

  5. xmr-stak as java.xnk.stak

图17. 为Wget分配二进制文件和为下载的二进制文件分配可执行权限

结论

根据过去一个月对目标产品和特定软件包的利用尝试频率,我们相信有更多的服务器仍未安装补丁,需要注意的是,由于PoC/EXP的可用性,攻击者将继续针对这些脆弱产品和软件包进行入侵。此外,由于Linux和Windows平台的广泛使用,以及本研究中发现的矿工都可以在这两个平台上运行的事实,非法挖矿成为一个有利可图的活动,因为有大量的系统可以成为目标。

由于流量是通过 HTTPS 加密的,因此GitHub和Netlify等合法平台将继续被滥用。如果目标机器具有适当的入侵检测和预防解决方案 (IDS/IPS),则network artifacts将不会有助于检测。此外,IP 信誉服务不会将这些平台标记为恶意平台,因为它们是程序和组织的合法来源。这两个平台的CDN还可以轻松方便地设置操作,并提供可用性和速度,因此也有助于恶意行为者实现广泛而快速的恶意软件感染,无论受害者位于何处。CDN的这两个因素可能会促使恶意行为者的行为发展,他们滥用这些平台进行感染,甚至是与挖矿无关的例程和攻击。

从另一个角度来看,考虑到使用公开的PoC/EXP进行攻击的恶意行为者显得有些不成熟。这些恶意行为者还定期进行操作,并以更多机器为目标,虽然他们的GitHub和Netlify账户被暂停,但他们仍继续操作并在各自的钱包中获取加密货币。

IoC

文件&SHA-256

a-bionic 3c1a2e702e7079f9d49373049eff5e59fcf35d526b7a157a4a963fbdf9c7c75f

a-c3.bat 3b5ffd88a9762c68de551e63243fcc0549e3c31784285b312adf59832f7523ab

a-config.json fd7e26f48dfb68284f5acda50eedb8e9a964fb8b8a1dbb2c1555d431da8182e0

a-focal a025a8b424c23856c42dbebcb67ff7c60c6cfd13aa12fcecb15679b98b3ba94d

a-freebsd 4fc7113ed150895587635fa58b8be66a32f2d41b06807ac8a9f1898dd1ee6b0c

a-linuxstatic 1489c404a110149b66476e0f41317770f0291da64a0d4b39f28900ccaf4d30f2

a-stg_gh.sh dd303c2644c2a58cf466a19f7c801aeae43a63d4efd56707f0dd531439d8dafd

a-stg_ntf.sh b8a146284e8abf867ed86ff6cc4ee44648e47c7e857d5d2e5e52219c4b43f935

asvconhost.exe 93167030a5bb32e8d777f04a0853b2a55a0ae91a634afbcd55e2c981853d5506

a-xenial 428340a0695393a0cec55513e700a479e252d9b034f27f80a29da3ac99afa459

a-xmr-stak 240fe01d9fcce5aae311e906b8311a1975f8c1431b83618f3d11aeaff10aede3

c3.exe 61c0449a48cf9351f157d89deff88bd4df2ab5c1091b3504741f6c62274b099e

c-c3.bat 9691bf237d879299984abb23b25ffb51a0f00567a364899466e1ad93694c0186

c-config.json aaee6e01f4192caea86645bea741d85c240083b55341e47a206176df1892e740

config.json feb4541172610b742552d3ee4bc9b114e9bf0d11dfff153b452e03804cd0f453

c-stg_gh.sh 747ceb6c37bae5670b0c469c998c66e58b4ec310ab8ddf3abc0c205fb5d15f1c

c-stg_ntf.sh 5aa0da717d2e88682203f2831bfb550ed8530d98bed9232a2a3a1683ba11e052

f-c3.bat fca6e56e74f94b29674528a8c4e82898f1ca7dc62b4a7d50c175464f9065c343

f-config.json 4d1e20ef6d88436a7246e79987e71238021dbbbb80a3bc83c0ef814dfeda5c2e

f-stg_gh.sh cd291d2b3933ab914eed36d3c9c0200ae864fb4a5d29fb5be54f07c3d30bebdb

v-c3.bat 62f854be8c9876e84a920231bdf7bbe0757beb609486aa3ea34df34da6b93b09

v-config.json 73ef742834dfa72668fc423bd43204456c2f4effef5a99a1beeeff059ea64189

v-stg_gh.sh e94f04e2822fc7e2406cf2ad8f0d1e0359a13647cf26a8f31b2b83a033c3df94

v-stg_ntf.sh 3b0a31a6889d129324d922b8861a6f06101ea9bc6a89bd7e7e2dd691b6247367

w-c3.bat 73a7aa23e68c0bd6bd6960327cf0a24217544a913f83b85cedf59bdc0856b8e6

w-config.json c5d9345a8a49f1109c2fcd1c649ceaa94421e6c3804284fca1f6c891dbc0869d

w-stg_gh.c3.ps1 7f2b0f01547d7d43c8bd33206faf78d6500a7f6f2a9e6612c507b220de5a08a9

w-stg_gh.sh b3215074ddb18e43771a51f3d3c8c49571bbf69b33b8bbbf2cab4559caa1ae6a

nervous-hodgkin-5c3bb4[.]netlify.app

heuristic-hermann-392016[.]netlify.app

amazing-nightingale-3617e1[.]netlify.app

原文链接:

https://www.trendmicro.com/en_us/research/21/l/vulnerabilities-exploited-for-monero-mining-malware-delivered-via-gitHub-netlify.html

声明:本文来自维他命安全,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。