我们发现利用Apache ActiveMQ漏洞CVE-2023-46604下载并攻击Linux系统的Kinsing恶意软件(也称为h2miner)和加密货币矿工被利用时,此漏洞会导致远程代码执行(RCE), Kinsing使用它来下载和安装恶意软件。
该漏洞本身是由于OpenWire命令未能验证未经检测类类型而导致RCE。
ActiveMQ(用Java编写)是一个由Apache开发的开源协议,它实现了面向消息的中间件(MOM)。它的主要功能是在不同的应用程序之间发送消息,还包括STOMP、Jakarta Messaging (JMS)和OpenWire等附加特性。
Kinsing恶意软件是一种主要针对基于linux的系统的严重威胁,可以渗透服务器并在网络中迅速传播。它通过利用web应用程序或配置错误的容器环境中的漏洞进入。
最近,Kinsing背后的攻击组织一直在利用CVE-2023-4911 (Looney Tunables)漏洞。一旦Kinsing攻击了一个系统,它就会部署一个加密货币挖掘脚本,利用主机的资源来挖掘比特币等加密货币,从而对基础设施造成严重破坏,并对系统性能产生负面影响。
以下是受CVE-2023-46604漏洞影响的Apache ActiveMQ版本:
Apache ActiveMQ 5.18.0 5.18.3之前的版本;
Apache ActiveMQ 5.17.0 5.17.6之前的版本;
Apache ActiveMQ 5.16.0 5.16.7之前的版本;
5.15.16之前的Apache ActiveMQ;
Apache ActiveMQ Legacy OpenWire Module 5.18.0 before 5.18.3;
Apache ActiveMQ Legacy OpenWire Module 5.17.0 before 5.17.6;
Apache ActiveMQ Legacy OpenWire Module 5.16.0 before 5.16.7;
Apache ActiveMQ Legacy OpenWire Module 5.8.0 before 5.15.16;
建议用户将Java OpenWire代理和客户机升级到版本5.15.16、5.16.7、5.17.6或5.18.3,因为其中任何一个版本都可以修复此漏洞。
基于AMQ-9370,我们能够检查漏洞出现的根本原因,与OpenWire命令解组时可抛出类类型验证有关的问题。
OpenWire是一种二进制协议,专门设计用于处理面向消息的中间件。它充当ActiveMQ的本机连接格式,ActiveMQ是一个广泛使用的开源消息传递和集成平台,与其他格式相比,OpenWire的二进制格式提供了几个优势,比如它对带宽的有效利用以及支持多种消息类型的能力。这些特性使其成为需要可靠和高性能消息传递系统的企业和组织的理想选择。
基于补丁差异,我们可以看到validateIsThrowable方法已经包含在BaseDataStreamMarshall类中。
validateIsThrowable方法包含在BaseDataStreamMarshall类中
无法验证Throwable类的类类型
当编组器无法验证Throwable (Java中表示异常和错误的对象)的类类型时,它可能会意外地创建并执行任何类的实例。这将导致RCE漏洞允许攻击者在服务器或应用程序上执行任意代码。因此,必须确保始终验证Throwable的类类型,以防止潜在的安全风险。
自11月初以来,已经出现了几起活跃样本。这些报告是关于积极利用CVE-2023-46604的攻击者(例如HelloKitty勒索软件家族背后的攻击者),以及Metasploit和nucleus等概念验证漏洞。考虑到CVE-2023-46604的CVSS评分为9.8,总体检测率仍然很低。
基于Kinsing使用的漏洞,我们提供了一个可用于扫描的YARA规则:
目前,存在利用ProcessBuilder方法在受影响的系统上执行命令的公开漏洞。在Kinsing的背景下,CVE-2023-46604被用来在易受攻击的系统上下载和执行Kinsing加密货币矿工和恶意软件。
使用ProcessBuilder方法进行开发
一旦成功利用,加密货币矿工和恶意软件将下载恶意安装程序,然后使用bash执行恶意脚本。
通过bash执行恶意脚本
一旦bash脚本被执行,Kinsing恶意软件就会从命令与控制(C&C)服务器为各种体系结构下载额外的二进制文件和有效负载。
从C&C服务器下载额外的二进制文件和有效负载
Kinsing恶意软件的一个有趣特征是,它在进程、crontab和活动网络连接中积极寻找正在活动的加密货币矿工,例如与Monero绑定的矿工或利用Log4Shell和WebLogic漏洞的矿工,然后继续阻止它们的进程和网络连接。此外,Kinsing从受攻击主机的crontab中删除有竞争关系的恶意软件和矿工。
为Kinsing二进制文件分配一个Linux环境变量,然后执行它。
最后,Kinsing每分钟添加一个cronjob来下载并执行它的恶意引导脚本。
每分钟负责下载和执行Kinsing的恶意引导脚本的cronjob
这确保了受影响主机上的持久性,并确保最新的恶意Kinsing二进制文件在受影响主机上可用。
Kinsing通过在/etc/ld.so中加载它的rootkit来加倍地使用它的持久性和攻击性预加载,完成一个完整的系统攻击。
加载Kinsing rootkit“/etc/ld.so.preload”
CVE-2023-46604漏洞仍然在被各种攻击者利用,例如Kinsing恶意软件利用背后的组织,滥用此漏洞执行恶意活动。
使用有Apache ActiveMQ时必须立即采取行动,尽快修补CVE-2023-46604漏洞,并降低与Kinsing相关的风险。鉴于恶意软件跨网络传播和善于利用其他漏洞的特点,当务之急要维护最新的安全补丁,定期审计配置,并监控网络流量异常活动,这些都是综合网络安全战略的关键组成部分。
参考及来源:https://www.trendmicro.com/en_us/research/23/k/cve-2023-46604-exploited-by-kinsing.html