APT37使用VBA自解码技术注入RokRat
2021-01-14 11:10:32 Author: www.4hou.com(查看原文) 阅读量:206 收藏

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

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中。

本文翻译自:https://blog.malwarebytes.com/threat-analysis/2021/01/retrohunting-apt37-north-korean-apt-used-vba-self-decode-technique-to-inject-rokrat/如若转载,请注明原文地址


文章来源: https://www.4hou.com/posts/w2VR
如有侵权请联系:admin#unsafe.sh