深入研究以马来西亚为重点的 APT 活动中使用的先进技术

我们的 Elastic Security 研究团队专注于针对马来西亚的 APT 活动中使用的先进技术。 了解幕后黑手、攻击方式、观察到的 MITRE 攻击®技术以及妥协指标。

阅读时间:9 分钟营销活动
深入分析以马来西亚为重点的 APT 活动中使用的先进技术

Elastic 安全情报与分析团队研究了多种类型的对手创新,最近重点关注了一个利用远程模板、VBA 代码规避和 DLL 侧加载技术的活动组。 根据代码相似性和共享的策略、技术和程序 (TTP),该团队评估此活动可能与一个名为 APT40 或 Leviathan 的中国组织有关。 该组织的宣传活动似乎以马来西亚 2020 政治危机为诱饵,瞄准马来西亚政府官员。

攻击剖析

为了启动高级持续性威胁 (APT) 活动,该组织很可能提供了 Microsoft Word 文档作为网络钓鱼诱饵附件。 诱饵中使用的图像(图 2)似乎是根据马来西亚博主分享的广播公告(图 1)制作的。 诱饵图像包含相同的广播时间,但删除了日期和演讲主题。 一旦打开此附件,就会在后台呈现一个诱饵文档,并执行以下操作:

  • 诱饵文件下载远程模板RemoteLoad.dotm
  • 远程模板执行 VBA 宏代码
  • VBA 宏代码解压并执行两个嵌入的 base64 编码的 DLL(sl1.tmp 和 sl2.tmp)到 c:\users\public\

这种技术称为模板注入,您可能还记得我们博客文章“防御 Gamaredon Group”中提到的这项技术。 这是对手用来绕过电子邮件网关等边界控制的有效方法。

两个嵌入式 DLL(sl1.tmp 和 sl2.tmp)相似且导出相同的函数名称:RCT 和 RCP。 第一个 DLL(sl1.tmp)用于下载名为 LogiMailApp.exe 的良性可执行文件以及相关库 LogiMail.dll, 第二个 DLL(sl2.tmp)用于执行 LogiMailApp.exe, 由于固有的 DLL 搜索顺序漏洞,它会自动尝试执行 LogiMail.dll,我们稍后会介绍。

文件名文件类型大小(字节)MD5编译时
LogiMailApp.exe可执行文件311656850a163ce1f9cff0367854038d8cfa7e2012-09-26 22:13:13+00:00
登录邮件动态链接库105984b5a5dc78fb392fae927e9461888f354d2020-06-03 04:08:29+00:00
sl1.tmp动态链接库3072ccbdda7217ba439dfb6bbc6c3bd594f82019-11-29 17:15:29+00:00
sl2.tmp动态链接库3072dbfa006d64f39cde78b0efda1373309c2019-11-29 21:23:44+00:00

表 1:被删除文件的元数据

由于行为特质,这一实现引起了我们研究人员的关注:

  • Microsoft Office 应用程序 winword.exe 加载 sl1.tmp 和 sl2.tmp DLL 时使用了 LoadLibraryA 方法,这种方法比较少见
  • 这些 DLL 运行显式命令或使用 CallWindowProcA 方法从 URL 安装有效载荷,这种情况似乎极为罕见
  • 执行后两个 DLL 都会被删除

嵌入式 DLL

嵌入的 DLL sl1.tmp 和 sl2.tmp 的功能非常有限 - 导出 RCP 和 RCT 函数。 RCP 函数实现 WinExec 方法来执行命令,其中 RCT 函数使用 URLDownloadToFileA 方法从指定的 URL 下载文件。

DLL 侧载后门

LogiMailApp.exe 由 sl1.tmp 下载,并由 sl2.tmp 执行,容易受到一种名为侧载的 DLL 搜索顺序劫持攻击,如果在同一目录中找到 LogiMail.dll,则会自动搜索并执行该病毒。 DLL 搜索顺序劫持的形式可与许多第三方软件应用程序一起使用。 在这种情况下,搜索顺序劫持被用来加载后门,该后门导出以下值得注意的功能:

对手创建的二进制文件 LogiMail.dll 导出函数 DllGetClassObject,其中包含此示例执行流程的关键逻辑:

  1. 将 AES 加密的第二阶段对象下载到 %TEMP%~liseces1.pcs
  2. 从硬编码字符串的 SHA256 中导出 128 位 AES 密钥和初始化向量
  3. 使用 ReadFile 和 CryptDecrypt 函数读取并解密内存中的 %TEMP%~liseces1.pcs
  4. 从磁盘中删除 %TEMP%~liseces1.pcs

第二阶段后门

解密后的第二阶段后门被映射到内存中,然后调用其原始入口点(OEP),从而绕过基于文件系统扫描的成功检测。

