DecoyMini 技术交流社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 漏洞模板
查看: 4264|回复: 0

[样本分析] 什么是 Orcus RAT?技术分析和恶意软件配置

[复制链接]

188

主题

35

回帖

30

荣誉

Rank: 9Rank: 9Rank: 9

UID
2
积分
354
精华
1
沃币
2 枚
注册时间
2021-6-24

论坛管理

发表于 2022-11-3 17:47:21 | 显示全部楼层 |阅读模式

我们的恶意软件分析师一直在寻找和研究各种恶意样本,这次我们在 ANY.RUN 在线恶意软件沙箱 中遇到了 Orcus RAT,并决定执行技术恶意软件分析。在本文中,你将了解此 RAT 如何存储和保护其配置以及如何在 Python 中编写内存转储提取器。

什么是 Orcus RAT ?


Orcus 是一种远程访问木马,具有一些独特的进程。 RAT 允许攻击者创建插件并提供强大的核心功能集,使其成为同类中相当危险的恶意程序。



Orcus RAT 恶意软件分析


恶意软件分析 的样本来自 ANY.RUN 数据库

SHA-256258a75a4dee6287ea6d15ad7b50b35ac478c156f0d8ebfc978c6bbbbc4d441e1

我们下载了 Orcus RAT 样本并在 DiE 中打开它以获取基本信息:



DiE 结果表明我们正在处理一个 .NET 示例,现在是开始对 Orcus 进行恶意软件分析的时候了。对于这个问题,DnSpy 就派上用场了。



Orcus RAT 类


我们的主要研究目标是找到 RAT 配置,第一个目标点是恶意软件类。在浏览它们时,我们遇到了一个名为 Orcus.Config 的命名空间,它包含以下类:

常量包括有关 Orcus RAT 使用的不同文件和目录的信息。例如,保存用户击键的文件的路径或示例使用的插件所在的目录。



设置包含用于解密恶意软件配置及其插件的包装方法。



SettingsData 是一个静态类,仅具有加密的恶意软件和插件配置字段。



Orcus 恶意软件资源


在 Settings 类中,我们看到了 GetDecryptedSettings 方法。稍后,它调用 AES.Decrypt。注意到它之后,我们可以假设 AES 算法加密了恶意软件配置:



AES 类是从 Orcus.Shared.Encryption 导入的,唯一的问题是程序集不包含这样的命名空间。要找到它,我们可以访问 Orcus RAT 资源:



我们似乎找到了一个程序集 orcus.shared,但是这个 costura 前缀是什么?为什么程序集以 .zip 扩展名存储?我们提取了这个资源并试图解压它。不幸的是,这是一个失误 —— 尽管有 .zip 扩展名,但该资源不是压缩类的。

在某些时候,这个程序集必须加载到应用程序中,我们决定寻找另一个发生这种情况的地方。当然,记住那个奇怪的 costura 前缀。很快我们就找到了包含 AssemblyLoader 类的 Costura 命名空间。它应该加载打包在 Orcus 资源中的程序集。



在 AssemblyLoader 类中,我们了解了如何从资源中加载程序集:



用 [url=https://gchq.github.io/CyberChef/#recipe=Raw_Inflate(0,0,'Adaptive',false,false)]CyberChef[/url] 重复这个操作后,我们得到了一个解压的程序集。



为避免任何第二个想法,我们将解压缩的程序集上传到 DnSpy。希望它能证实或否定我们对 Orcus RAT 使用的加密算法的假设。



此类包含用于加密和解密数据的方法,以及用于 AES 算法的初始化向量字段和具有密钥长度的字段。我们对加密过程并不真正感兴趣,但数据解密正是我们所需要的:



Orcus RAT 数据解密


我们发现了以下有关数据解密的信息:

  • 除了 AES 算法之外,Base64 还应用于加密数据
  • 确切的加密类型是 AES256-CBC
  • 我们确定了加密密钥的派生方式

让我们讨论这个阶段,这个阶段肯定很有趣。为了生成给定字符串的密钥,Orcus 使用 PasswordDeriveBytes 类,该类基于 Microsoft 的 PBKDF1 算法。恶意软件使用默认设置:这意味着生成密钥的迭代次数为 100,哈希算法为 SHA1。



你想知道它是如何完成的吗?这是一个场景:

前 20 个字节照常进行,然后将一个字节计数器添加到从第 20 个字节到最后一个字节的继承字符串的每个 hash 字节。考虑到这一点,我们在 Python 中实现了这一点:



知道正确的密钥后,可以使用 CyberChef 解密数据。



作为解码的结果,我们得到了 XML 格式的恶意软件配置。



自动化 Orcus RAT 的配置提取过程


现在,我们将编写一个 Python 脚本,其中包含必要的数据来解密和自动提取配置。在研究了一些样本后,我们看到带有加密数据的字符串一个接一个地位于另外两个特定 UserString 对象 (字符串 "case FromAdministrationPackage.GetScreen" 和 "klg_") 之间的 UserString 流中。

接下来,使用 dnfile 库,我们实现了一个简单的算法,它遍历 UserStrings 以查找上述字符串。并且需要注意的是,它们之间接收到的字符串的数量必须是三个:

  • 恶意软件的主要加密配置
  • Orcus 使用的插件的加密配置
  • 生成 AES 密钥的密钥



还可以始终使用 ANY.RUN 服务 来自动检索 Orcus RAT 配置。这是在短时间内分析恶意对象的一种更简单的方法。例如,沙盒已经从这个 Orcus 样本 中检索了所有数据,因此可以享受顺畅的研究。



结论


在本文中,我们简要分析了 Orcus RAT 并将其配置提取自动化。完整版的提取器可在链接中找到,所以不要忘记查看它!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|DecoyMini 技术交流社区 (吉沃科技) ( 京ICP备2021005070号 )

GMT+8, 2024-11-23 17:47 , Processed in 0.065542 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表