重生为Rust:AsyncRAT作者试图阻碍恶意软件分析
网络犯罪 • AsyncRAT是一个知名的恶意软件家族,自2019年以来一直受到安全公司的追踪。它是一种远程访问木马(RAT),旨在让网络犯罪分子远程控制受感染系统。它通常通过恶意链接或网络钓鱼活动传播,允许攻击者秘密执行命令、窃取数据和监控用户活动。由于其模块化架构,AsyncRAT可以通过附加功能进行定制,使其成为网络威胁的多功能工具。
用Rust重写
迄今为止已知的该家族一直是用C#编写的。有趣的是,我们最近遇到了一些用Rust编写的恶意软件样本。配置选项、CnC通信和支持的命令表明这是’AsyncRAT’的一个变种。虽然Rust在恶意软件开发中尚未广泛使用,但网络犯罪分子在其恶意软件活动和工具中采用Rust的趋势正在增长。选择Rust的原因包括:
- Rust近期的整体流行度
- 由于当前分析工具对Rust支持不足,使得用Rust生成的二进制文件逆向工程难度增加。像IDA库代码识别这样的功能对于Rust等语言还不够健壮
- 跨平台恶意软件开发机会
使用使逆向工程具有挑战性的语言并不是一个新趋势。虽然C++长期以来一直是恶意软件开发的首选语言,但使用编程语言来使逆向工程复杂化一直是一种长期流行的技术。十多年前,恶意软件作者就使用包含伪代码的Visual Basic二进制文件(VB字节码未被微软正式记录)来实现相同的目标。几年后出现了混淆的.NET二进制文件的使用。同样,在过去几年中使用了一堆较新的编程语言,包括Go、Nim、Node.js、Electron等。
功能
与基于C#的变种相比,新样本在功能上没有显示任何变化。该恶意软件能够安装插件、从中运行代码并保持自身持久性。
安装
根据恶意软件是否以管理员权限运行,样本要么安装计划任务,要么将自身复制到临时目录并通过批处理文件启动自身。与.NET变种相比,此步骤是相同的。
插件
插件不是作为磁盘上的二进制文件安装,而是存储在注册表中的HKCU\Software\C2C\Plugins\下,并由恶意软件动态加载和运行。同样,这种行为与基于.NET的变种相似。Sonicwall在2022年的博客中记录了这一点。
C2和配置
二进制文件包含一个CnC服务器列表,并根据成功或失败依次尝试连接。客户端和服务器之间的通信通过TLS进行。
CnC服务器列表是硬编码的。在我们分析的样本中,使用了三个服务器(见IOC列表)。连接端口也是硬编码的,如代码中观察到的。
初始CnC通信
- 硬编码的连接参数
命令
与功能齐全的.NET变种相比,Rust变种中仅实现了少数命令。支持的命令集如下:
savePlugin <plugin bytes>
- 将发送到注册表的插件保存sendPlugin <plugin-hash>
- 请求发送具有哈希值的插件plugin <plugin-hash>
- 如果已安装,执行由哈希标识的插件;如果未安装,则发送’sendPlugin‘请求插件 pong
- 在指定时间间隔后发送到服务器
发送系统信息
恶意软件收集以下信息并发送到服务器:
- HWID - 硬件ID,服务器可以跟踪客户端
- 操作系统信息
- 系统上安装的防病毒软件
- 是否以管理员身份运行
- 客户端版本(本例中为1.0)
- 性能信息(CPU使用率)
注意事项
有趣的是,我们分析的样本包含了调试字符串。这一事实暗示Rust变种正在积极开发中。与C#变种相比,支持的命令集较为基础也支持这一假设。我们观察到的样本尚未被其他安全供应商识别为’AsyncRAT’家族。
危害指标
eb12c198fc1b6ec79ea4b457988db4478ee6bc9aca128aa24a85b76a57add459
- Win32.Trojan.RustyAsyncRAT.B
服务器
- mohsar(.)ddns(.)net
- magic-telecom(.)ddns(.)net
- backup-tlscom(.)sytes(.)net