Reborn in Rust: AsyncRAT作者试图阻碍恶意软件分析
AsyncRat是一个自2019年起就被安全公司追踪的知名恶意软件家族。这是一种远程访问木马(RAT),旨在让网络犯罪分子远程控制受感染系统。它通常通过恶意链接或钓鱼活动传播,允许攻击者执行命令、窃取数据并隐秘监控用户活动。由于其模块化架构,AsyncRat可以通过附加功能进行定制,使其成为网络威胁的多功能工具。
用Rust重写
迄今为止已知的该家族一直使用C#编写。有趣的是,我们最近遇到了一些用Rust编写的恶意软件样本。配置选项、CnC通信和支持的命令表明这是’AsyncRat’的一个变种。虽然该语言尚未广泛用于恶意软件开发,但网络犯罪分子在其恶意软件活动和工具中采用Rust的趋势正在增长。选择Rust的几个原因包括:
- Rust近期的整体流行度
- 由于当前分析工具缺乏对Rust的支持,使用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’家族。
危害指标(IOC)
eb12c198fc1b6ec79ea4b457988db4478ee6bc9aca128aa24a85b76a57add459 - Win32.Trojan.RustyAsyncRAT.B
服务器
- mohsar(.)ddns(.)net
- magic-telecom(.)ddns(.)net
- backup-tlscom(.)sytes(.)net