DinodasRAT,又称为XDealer,是一种用C++编写的多平台后门程序,提供了一系列的功能。这个RAT允许恶意行为者监视并从目标计算机中收集敏感数据。该RAT的Windows版本曾在对圭亚那政府实体的攻击中使用,并由ESET研究人员记录为Jacana行动。
2023年10月初,在ESET发布该公告后,我们发现了DinodasRAT的一个新的Linux版本。样本迹象表明,这个版本(根据攻击者的版本系统命名为V10)可能从2022年开始运行,尽管第一个已知的Linux变种(V7),即使到2021年,仍未公开描述。在这个分析中,我们将讨论攻击者使用的一个Linux植入物的技术细节。
初始感染概览
DinodasRAT Linux植入物主要针对基于Red Hat的发行版和Ubuntu Linux。当首次执行时,它会在与可执行文件相同的目录中创建一个隐藏文件,格式为“.[可执行文件名].mu”。此文件被用作一种互斥锁,以确保植入物仅运行一个实例,并且只有在能够成功创建此文件时才允许其继续。
后门建立了持久性,并按以下步骤启动:
-
无参数直接执行;
-
首先以无任何参数执行,通过从Linux中调用“daemon”函数使其在后台运行。
-
利用SystemV或SystemD启动脚本在感染系统上建立持久性(在下一节中详细介绍)。
-
再次执行自身,并将父进程ID(PPID)作为参数;
-
新创建的进程(子进程)继续进行后门感染,而父进程则等待。
-
此技术不仅使Dinodas能够验证其是否正确执行,而且使其在调试和监控工具中更难以检测。
受害者ID生成和持久性
在与C2服务器建立联系之前,后门会收集有关感染机器和感染时间的信息,以创建受害者机器的唯一标识符。值得注意的是,攻击者不会收集任何用户特定的数据来生成此UID。UID通常包括:
-
感染日期;
-
dmidecode命令输出的MD5哈希(受感染系统硬件的详细报告);
-
作为ID的随机生成数字;
-
后门版本。唯一标识符的格式为:Linux_{日期}{哈希}{随机数}_{版本}。
接下来,植入后门将所有关于受害者ID、特权级别和任何其他相关细节的本地信息存储在一个名为“/etc/.netc.conf”的隐藏文件中。此配置文件包含后门当前收集的元数据。如果文件不存在,则Dinodas会创建它,并遵循Section和Key:Value结构。
它还确保对该文件或对自身(在读取其自身文件路径时)的任何访问都不会更新stat结构中的“访问”时间,该结构包含文件系统中给定文件的访问时间戳。它通过使用“touch”命令和“-d”参数修改此元数据来实现。
后门执行文件中修改后的访问时间
利用两个Linux服务管理器版本在受影响系统上建立持久性
DinodasRAT的Linux版本利用了两个版本的Linux服务管理器来在受影响的系统上建立持久性:Systemd和SystemV。当启动恶意软件时,将调用一个函数来确定受害者运行的Linux发行版的类型。根据“/proc/version”的读取结果,目前有两种发行版的类型是后门程序的目标——RedHat和Ubuntu 16/18。但是,恶意软件可以感染任何支持上述任一版本系统服务管理器的发行版。一旦识别了系统,它就会安装一个适合的init脚本,为RAT提供持久性。此脚本在网络设置完成后执行,并启动后门。
对于RedHat、基于RedHat的系统和Ubuntu,用于持久性检查的服务初始化脚本检查是否存在chkconfig二进制文件。这是一种指示初始化是通过SysV而不是Systemd完成的方法。如果不存在,则后门将打开或创建脚本文件“/etc/rc.d/rc.local”,并将自身附加到系统初始化期间运行后门的执行链中。如果存在,则暗示使用SysV路线,并且恶意软件将在“/etc/init.d”中创建持久性脚本。
C2通信
DinodasRAT的Linux版本与Windows版本以相同的方式与C2通信。它通过TCP或UDP进行通信。C2域名被硬编码到二进制文件中:
DinodasRAT对将信息发送回C2的时间间隔进行了定时,尽管对于所有用户或所有连接,这不是一个固定的间隔。如果执行植入物的用户是root(EUID = 0),则植入物不会等待将信息发送回C2。对于配置设置为checkroot的非超级用户,它将等待两分钟进行“短”等待(默认),并等待十小时进行“长”等待。当从C2配置的IP地址之一远程连接到受感染服务器时,将触发“长”等待。
与C2服务器通信并发送任何信息,植入物遵循具有许多字段的网络数据包结构,但这里是结构的相关字段:
这是DinodasRAT识别的C2命令列表:
加密
DinodasRAT的Linux版本也与Windows版本共享加密特性。为了加密和解密植入物与C2之间的通信,以及数据的加密,它使用Pidgin的libqq qq_crypt库函数。此库使用Tiny Encryption Algorithm(TEA)在CBC模式下对数据进行加密和解密,这使得在不同平台之间轻松移植。Linux植入物还共享Windows版本中使用的两个密钥:
-
用于C2加密:A1 A1 18 AA 10 F0 FA 16 06 71 B3 08 AA AF 31 A1
-
用于名称加密:A0 21 A1 FA 18 E0 C1 30 1F 9F C0 A1 A0 A6 6F B1
基础设施
我们分析此植入物时,当前由Linux版本的DinodasRAT使用的基础设施似乎正在运行。我们确定一个IP地址解析为Windows和Linux变体的C2域。DinodasRAT的Windows版本使用的域是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发表了一篇关于名为Jacana的活动的文章,该活动针对的是Windows用户。作为我们持续监控工作的一部分,我们发现Jacana运营商拥有并利用他们的能力,在以前未知和未检测到的Linux DindoasRAT变体上感染Linux基础设施,其代码和网络指标与ESET描述的Windows样本重叠。他们不收集用户信息来管理感染。相反,收集硬件特定信息并用于生成UID,表明DinodasRAT的主要用例是通过Linux服务器获取和维护访问权限,而不是侦察。
后门是完全功能的,授予运营商对受感染机器的完全控制,实现数据外泄和间谍活动。
损害指标
基于主机:
-
8138f1af1dc51cde924aa2360f12d650
-
decd6b94792a22119e1b5a1ed99e8961
基于网络:
-
update.centos-yum[.]com(199.231.211[.]19)
这篇文章通过使用APT威胁分析的视角对DinodasRAT的行为和技术细节进行了深入的研究和解释。通过分析后门的感染过程、持久性、C2通信、加密技术以及基础设施和受害者情况,我们提供了对其运作方式的全面理解。
感谢您抽出
.
.
来阅读本文
点它,分享点赞在看都在这里
原文始发于微信公众号(Ots安全):DinodasRAT Linux 后门程序针对全球实体