前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Active APT

Active APT

作者头像
Khan安全团队
发布2022-01-17 14:03:11
8K0
发布2022-01-17 14:03:11
举报
文章被收录于专栏:Khan安全团队

为 Word 和 Excel 文档添加了狡猾的远程模板注入器;独特的 Outlook 群发邮件宏

ESET 研究人员发现了几个以前未被记录的攻击后工具,这些工具被高度活跃的 Gamaredon 威胁组织在各种恶意活动中使用。一种工具是针对 Microsoft Outlook 的 VBA 宏,它使用目标的电子邮件帐户向受害者 Microsoft Office 通讯录中的联系人发送鱼叉式钓鱼电子邮件。我们还进一步分析了能够将恶意宏和远程模板注入现有 Office 文档的 Gamaredon 工具。

链接到 Gamaredon 并在本博文中讨论的工具被 ESET 的产品检测为 MSIL/Pterodo、Win32/Pterodo 或 Win64/Pterodo 的变体。

Gamaredon 组织至少自 2013 年以来一直活跃。它对多次攻击负责,主要针对乌克兰机构,随着时间的推移,CERT-UA和其他乌克兰官方机构的几份报告证明了这一点。

在过去的几个月里,这个群体的活动有所增加,不断有恶意电子邮件攻击目标的邮箱。这些电子邮件的附件是带有恶意宏的文档,执行时会尝试下载多种不同的恶意软件变体。

在过去的几个月里,Gamaredon 使用了许多不同的编程语言,从 C# 到 VBScript、批处理文件和 C/C++。Gamaredon 使用的工具非常简单,旨在从受感染的系统中收集敏感信息并进一步传播。

与其他 APT 团体相反,Gamaredon 团体似乎不遗余力地试图保持低调。尽管他们的工具能够下载和执行可能更加隐秘的任意二进制文件,但该组织的主要关注点似乎是在试图窃取数据的同时尽可能快地在目标网络中传播。我们会错过什么吗?

背景

图 1 说明了 Gamaredon 活动中的典型妥协链。

图 1. 典型的 Gamaredon 妥协链

虽然最近的大多数出版物都关注鱼叉式网络钓鱼电子邮件及其包含的下载器,但这篇博文关注的是部署在这些系统上的攻击后工具。

Outlook VBA 模块

Gamaredon 组使用包含自定义 Microsoft Outlook Visual Basic for Applications (VBA) 项目的包。在调查恶意活动时,我们很少看到使用 Outlook 宏来传递恶意软件。

此恶意代码包以 VBScript 开始,如果 Outlook 进程正在运行,该脚本首先会杀死它,然后通过更改注册表值来消除 Outlook 中 VBA 宏执行的安全性。它还将恶意 OTM 文件(Outlook VBA 项目)保存到磁盘,其中包含宏、恶意电子邮件附件,在某些情况下,还保存了电子邮件应发送到的收件人列表。

接下来,它使用特殊选项/altvba <OTM filename>重新启动 Outlook,该选项会加载 Gamaredon VBA 项目。一旦收到 Application.Startup事件,恶意代码就会被执行。他们一直在以三种不同的方式使用此模块将恶意电子邮件发送到:

  • 受害者通讯录中的每个人
  • 同一组织内的每个人
  • 预定义的目标列表

虽然在未经受害者同意的情况下滥用受感染的邮箱发送恶意电子邮件并不是一种新技术,但我们认为这是第一个公开记录的攻击组使用 OTM 文件和 Outlook 宏来实现它的案例。

图 2. 创建恶意电子邮件的 Outlook VBA 脚本

基于此恶意 VBA 代码的“发送至联系人​​列表中的所有人”行为,我们认为该模块可能导致一些组织认为他们已成为 Gamaredon 的目标,而他们只是附带损害。例如,最近上传到 VirusTotal 的样本来自传统上不是 Gamaredon 的目标地区,例如日本,可以通过该模块的操作来解释。

如图 2 所示,VBA 代码构建电子邮件正文并将恶意文档附加到电子邮件中。我们已经看到.docx和.lnk文件都被用作附件。这些与 Gamaredon 最初的鱼叉式钓鱼活动中使用的恶意附件的内容非常相似。图 3 显示了由该恶意组件生成的电子邮件。

图 3. Outlook VBA 模块生成的电子邮件,带有包含远程模板的 Word 文档附件

该电子邮件包含英文和俄文文本。但是,如图 3 所示,俄语编码存在问题。这在该模块的更高版本中得到了修复——这是 Gamaredon 团队快速开发速度和明显缺乏对细节关注的另一个例子。

Office 宏注入模块 – CodeBuilder