有效载荷暂存服务器和第二阶段基础设施都使用动态 DNS:

该有效负载支持以下功能:

  • 基本反调试检查
  • 系统和用户发现
  • 通过命令行执行
  • 文件发现、上传和下载
  • 通过运行注册表实现持久性
  • 使用相同的 AES 密钥加密 C2 流量

可能与 APT40/Leviathan 有关

今年早些时候,马来西亚计算机应急反应小组 (MyCERT) 发布了一份与针对该国的间谍活动有关的警告。 该报告列出了不同的 TTP,并包括多个样本和其他与 APT40/Leviathan 威胁组织一致的技术指标。

从总体上看,该样本延续了使用特定 TTP(例如远程模板、使用宏、使用 DLL 侧加载技术以及利用带有动态 DNS 的内存植入物进行命令和控制)瞄准马来西亚受害者的持续趋势。 更具体地说,该诱饵的第二阶段植入物共享唯一的字符串和 URL 引用,并包含与之前对 APT40/Leviathan 的报告相关的类似功能。 基于这些相似之处,我们的情报和分析团队有信心认为此活动与 APT40/Leviathan 有关。

植入字符串与 MyCERT 样本的相似之处:

  • /列表方向
  • /post_document
  • /post_login
  • 打开远程文件 %s 失败:%s
  • 打开管道失败 %s
  • 下载读取路径失败 %s
  • %02X-%02X-%02X-%02X-%02X-%02X
  • Software\Microsoft\Windows\CurrentVersion\Run
  • ntkd

结论

在这篇文章中,我们重点介绍了最近的一个样本,它很可能是一个高度组织化的对手所为。 像这样的活动小组值得大家关注,因为它们代表了漏洞利用后创新的更高成熟度水平。 他们今天的尖端 TTP 最终会在明天成为每个人的必修课;从这些事件中吸取教训很重要。

我们希望通过分享这些见解,能够帮助提高人们的认识,并继续致力于保护全球数据免受攻击。 为了进一步帮助组织,我们在下面添加了所有观察到的 MITRE ATT&CK ®技术和妥协指标 (IoC)。

MITRE ATT&CK ®技术

攻击指标 (IOC)

文件名和路径

Bubar Parlimen.zip
Bubar Parlimen.docx
RemoteLoad.dotm
C:\Users\Public\sl1.tmp
C:\Users\Public\sl2.tmp
C:\Users\*\AppData\Local\Temp\~liseces1.pcs
C:\Users\*\AppData\Local\Microsoft\Office\LogiMailApp.exe
C:\Users\*\AppData\Local\Microsoft\Office\LogiMail.dll

注册表项

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\ntkd

网址

hxxps[:]//armybar[.]hopto[.]org/LogiMail.dll
hxxps[:]//armybar[.]hopto[.]org/LogiMailApp[.]exe
hxxps[:]//armybar[.]hopto[.]org/Encrypted
hxxp[:]//tomema.myddns[.]me/postlogin
hxxp[:]//tomema[.]myddns[.]me/list_direction
hxxp[:]//tomema[.]myddns[.]me/post_document

IP地址

104[.]248[.]148[.]156
139[.]59[.]31[.]188

HTTPS 证书

74b5e317527c93539dbaaf84d6a61da92a56012a

哈希

523cbdaf31ddc920e5b6c873f3ab42fb791fb4c9d1f4d9e6a7f174105d4f72a1
ab541df861c6045a17006969dac074a7d300c0a8edd0a5815c8b871b62ecdda7
145daf50aefb7beec32556fd011e10c9eaa71e356649edfce4404409c1e8fa30
93810c5fd9a287d85c182d2ad13e7d30f99df76e55bb40e5bc7a486d259810c8
925f404b0207055f2a524d9825c48aa511199da95120ed7aafa52d3f7594b0c9
feca9ad5058bc8571d89c9d5a1eebce09e709cc82954f8dce1564e8cc6750a77
06a4246be400ad0347e71b3c4ecd607edda59fbf873791d3772ce001f580c1d3
77ef350639b767ce0a748f94f723a6a88609c67be485b9d8ff8401729b8003d2

雅拉

rule APT_APT40_Implant_June2020 {
   meta:
       version = "1.0"
       author =  "Elastic Security"
       date_added = "2020-06-19"
       description = "APT40 second stage implant"
    strings:
        $a = "/list_direction" fullword wide
        $b = "/post_document" fullword wide
        $c = "/postlogin" fullword wide
        $d = "Download Read Path Failed %s" fullword ascii
        $e = "Open Pipe Failed %s" fullword ascii
        $f = "Open Remote File %s Failed For: %s" fullword ascii
        $g = "Download Read Path Failed %s" fullword ascii
        $h = "\\cmd.exe" fullword wide
    condition:
        all of them
}

参考资料