Rust重生的AsyncRAT:恶意软件作者如何对抗分析技术

本文详细分析了AsyncRAT恶意软件家族最新Rust变种的技术特性,包括其模块化架构、CnC通信机制、插件加载方式,以及Rust语言如何增加逆向工程难度,为安全研究人员提供最新的威胁情报。

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
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计