我们分析了 Gamaredon 小组使用的恶意模块的不同变体,用于将恶意宏或远程模板注入已存在于受感染系统上的文档中。这是一种在组织网络中横向移动的非常有效的方式,因为文档通常在同事之间共享。此外,由于这些宏在打开文档时运行,因此在系统上持久保存是一种好方法,因为其中一些文档可能会在不同时间多次打开。

这些宏注入模块还具有篡改 Microsoft Office 宏安全设置的功能。因此,受影响的用户不知道他们在打开文档时再次破坏了他们的工作站。我们已经看到这个模块以两种不同的语言实现:C# 和 VBScript。

C#

与许多其他工具一样,该模块以 7z 自解压存档的形式提供。在里面,有一个受密码保护的 RAR 存档,其中包含一些文件。值得注意的是,有两个文本文件,一个用于 Word,一个用于 Excel,包含要插入目标文档的恶意宏的 VBA 源代码,以及负责查找和破坏现有文档的 .NET 程序集。如图 4 所示,程序集名称为 CodeBuilder。

图 4. 未混淆版本中的 CodeBuilder 函数

此 .NET 模块首先通过修改以下注册表值来减少各种文档类型的 Office 宏安全设置:

HKCU\Software\Microsoft\Office\<版本>\<产品>\Security\VBAWarnings HKCU\Software\Microsoft\Office\<版本>\<产品>\Security\AccessVBOM

它遍历Word和Excel <product> 值的所有可能的 Office <version> 值。然后,它会在连接到系统的所有驱动器上扫描具有有效 Word 或 Excel 文件扩展名的文档。对于包含 Windows 安装的驱动器,它仅扫描特定位置,即桌面和下载文件夹。对于其他人,它会扫描整个驱动器。恶意软件将每个找到的文档移动到AppData文件夹,使用Microsoft.Office.Interop对象将恶意 Word 或 Excel 宏插入其中,然后将文档移回其原始文件夹。在我们分析的样本中,注入的宏是简单的下载器。

批处理文件/VBScript

该模块的 VBScript 版本在行为上与 .NET 类似。主要区别在于,它不是在现有文档中插入恶意宏,而是在其中插入对远程模板的引用。

图 5. VBScript 使用 Document.AttachedTemplate 属性将远程模板的引用注入现有文档

此 VBScript 模块还打包在一个自解压存档中,包含一个批处理文件和两个 VBS 文件,负责迭代文档并将远程模板引用添加到它们。

模块更新

有趣的是,Palo Alto Networks 2017 年关于 Gamaredon 的博文中描述的一些自定义工具今天仍在更新和使用中。有些显示出显着的相似性,而另一些则是用不同的编码语言重写的。在受感染机器上下载和安装的最流行的工具可以大致分为两类:下载程序和后门程序。

下载者

他们的下载器有很多变体,其中大多数是用 C# 或 VBScript 编写的。本节将仅介绍其中两个最原始的变体;其他的并没有那么大,而且非常简单。

C# 编译器模块

这个 .NET 可执行文件与 Gamaredon 小组使用的许多其他工具类似,使用了诸如垃圾代码插入和字符串混淆之类的混淆技术。它在其主体中包含下载器的 base64 编码源代码。它解码该源代码并使用内置的Microsoft.CSharp.CSharpCodeProvider类直接在系统上编译它。它将生成的可执行文件放在现有目录中,并创建一个计划任务,该任务将每 10 分钟启动一次。从图 6 中可以看出,解码后的源代码中仍然有注释,说明 Gamaredon 的运算符明显草率。

编译器模块中包含的部分 C# 下载器源代码

GitHub项目模块

如图 7 所示,此 .NET 可执行文件使用 GitHub 存储库来获取和执行下载程序。该存储库现已消失,但我们能够在它仍然可用时下载它的副本。

图 7. .NET 模块负责下载和执行存储在 github.com 上的有效负载

该存储库包含一个文件 — readme.txt — 这是一个 base64 编码的 .NET 下载器可执行文件。 GitHub项目模块的作用就是下载这个文件,解码并执行。

后门——文件窃取者

虽然功能上存在一些变化,但这些模块的主要目的是枚举受感染系统上的所有文档并将它们上传到 C&C 服务器。这些文件窃取程序还可以从 C&C 服务器下载和执行任意代码。与 Gamaredon 小组使用的许多其他工具一样,它们有四种不同的编码语言:C/C++、C#、批处理文件和 VBScript。

C/C++

此变体是此处描述的 USBStealer 模块的继承者。尽管最新版本现在大不相同,但在整个开发过程中检查该模块的样本清楚地表明它源自相同的源代码。

