Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

admin 2022年3月9日16:01:51评论107 views字数 3770阅读12分34秒阅读模式

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)
摘要

在 2021 年 7 月 27 日至 12 月 1 日期间,Unit 42 研究人员观察到 Agent Tesla 和 Dridex 恶意软件样本激增,这些样本是被 Excel 插件 (XLL) 和 Office 4.0 宏释放的。我们发现 Excel 4.0 的宏释放程序主要用于释放 Dridex,而 XLL 下载程序 用于释放 Agent Tesla 和 Dridex。虽然恶意 XLL 文件已经为人所知很长一段时间,但它们在威胁环境中的再次出现则代表了一种新趋势。

我们观察到的 XLL 文件主要通过电子邮件传播,其中包含从 abcovid[.]tech 电子邮件地址发送的报价诱导内容,电子邮件主题为“INQUIRY”。这些电子邮件的目标包括以下行业的组织:制造业、零售业,联邦、州和地方政府,金融,药品,运输,教育以及美国、欧洲和东南亚的其他几个国家。此外,我们看到的一些恶意 XLL 文件滥用了名为 Excel-DNA 的合法开源 Excel 插件框架。

本文,我们先来看看 XLL 文件属性、被滥用的合法开源框架和最终的 Agent Tesla 有效载荷。下一部分我们将介绍其他感染流程,即提供 Dridex 样本的 XLL 和 Excel 4 (XLM) 释放程序。

Palo Alto Networks 客户可通过 Cortex XDR 或 WildFire 云传播的下一代防火墙安全订阅,获得针对此处讨论的攻击的保护。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)
感染链

下图中的流程图显示了我们在调查期间观察到的两个可能的事件链:

受害者收到一封带有恶意附件的电子邮件;

附件是一个恶意的XLL或XLM文件;

在XLL的情况下,当运行它时,它会:

释放一个中间投放程序,该投放程序又会释放一个 Agent Tesla 有效载荷;

从 Discord 下载 Agent Tesla 有效载荷;

从 Discord 下载 Dridex 有效载荷;

在 XLM 的情况下,运行时它会释放一个 VBS 下载程序,该下载程序从 Discord 下载并执行 Dridex 示例。

虽然 Agent Tesla 和 Dridex 感染链不一定由同一个攻击者传播,但它们似乎是感染载体新趋势的一部分。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

感染链

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)
什么是XLL ?

XLL 是 Excel 插件的扩展,实际上,XLL 只是一个普通的 PE-DLL 文件。XLL 文件扩展名与一个图标相关联,该图标与其他 Excel 支持的扩展名非常相似。反过来,普通用户不会注意到 XLL 和其他 Excel 文件格式之间的任何区别,并且可以被诱导打开它。这可能令人惊讶,但是Excel很乐意在双击时加载和执行XLL文件。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

XLL 图标

Excel 加载 XLL 后,会根据定义的 XLL 接口调用 XLL 文件的导出函数。其中两个接口函数很突出:xlAutoOpen 和 xlAutoClose。这些函数在加载程序激活或停用后分别被调用。这些函数可以用来加载恶意代码,类似于经典VBA宏中的Auto_Open和Auto_Close方法。

XLL 文件的一个缺点是它们只能由 Excel 以正确的位加载,例如,64 位 XLL 只能由 64 位版本的 Excel 加载。32 位版本也是如此。因此,恶意软件开发者必须依赖安装在受害者设备上的 Excel 版本。

与 VBA 宏一样,Excel 将警告用户执行插件引起的安全问题。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

尝试执行 XLL 文件时 Excel 发出警告

由于上述原因,XLL 文件对于寻求在受害设备上获得初步立足点的攻击者来说可能是一个不错的选择。攻击者可以将代码打包到 Excel 加载的 DLL 中,这反过来可能会误导不准备处理这种情况的安全产品。

下图显示了 PE 编辑程序中的 XLL 文件示例。在其他导出函数中,我们可以找到 xlAutoOpen 和 xlAutoClose 函数。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

PE 标头编辑程序 CFF Explorer 显示的 Excel 插件导出

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)
恶意 Excel 插件 (XLL) 下载程序

我们观察到带有以下 XLL 样本的恶意电子邮件:

SHA256:7a6f8590d4be989faccb34cd393e713fd80fa17e92d7613f33061d647d0e6d12

SHA256:fbc94ba5952a58e9dfa6b74fc59c21d830ed4e021d47559040926b8b96a937d0

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)
Excel-DNA

我们遇到的 XLL 示例使用了一个用于 Excel 插件开发的合法开源框架,称为 Excel-DNA。该框架有几个功能也适合恶意软件开发者。一种是无需“接触”磁盘即可将打包在 PE 资源中的压缩 .NET 程序集直接加载到内存中的功能。因此,尽管 Excel-DNA 是一个合法的框架,但它具有类似于恶意加载程序的功能,并且可以作为加载程序被滥用。

