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

本文详细分析了AsyncRAT恶意软件家族最新出现的Rust语言变种,探讨了其技术实现、通信机制、插件系统以及与原始C#版本的对比,揭示了恶意软件作者使用新兴编程语言对抗安全分析的战术演变。

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的变种相似。这在2022年Sonicwall的博客中有记录。

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

相关文章

恶意软件
10/10/2024
通过BitBucket传播的恶意软件:揭露AsyncRAT
G DATA安全实验室病毒分析团队

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计