一个很好地说明这种转变的示例是一个内部名称为Harvesterx64.dll的 64 位 DLL ,于 2019 年 6 月编译。它仍然具有旧变体中使用的大部分字符串,但也展示了两个仍在新变体中的改进. 首先,它现在通过名称散列解析 Windows API,其次,它使用基本文本文件而不是 SQLite 数据库来跟踪哪些文件已上传到 C&C 服务器。

该模块的行为非常简单:它扫描系统以查找本地和可移动驱动器上的新 Microsoft Office 文档,并将它们上传到 C&C 服务器。为了知道文档是否是新的,该模块在一个文本文件中为每个上传到服务器的文件保留一个 MD5 哈希值。这些 MD5 哈希不是基于文件内容,而是基于由文件名、文件大小和最后修改时间组成的字符串。模块的字符串存储在其 .data 部分中,使用简单的 XOR 密钥进行加密。它还能够从其 C&C 服务器下载和执行任意代码。

C#

这是 C/C++ 版本的 C# 重新实现。主要区别在于它还会每分钟对受感染的计算机进行屏幕截图。如图 8 所示,我们分析的版本有五个不同的线程,名字令人回味。

图 8. C# 后门线程创建例程

批处理文件/VBScript

此版本包含多个脚本,以批处理文件形式和 VBScript 编写。但是,最终目标是相同的:扫描系统以查找敏感文档。主要机制是在系统上搜索 Word 文档 ( *.doc* ) 并将其名称存储在文本文件中的批处理文件(参见图 9)。

图 9.包含后门文档文件扫描结果的示例inject.txt文件

该软件包还包含名为1.log、2.log、3.log、4.log和5.log的加密脚本文件。解密后,这些脚本是经过混淆的 VBScript 下载器,能够下载和执行任意代码。

网络基础设施

Gamaredon 组为其 C&C 服务器使用许多不同的域,包括免费和付费。免费域名主要是来自 No-IP 的 DDNS:hopto.org、ddns.net、myftp.biz,而付费域名则通过 REG.RU 注册商注册,包括.fun、.site、.space、.ru、.website和.xyz顶级域名。

他们不断更改其工具使用的域,但主要是在少数 ASN 上。仔细分析表明,他们为一小群受害者使用单独的域。请查看ESET 的 GitHub 帐户以获取 Gamaredon 组使用的广泛域列表。

执行质量

我们能够收集到 Gamaredon 小组在其整个活动中使用的大量不同的恶意脚本、可执行文件和文档样本。我们注意到其中有几个错误,尤其是在脚本中。当然不可能知道这些错误或疏忽背后的确切原因,但该小组生产的样本量及其快速发展可以解释这一点。一些 C# 编译器模块示例中包含的源代码中留下了注释,或者 Outlook VBA 模块生成的电子邮件中的俄语编码错误,这表明在发布和使用它们的许多工具之前没有进行严格的审查或测试在野外。

然而,虽然这些错误可能会降低他们工具的整体效率,但该组的快速执行和适应也有一些优势。攻击的数量和无情可能会在其目标中造成持续的恐惧状态。虽然代码非常简单,但一些技术,如脚本混淆,使得分析难以完全自动化,使分析人员的工作变得乏味。

他们的 GitHub 项目让我们得以一窥他们工具的快速发展。那里提交的代码清楚地显示了 C# 下载器的演变。第一个版本没有任何混淆的迹象;然后开发人员添加了不同的字符串混淆和垃圾代码,使分析更加困难。

在持久性方面,使用了几种不同的技术,但最常见的是计划任务、自动运行注册表项和利用 Startup 文件夹。尽管这些技术非常简单并且早已为人所知,但 Gamaredon 小组试图在每个系统上安装多个脚本和可执行文件并不断更新它们的策略,使防御者的生活大大复杂化。

结论

尽管他们的大多数工具都很简单,但 Gamaredon 小组还能够部署一些新奇的东西,例如他们的 Outlook VBA 模块。然而,由于它远非隐秘,从长远来看,它不是一个有能力的组织的对手。Gamaredon 拥有的各种工具可以非常有效地识别机器并了解可用的敏感数据,然后在整个网络中传播。这可能只是一种部署更隐蔽有效载荷的方法。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • Outlook VBA 模块
  • Office 宏注入模块 – CodeBuilder
    • C#
      • 批处理文件/VBScript
      • 模块更新
        • 下载者
          • C# 编译器模块
          • GitHub项目模块
        • 后门——文件窃取者
          • C/C++
          • C#
          • 批处理文件/VBScript
      • 网络基础设施
      • 执行质量
      • 结论
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档