欢迎光临
我们一直在努力

通过滥用 GitHub 和 Netlify 等平台的漏洞(VE-2021-41773、CVE-2021-42013)进行门罗币挖掘

今年早些时候,Apache HTTP Server Project 披露了一个被确定为 CVE-2021-41773 的安全漏洞,2021年10月5日,Apache发布更新公告,修复了Apache HTTP Server 2.4.49中的一个路径遍历和文件泄露漏洞(CVE-2021-41773)。

攻击者可以通过路径遍历攻击将 URL 映射到预期文档根目录之外的文件,如果文档根目录之外的文件不受“require all denied” 访问控制参数的保护,则这些恶意请求就会成功。除此之外,该漏洞还可能会导致泄漏 CGI 脚本等解释文件的来源。如果利用此漏洞,攻击者可以将 URL 映射到类似 Alias 指令配置的目录之外的文件。在为别名路径启用通用网关接口 (CGI) 脚本的某些配置下,攻击者还可以将其用于 RCE。由于对CVE-2021-41773的修复不充分,攻击者可以使用路径遍历攻击,将URL映射到由类似别名的指令配置的目录之外的文件,如果这些目录外的文件没有受到默认配置"require all denied "的保护,则这些恶意请求就会成功。如果还为这些别名路径启用了 CGI 脚本,则能够导致远程代码执行,形成Apache HTTP Server路径遍历和远程代码执行漏洞(CVE-2021-42013)。

Apache HTTP Server 项目已推出官方修复程序,但是,当研究人员查看滥用此漏洞的恶意样本时,他们发现更多的此类漏洞被滥用,以针对恶意挖掘门罗币的产品和软件包中的不同漏洞。在本文中,研究人员调查了用于托管加密货币挖掘工具和脚本的 GitHub 和 Netlify 存储库和平台的滥用情况。他们已经将恶意活动通知了 GitHub 和 Netlify,建议他们删除帐户。

技术细节

研究人员观察到攻击者通过在 2020 年和 2021 年披露的安全漏洞针对以下软件包和产品进行恶意加密货币挖掘活动,蜜罐捕获的样本如下:

1. Atlassian Confluence(CVE-2021-26084 和 CVE-2021-26085)

2. F5 BIG-IP(CVE-2020-5902 和 CVE-2021-22986)

3. VMware vCenter(CVE-2021-22005、CVE-2021-21985、CVE-2021-21972和CVE-2021-21973)

4. Oracle WebLogic 服务器(CVE-2020-14882、CVE-2020-14750 和 CVE-2020-14883)

5. Apache HTTP 服务器(CVE-2021-40438、CVE-2021-41773 和 CVE-2021-42013)

figure1-vulnerabilities-abused-for-monero-mining-github-netlify.webp.jpg

2021 年 10 月 19 日至 11 月 19 日期间试图滥用服务器进行恶意加密货币挖掘的漏洞

有趣的是,所有产品和特定软件包都具有广泛传播的预认证 RCE 概念的概念证明。从一个这样的矿池中查看 门罗币 钱包,研究人员看到该操作仍在进行中,并且在撰写本文时正在积极增持门罗币。

figure2-vulnerabilities-abused-for-monero-mining-github-netlify.webp.jpg

加密货币矿池

针对 Windows 主机

figure3-infection-chain-vulnerabilities-abused-for-monero-mining-github-netlify.webp.jpg

感染链

研究人员发现的挖矿样本在 Windows 和 Linux 平台上运行并被滥用。虽然使用的漏洞根据目标基础设施而有所不同,但确定的批处理脚本对两者都有效。研究人员看到 Netlify 和 GitHub 被用作恶意软件文件服务器,用于从攻击者控制的帐户下载批处理脚本。批处理脚本被重命名为临时文件并在它开始在后台运行后被删除。

这些脚本(c3.bat)是从 GitHub 删减的门罗币辅助脚本的修改版本,它们开始检查当前会话是否具有管理权限。如果权限属于管理员,则设置 ADMIN 标志。然后计算门罗币钱包地址的长度。如果长度不超过106或95个字符,则脚本退出。如果是106或95,则跳转到“WALLET_LEN_OK”语句。

4.png

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

5.png

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

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

figure6-vulnerabilities-abused-for-monero-mining-github-netlify.png

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

figure7-vulnerabilities-abused-for-monero-mining-github-netlify.png

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

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

figure8-vulnerabilities-abused-for-monero-mining-github-netlify.png

枚举系统参数以确定加密货币挖掘率

在确定 CPU 的计算能力后,将运行的 c3pool_miner 从主机中移除。然后从攻击者控制的 GitHub 存储库下载压缩的挖矿程序 (c3.zip),并使用 PowerShell 解压缩下载的文件。如果解压缩尝试失败,则下载7z来解压缩文件,下载的文件(7za.exe和c3.zip)之后都会被删除。

