DinodasRAT,也称为XDealer,是一个用 C++ 编写的多平台后门,提供一系列功能。该 RAT 允许恶意行为者监视并从目标计算机获取敏感数据。该 RAT 的 Windows 版本被用于针对圭亚那政府实体的攻击,并被 ESET 研究人员记录为“水雉行动”。
2023 年 10 月上旬,在 ESET 发布后,我们发现了新的 Linux 版本的 DinodasRAT。样本工件表明,该版本(根据攻击者的版本控制系统为 V10)可能已于 2022 年开始运行,尽管第一个已知的 Linux 变体(V7)(尚未公开描述)可以追溯到 2021 年。在本次分析中,我们将讨论攻击者使用的一种 Linux 植入程序的技术细节。
初始感染概述
DinodasRAT Linux 植入主要针对基于 Red Hat 的发行版和 Ubuntu Linux。首次执行时,它会在可执行文件所在的目录中创建一个隐藏文件,格式为“.[executable_name].mu”。该文件用作一种互斥锁,以确保植入程序仅运行一个实例,并且仅在能够成功创建该文件的情况下才允许其继续。
后门保持持久性,启动方式如下:
后门主要代码
后门建立持久性并从以下步骤开始:
-
不带参数直接执行;
-
它首先在没有任何参数的情况下执行,这使得它通过从 Linux 调用“daemon”函数在后台运行。
-
通过利用 SystemV 或 SystemD 启动脚本在受感染的系统上建立持久性(将在下一节中详细介绍)。
-
使用父进程 ID (PPID) 作为参数再次执行自身;
-
新创建的进程(子进程)在父进程等待时继续后门感染。
-
这种技术不仅使 Dinodas 能够验证其是否正确执行,而且还使其更难以通过调试和监控工具进行检测。
受害者 ID 生成和持久性
在与 C2 服务器建立联系之前,后门会收集有关受感染机器和感染时间的信息,为受害者机器创建唯一标识符。值得注意的是,攻击者不会收集任何特定于用户的数据来生成此 UID。UID通常包括:
-
感染日期;
-
dmidecode 命令输出的 MD5 哈希值(受感染系统硬件的详细报告);
-
随机生成的数字作为ID;
-
后门版本。
唯一标识符的格式为:Linux_{DATE}_{HASH}_{RAND_NUM}_{VERSION}。
机器唯一标识符生成
接下来,植入程序将有关受害者 ID、权限级别以及任何其他相关详细信息的所有本地信息存储在名为“ /etc/.netc.conf ”的隐藏文件中。该配置文件包含当前收集的后门元数据。如果该文件不存在,Dinodas 将创建它,并遵循部分和键:值结构。
DinodasRAT 配置文件配置
它还确保对此文件或自身的任何访问(当读取其自己的文件路径时)不会更新stat结构中的“访问”时间,该结构包含文件系统中给定文件的访问时间戳。它通过使用带有“ -d ”参数的“ touch ”命令来修改此元数据来实现此目的。
替换原来的文件访问时间代码
修改后门可执行文件的访问时间
DinodasRAT Linux 版本利用 Linux 服务管理器的两个版本在受影响的系统上建立持久性:Systemd 和 SystemV。当恶意软件启动时,会调用一个函数来确定受害者正在运行的 Linux 发行版的类型。目前,植入程序根据其对“ /proc/version ”的读取,针对两种版本的发行版——RedHat 和 Ubuntu 16/18。但是,该恶意软件可能会感染任何支持上述任一版本的系统服务管理器的发行版。一旦系统被识别,它就会安装一个合适的初始化脚本,为 RAT 提供持久性。一旦网络设置完成并启动后门,就会执行此脚本。
SystemD服务注册
对于 RedHat、基于 RedHat 的系统和 Ubuntu,服务启动脚本用于持久性检查 chkconfig 二进制文件是否存在。这是一种指示初始化是使用 SysV 而不是 Systemd 完成的方法。如果不存在,植入程序将打开或创建脚本文件“/etc/rc.d/rc.local”,并将其自身附加到在系统初始化期间运行后门的执行链。如果存在,则暗示 SysV 路由,并且恶意软件在“/etc/init.d”中创建持久性脚本。
C2通讯
Linux 版本的 DinodasRAT 与 C2 的通信方式与 Windows 版本相同。它通过 TCP 或 UDP 进行通信。C2 域被硬编码到二进制文件中:
C2 服务器和端口被硬编码到植入程序中
DinodasRAT 有一个将信息发送回 C2 的定时间隔,尽管它对于所有用户或所有连接来说并不是固定的间隔。如果执行植入程序的用户是 root (EUID = 0),则植入程序不会等待将信息发送回 C2。对于配置设置为checkroot的非超级用户,“短”等待(默认)将等待两分钟,“长”等待将等待 10 小时。当从 C2 配置的 IP 地址之一远程连接到受感染的服务器时,就会触发“长时间”等待。
为了与 C2 服务器通信并发送任何信息,植入程序遵循具有许多字段的网络数据包结构,但以下是该结构的相关字段:
Dinodas网络数据包的简化版
以下是 DinodasRAT 识别的 C2 命令列表:
ID | 功能 | 命令 |
0x02 | 目录类 | 列出目录内容。 |
0x03 | 德尔迪尔 | 删除目录。 |
0x05 | 上传文件 | 将文件上传到C2。 |
0x06 | 停止下载文件 | 停止文件上传。 |
0x08 | 下载文件 | 下载远程文件到系统。 |
0x09 | 停止文件 | 停止文件下载。 |
0x0E | 交易更改 | 更改C2远程地址。 |
0x0F | 检查用户登录 | 检查已登录的用户。 |
0x11 | 枚举进程 | 枚举正在运行的进程。 |
0x12 | 停止进程 | 杀死正在运行的进程。 |
0x13 | 枚举服务 | 使用 chkconfig 并枚举所有可用的服务。 |
0x14 | 控制服务 | 控制可用的服务。如果1作为参数传递,它将启动一个服务,0将停止它,而2将停止并删除该服务。 |
0x18 | 交易ExShell | 执行 shell 命令并将其输出发送到 C2。 |
0x19 | 执行文件 | 在单独的线程中执行指定的文件路径。 |
0x1A | 交易代理 | 通过远程代理进行代理 C2 通信。 |
0x1B | 启动Shell | 放置一个外壳供威胁行为者与之交互。 |
0x1C | 重新启动Shell | 重新启动前面提到的 shell。 |
0x1D | 停止Shell | 停止当前 shell 的执行。 |
0x1E | 写Shell | 将命令写入当前 shell 或根据需要创建一个命令。 |
0x27 | 交易文件 | 下载并设置新版本的植入程序。 |
0x28 | 交易本地代理 | 发送“好的”。 |
0x2B | 连接控件 | 控制连接类型。 |
0x2C | 代理控件 | 控制代理类型。 |
0x2D | 传输模式 | 设置或获取文件传输模式(TCP/UDP)。 |
0x2E | 卸载 | 卸载植入程序并从系统中删除所有工件。 |
从受感染系统中卸载自身的命令
加密
Linux 版本的 DinodasRAT 还与 Windows 版本共享加密特性。为了加密和解密植入程序与 C2 之间的通信以及数据加密,它使用了 Pidgin 的libqq qq_crypt 库函数。该库使用CBC模式下的微型加密算法(TEA)来加密和解密数据,这使得在平台之间移植相当容易。Linux 植入程序还共享 Windows 版本中使用的两个密钥:
1 2 |
ForC2 encryption:A1 A118AA10F0 FA160671B308AA AF31A1 Forname encryption:A021A1 FA18E0 C1301F9FC0 A1 A0 A66FB1 |
基础设施
领域 | 知识产权 | 第一次见到 | ASN | 登记员 |
update.centos-yum[.]com | 199.231.211[.]19 | 2022 年 5 月 4 日 | 18978 | 名称.com 公司 |
在分析该植入程序时,DinodasRAT Linux 版本当前使用的基础设施似乎已启动并正在运行。我们确定了一个可解析 Windows 和 Linux 变体的 C2 域的 IP 地址。Windows 版本的 DinodasRAT 使用域 update.microsoft-settings[.]com,该域解析为 IP 地址 199.231.211[.]19。此 IP 地址也解析为 update.centos-yum[.]com,(有趣的是)它使用相同的操作系统更新子域和域模式。
受害者
在我们自 2023 年 10 月以来对这一威胁的遥测数据和持续监测中,我们观察到受影响最严重的国家和地区是中国、台湾、土耳其和乌兹别克斯坦。
所有卡巴斯基产品都会将此 Linux 变体检测为HEUR:Backdoor.Linux.Dinodas.a。
结论
2023 年 10 月,ESET 发表了一篇关于针对 Windows 用户的名为“水雉行动”的活动的文章。作为我们持续监控工作的一部分,我们发现 Jacana 操作者拥有并利用其能力使用一种新的、以前未知且未被检测到的 Linux DindoasRAT 变体感染 Linux 基础设施,其代码和网络妥协指标与 Windows 样本描述的重叠ESET。他们不会收集用户信息来管理感染。相反,收集特定于硬件的信息并用于生成 UID,这表明 DinodasRAT 的主要用例是通过 Linux 服务器获取和维护访问权限,而不是侦察。
该后门功能齐全,使操作员能够完全控制受感染的机器,从而实现数据泄露和间谍活动。
原文始发于微信公众号(河南等级保护测评):DinodasRAT Linux 植入程序针对全球实体
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论