这篇帖子由Hossein Jazi撰写撰写

2020年12月7日,我们确定了一个上传到病毒总数的恶意文件,这些文件总的来说,据称是可能用于针对韩国政府的会议要求。该文件中提到的会议日期为于2020年1月23日,与2020年1月27日的文件编译时间对齐,表明此次攻击差不多举行。

该文件包含一个嵌入式宏,它使用VBA自我解码技术在Microsoft Office的存储空间内解码,而不会写入磁盘。然后它将Rokrat的变种嵌入到记事本中。

根据注入的有效载荷,我们认为这个样本与APT37有关。这个朝鲜组织也被称为“ScarCruft”、“Reaper”和“Group123”,至少从2012年开始就很活跃,主要针对韩国的受害者。

在过去,这种宽度依赖于船舶办公文档(HWP文件)来定位受害者,因为它是韩国常用的软件。但是,在此博客中,我们描述了一种有趣的替代方法,通过自我解码的VBA Office文件提供。据我们所知,这是第一个适用于此APT组。

文档分析

actor在其宏中使用了VBA自解码概念,这是第一次引入2016.恶意宏被编码到另一个宏中,然后被解码并动态执行。

图1:恶意文档

我们可以考虑这种技术,在打开文档时执行的解包器存根。此unpacker存根解压缩恶意宏并将其写入Microsoft Office的内存而不被写入磁盘。这可以轻松绕过几种安全机制。

图2:自我解码技术

图3显示了本文档使用的宏。这个宏通过致电“ljojijbjs,并根据结果采取不同的执行路径。

图3:编码的宏

Microsoft默认禁用宏的动态执行,如果攻击者需要动态执行一个 - 这是此处的情况 - 威胁Actor通过修改其注册表值来绕过VB对象模型(VBOM)。

为了检查它是否可以绕过VBOM,它会查看VBOM是否可以访问。的“ljojijbjs”函数用于此目的,并检查对vbproject.vbcomponent..如果触发异常,则表示需要绕过VBOM(如果子句)。如果没有例外,则表示已绕过VBO,并且VBA可以动态提取其宏(else子句)。

图4:检查VB对象模型的可访问性

“fngjksnhokdnfd”用一个参数调用以绕过VBOM。此函数将VBOR注册表项设置为一个。

图5:修改VBOM注册表键

绕过VBO之后,它通过呼叫来调用另一个函数,该函数在受害者的机器中创建互斥锁CreateMutexAAPI调用并命名它“mutexname”.行为人使用这种方法来确保它只感染受害者一次。

图6:互斥锁创作

最后,为了执行自我解码过程,它需要通过创建新的应用程序对象来打开自己,并以不可见模式将当前文档加载。

图7:自开

如果已绕过VBOM,则该函数初始化调用并以模糊格式生成恶意宏内容。

图8:混淆了宏

在下一步中,这个模糊的宏被传递给“eviwbejfkaksd”要解除混淆,然后被执行到内存中。

图9:De-obfuscator

为了消除宏的混淆,定义了两个字符串数组:

  • StringOriginal在去混淆之前包含一个字符数组
  • Stringencoded.在去混淆后包含一个字符数组

已经定义了循环以使宏淘汰宏。对于每次迭代,它需要在混淆的宏中采用一个字符,并查找其索引Stringencoded..当它找到它的下标时,它会寻找它的等价下标StringOriginal,从中获取该角色并将其添加到新宏。举个例子“通用汽车*男朋友”由于编码宏将被解码为“选项”

图10:去混淆循环

在此过程之后,为我们提供了将在Microsoft Office的内存空间中执行的最终宏。为了执行这种解码的宏,它会在调用它之前创建一个模块并写入它主要函数来执行宏。

main函数定义了一个十六进制格式的shellcode,以及一个目标进程Notepad.exe.然后,根据操作系统版本创建Notepad.exe在其地址空间内使用VirtualAlloc.然后它将shellcode写入分配的内存中WriteProcessMemory.最后它调用CreateRemoteThread的地址空间内执行shellcodeNotepad.exe

图11:解除混淆的宏

ShellCode分析(Rokrat):

注入的shellcodeNotepad.exe下载加密的有效负载http://bit [] ly / 2 np1enh它被重定向到Google Drive链接。

图12:下载URL

下载的有效载荷是一种基于云的RAT病毒的变体,称为RokRat自此以来已被本集团使用2017.本样本编纂日期为2019年10月29日。众所周知,RAT病毒会从受害者的机器中窃取数据,并将其发送到云服务(Pcloud、Dropbox、Box、Yandex)。

图13:编码云服务


与之前的变体类似,它使用了一些反分析技术来确保它不在分析环境中运行。以下是一些检查:

  • 检查iDefense SysAnalyzer、Microsoft Debugging DLL和Sandboxies相关的DLL
  • 调用isdebuggerpresent和gettickcount来识别调试器
  • 检查VMWare相关文件
图14:反分析技术

此RAT病毒具有以下功能:

  • 捕获截图
图15:捕获截图
  • 收集系统信息(用户名,计算机名,BIOS)
图16:收集BIOS数据
  • 数据exfiltration到云服务
图17:数据exfiltration
  • 偷凭证
  • 文件和目录管理

有关此RAT病毒的更详细分析,请参阅来自的报告NCC集团思科踝关节

结论

APT37使用的最初感染载体是鱼叉式网络钓鱼,即行动者向被恶意文件武器化的目标发送一封电子邮件。我们分析的案例是少数几个没有使用Hwp文件(韩文Office)作为钓鱼文件,而是使用带有自解码宏的Microsoft Office文件的案例之一。这种技术是一种聪明的选择,它可以绕过一些静态检测机制,并隐藏恶意文档的主要意图。

这个威胁行动者使用的最后有效载荷是已知的自定义RAT (RokRat),该组织在以前的战役中使用过。在过去,RokRat被注入到cmd.exe中,而在这里他们选择了Notepad.exe。


妥协指标

Maldoc:
3C59AD7C4426E8396369F084C35A2BD3F0CAA3BA1D1A91794153507210A77C90

rokrat:
676AE680967410E0F245DF0B6163005D8799C84E2F8F87BAD6B5E30295554E08
A42844FC9CB7F80CA49726B3589700FA47BDACF787202D0461C753E7C73CFD2A
2A253C2AA1DB3F809C86F410E4BD21F680B7235D951567F24D614D8E4D041576
C7CCD2AEE0BDDAF0E6C8F68EDBA14064E4A9948981231491A87A277E0047C0CB