figure9-vulnerabilities-abused-for-monero-mining-github-netlify.webp.jpg

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

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

figure10-vulnerabilities-abused-for-monero-mining-github-netlify.png

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

figure11-vulnerabilities-abused-for-monero-mining-github-netlify.png

配置和修改已安装的挖矿程序

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

figure12-vulnerabilities-abused-for-monero-mining-github-netlify.png

配置挖矿程序的管理员权限和持久性

在c3cache_worker上通过NSSM (non – suck service Manager)创建服务。NSSM是一个帮助将应用程序作为服务安装的服务助手程序,通过它,用户可以指定对用户定义的文件进行日志记录。

figure13-vulnerabilities-abused-for-monero-mining-github-netlify.png

使用 NSSM 在受感染系统中持续运行挖矿程序作为后台应用程序

以 Linux 主机为目标

shell 脚本以无限循环开始,以删除在受感染系统中发现的所有具有加密挖矿程序的类似程序,例如 kinsing、kdevtmpfsi、pty86 和 .javae。

figure14-vulnerabilities-abused-for-monero-mining-github-netlify.webp.jpg

循环删除在受感染系统中发现的所有加密货币挖掘竞争程序及其组件

在所有竞争挖矿程序被删除后,/var/spool/cron/root 的属性被设为不可变并重新加载 crontab。然后,如果除了java、redis、weblogic、mongod、mysql、oracle、tomcat、grep、postgres、confluence、awk和aux之外的进程占用了60%以上的CPU,那么它们将被终止。

figure15-vulnerabilities-abused-for-monero-mining-github-netlify.webp.jpg

除了在系统中运行挖矿程序所必需的进程,停止所有其他进程

调用函数“func1”(已编校),每隔30秒循环一次。

研究人员观察到两个内容传播网络 (CDN) 在 GitHub 和 Netlify 中用作 FILE_CC_SERVER。在func1中,检查进程“java.xnk”,如果CPU使用率大于或等于60%,则将进程ID提取到变量“p”中。如果变量为空,则终止进程并创建三个目录,即:

/var/tmp/java.xnk
/var/lock/java.xnk
/tmp/java.xnk 16

figure16-vulnerabilities-abused-for-monero-mining-github-netlify.webp.jpg

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

检查“wget”和“curl”二进制文件的不同路径并将其分配给变量 Wget。在路径“$DIR”中检查文件“java.xnk.bionic”。如果该文件不存在,则使用有效的 Wget 命令下载并复制名为“bionic”(门罗币挖矿程序)和“config.json”的文件,其中包含门罗币钱包地址。为下载的二进制文件分配可执行权限,二进制文件通过 nohup 执行。

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

focal as java.xnk.focal
freebsd as java.xnk.freebsd
linuxstatic as java.xnk.linux
xenial as java.xnk.xenial
xmr-stak as java.xnk.stak

figure17-vulnerabilities-abused-for-monero-mining-github-netlify.png

为 Wget 和可执行权限分配二进制文件

总结

根据过去一个月对目标产品和特定软件包的尝试频率,研究人员相信还有更多服务器未打补丁并暴露在这些漏洞中。更重要的是,攻击者将根据概念证明的可用性以及这些服务器尚未打补丁的可能性,继续针对这些产品和软件包进行攻击。此外,由于 Linux 和 Windows 平台的广泛使用以及此处确定的所有挖矿程序都在这两种平台上工作的事实,非法加密货币挖掘对于可作为目标的大量系统而言是一项有利可图的业务。

由于流量是通过 HTTPS 加密的,因此对 GitHub 和 Netlify 等合法平台的滥用将继续存在。如果你的设备具有适当的攻击检测和预防解决方案 (IDS/IPS),则网络工件将不会用于检测。此外,IP 信誉服务不会将这些平台标记为恶意平台,因为它们是程序和组织的合法来源。这两个平台的 CDN 还提供了设置操作的简便性和可用性,并提供了可用性和速度,从而也帮助恶意攻击者提供广泛而快速的恶意软件感染能力,而不管受害者的位置如何。 CDN 中的这两个因素可能会促使恶意攻击者滥用这些平台进行感染,甚至是与加密货币挖掘无关的例行程序和攻击行为。

本文翻译自:https://www.trendmicro.com/en_us/research/21/l/vulnerabilities-exploited-for-monero-mining-malware-delivered-via-gitHub-netlify.html如若转载,请注明原文地址

赞(0) 打赏
未经允许不得转载:黑客技术网 » 通过滥用 GitHub 和 Netlify 等平台的漏洞(VE-2021-41773、CVE-2021-42013)进行门罗币挖掘
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