Excel-DNA 还有另一个属性可能会阻碍 Yara 的覆盖,甚至恶意软件开发者也可能不知道。出于某种原因,许多Excel-DNA样本有10000多个导出函数,其中大多数是没有任何有意义的函数。Yara PE模块导出函数解析限制只有8192个。因此,针对位于索引高于 8192 的某个导出名称的 Yara 规则将不会与样本匹配。

当我们查看 Excel-DNA XLL 的资源时,我们可以看到一个名为 __MAIN__ 的 XML 资源。此资源包含有关 Excel-DNA 加载哪个模块的信息。在我们的示例中,指定的模块将从名为 JACK 的资源中被解压缩。

资源将使用 LZMA 算法解压缩,然后加载到内存中。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

Excel-DNA 资源

我们已经创建了用于从Excel-DNA插件中提取这类程序集的Python代码。你可以在 Unit 42 GitHub 存储库中找到此脚本。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)
Jack 资源

加载的模块是一个简单的释放程序,加载模块后,将调用 AutoOpen 方法。此方法中的恶意代码将最终的有效载荷可执行文件放入 %AppData%service.exe 并执行它。值得注意的是,Jack 中包含的模块是可配置的,这意味着在其他版本中它可以下载有效载荷而不是释放它,以及释放一个真正的 Excel 模板并执行它。

配置如下图所示,其中包含以下选项:

bDown:下载有效载荷。

templateEnabled :释放并打开一个 Excel 模板。

有效载荷:包含要释放的有效载荷。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

使用AutoOpen方法反编译JACK 下载程序模块的代码,如dnSpy所示。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

下载程序配置变量和字节数组中包含的最终有效载荷

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)
最终有效载荷——Agent Tesla

SHA256:AB5444F001B8F9E06EBF12BC8FDC200EE5F4185EE52666D69F7D996317EA38F3

最终的有效载荷是一个经过混淆的 Agent Tesla 样本。在功能方面,Agent Tesla 被广泛记录。我们的示例使用 SMTP 协议将被盗数据泄露到电子邮件 phantom1248@yandex[.]com。下图显示了我们的 Agent Tesla 样本的反编译入口点。它的结构与其他 Agent Tesla 样本类似。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

Agent Tesla 的反编译主函数

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)
字符串解密

Agent Tesla 示例将其所有字符串以加密形式存储在大量字符中。

初始化时,示例将“大字节数组”的每个字节与硬编码字节 170 和“大字节数组”中字符的索引(修剪为字节大小)进行异或。接下来,样本通过将解密后的数组拼接成已知的偏移量和相应的长度来填充一个存储所有字符串的数组。例如,让我们检查偏移量 665 中的8个字节:

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

下面的代码将解密后的字节数组偏移量665处的8个字节分配给字符串数组的第53个成员。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

字符串分配代码

通过解密的字符串数组,我们可以看到Agent Tesla想要窃取的各种目标:

敏感的浏览程序信息和 cookie;

邮件、FTP 和 VPN 客户端信息;

来自 Windows Vault 的凭据;

记录的击键和屏幕截图;

剪贴板信息;

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)
Windows Vault

为了从 Windows Vault 窃取信息,Agent Tesla 开发者似乎将 PowerSploit 脚本转换为 C# 以构建 .NET 程序集。

它使用 P/Invoke 从 vaultcli.dll 库中调用 API 函数。首先,将调用 VaultEnumerateItems 以获取所有可用的库。接下来,将使用 VaultOpenVault 打开每个库。库打开后,将使用 VaultEnumerateItems 枚举包含的项目。最后,使用 VaultGetItem 读取项目的属性。Agent Tesla 将查询记录为自己的列表中的项目(手动反混淆代码如下图所示)。

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

用于记录提取的 Windows Vault 项目的反混淆 Agent Tesla 代码

下面是Agent Tesla 用来窃取信息的 Windows Vault GUID和相应的描述列表:

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)
总结

近期恶意软件激增,我们分析了使用 Excel 插件 (XLL) 的感染链,还描述了恶意软件开发者如何滥用合法的 Excel-DNA 框架来创建这些恶意 XLL。最后,我们简要描述了最终的 Agent Tesla 有效载荷以及它试图从受害者系统中窃取的信息,重点是 Windows Vault 数据。在最近的攻击中使用 Excel 插件可能表明攻击发展的新趋势。

在下一篇文章中,我们将描述另一个感染链,其中涉及使用 Excel 4.0 宏来传播 Dridex。

参考及来源:https://unit42.paloaltonetworks.com/excel-add-ins-malicious-xll-files-agent-tesla/

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

原文始发于微信公众号(嘶吼专业版):Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月9日16:01:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Excel插件的武程序化过程:恶意XLL文件和特斯拉代理案例研究(上)http://cn-sec.com/archives/823816.html

发表评论

匿名网友 填写信息