关于ZAKER 融媒体解决方案 智媒短视频 合作 加入

APT37 使用 VBA 自解码技术注入 RokRat

2020 年 12 月 7 日,研究人员发现一个上传到 Virus Total 的恶意文档,文档内容显示某会议将在 2020 年 1 月召开,而文档的编译时间为 2020 年 1 月 27 日,主要攻击韩国政府,也就是说攻击发生已经 1 年了。

该文件含有一个嵌入的宏,使用 VBA 自解码技术来在 office 的内存空间中解码,无需写入硬盘中。然后嵌入 RokRat 变种到 Notepad 中。

根据注入的 payload 分析,研究人员认为该样本与 APT 37 有关。APT 37 是嘲笑的黑客组织,也被成为 ScarCruft、Reaper 和 Group123,自 2012 年开始活跃,主要攻击目标为韩国的受害者。

文档分析

攻击者使用的宏中 VBA 自解码技术是 2016 年首次出现的。其中,对恶意宏进行编码然后解码和动态执行。

图 1: 恶意文档

我们可以把概述看作是一种解压缩技术(unpacker stub),在打开文档时会执行。unpacker stub 会解压恶意宏,并将其写入 office 的内存中而非硬盘中。这样就可以绕过许多的安全机制。

图 2: 自解码技术

该文件使用的宏如图 3 所属。该宏从调用 "ljojijbjs" 函数开始,并根据结果来获取执行的不同路径。

图 3: 编码的宏

微软默认会禁用宏的动态执行,如果攻击者想要动态执行宏,就需要修改注册表的值来绕过 VB object model ( VBOM ) 。

为了检查是否绕过了 VBOM,需要看看 VBOM 是否被访问。"ljojijbjs" 函数的作用就是检查对 VBProject.VBComponent 的读访问。如果触发了异常,就说明 VBOM 需要被绕过。如果没有异常,就说明 VBOM 已经被绕过了,VBA 可以动态地提取宏。

图 4: 检查 VBOM 的访问

"fngjksnhokdnfd" 函数会被调用来绕过 VBOM。该函数会将 VBOM 注册表的键值设置为 1。

图 5: 修改 VBOM 注册表键

在绕过 VBOM 后,会调用 CreateMutexA API 来在受害者机器上创建一个 Mutex,并将其命名为 "mutexname"。这样其他攻击者就可以确保只感染受害者一次,但是在文件中没有发现有检查该 mutex 的痕迹。

图 6: Mutex 创建

最后,为了执行自解码过程,需要创建一个新的应用对象来打开自己,并在其中以不可见的方式加载当前文档。

图 7: 自打开

如果 VBOM 成功绕过了,就会调用 Init 函数,生成混淆格式的恶意宏。

图 8: 混淆的宏

然后,混淆的宏会被传递给 "eviwbejfkaksd" 来进行反混淆,然后在内存中执行。

图 9: 反混淆

为了对宏进行反混淆,需要定义 2 个字符串数组:

· StringOriginal:其中含有反混淆签的字符数组;

·StringEncoded:其中含有反混淆后的字符数组;

并未宏的反混淆定义了循环。对每轮循环,从混淆的宏中获取一个字符,并在 StringEncoded 中寻找其索引。找到索引后,在 StringOriginal 中寻找相等的索引,从中获取字符并加到新宏中。比如,编码的宏中的 "gm* bf" 会被解码为 "Option"。

图 10: 反混淆循环

然后就获取了 office 内存空间中执行的宏。为了执行解码的宏,会在调用主函数执行宏之前创建一个模块并写入该模块。

主函数定义了一个十六进制格式的 shellcode,目标进程就是 notepad.exe。然后,基于操作系统版本,创建一个 Notepad.exe 进程,并使用 VirtualAlloc 在其地址空间内分配内存。然后用 WriteProcessMemory 将 shellcode 写入分配的内存中,最后,调用 CreateRemoteThread 来在 Notepad.exe 的地址空间中执行 shellcode。

图 11: 反混淆宏

Shellcode 分析 ( RokRat )

注入 Notepad.exe 的 shellcode 会从 http://bit [ . ] ly/2Np1enh 下载一个加密的 payload,该链接被重定向到了一个谷歌网盘链接。

图 12 下载的 URL

注入 Notepad.exe 的 shellcode 是一个基于云的 RAT 的变种—— RokRat,APT 37 从 2017 年开始使用该 RAT。样本的编译时间是 2019 年 10 月 29 日。给 RAT 可以从受害者机器中窃取数据并发送到云服务,比如 Pcloud、Dropbox、Box 和 Yandex。

图 13: 编码的云服务

与之前的变种类似,该变种使用了许多反分析技术来确保没有运行在分析环境中。做的一些检查包括:

·检查与 iDefense SysAnalyzer 相关的 DLL、Microsoft Debugging DLL 和沙箱;

·调用 IsDebuggerPresent 和 GetTickCount 来识别调试器;

·检查 VMWare 相关的文件。

图 14: 反分析技术

该 RAT 具有以下功能:

·截屏;

图 15: 截屏

·收集系统信息,比如用户名、计算机名、BIOS 等;

图 16: 收集 BIOS 数据

·窃取数据并发送到云服务;

图 17: 数据窃取

·凭证窃取;

·文件和目录管理等。

总结

APT37 使用的感染向量主要是鱼叉式钓鱼攻击,本文中研究人员发现其使用了用自解码宏武器化了的 office 文档。自解码宏技术可以绕过许多静态检测机制,并隐藏其恶意文档的迹象。攻击活动中使用的最终 payload 是一个 RokRat RAT 变种,本例中 RokRat 被注入到了 Notepad.exe 中。

以上内容由"嘶吼RoarTalk"上传发布 查看原文
内容来源

觉得文章不错,微信扫描分享好友

扫码分享

热门订阅 换一批

查看全部