2024年Earth Kasha鱼叉式网络钓鱼攻击中ANEL后门的回归

本文详细分析了2024年Earth Kasha组织针对日本目标的鱼叉式钓鱼攻击活动,重点介绍了ANEL后门的重新出现、ROAMINGMOUSE投放器技术细节、ANELLDR加载器的反分析技术,以及NOOPDOOR高级后门的部署。

Guess Who’s Back - 2024年Earth Kasha鱼叉式钓鱼攻击中ANEL的回归

概述

趋势科技研究发现,自2024年6月起,针对日本个人和组织的新一轮鱼叉式钓鱼攻击活动正在进行中。该活动的一个显著特点是ANEL后门的重新出现,该后门在2018年前曾被APT10用于针对日本的攻击活动中,之后便销声匿迹。此外,已知被Earth Kasha使用的NOOPDOOR后门也在同一活动中被确认使用。基于这些发现,我们评估该活动是Earth Kasha新操作的一部分。

攻击活动详情

该活动大约在2024年6月被观察到,归因于Earth Kasha,采用鱼叉式钓鱼邮件作为初始访问手段。具体目标包括政治组织、研究机构、智库和国际关系相关组织的相关人员。与2023年主要利用边缘设备漏洞进行入侵不同,这次活动显示攻击者再次改变了其战术、技术和程序(TTPs)。这一转变似乎是由于目标从企业转向个人所致。此外,对受害者概况和分发诱饵文件名称的分析表明,攻击者对日本国家安全和国际关系相关话题特别感兴趣。

鱼叉式钓鱼邮件

活动中使用的鱼叉式钓鱼邮件要么来自免费邮箱账户,要么来自被攻破的账户。邮件包含一个指向OneDrive的URL链接,并附有鼓励收件人下载ZIP文件的日文消息。观察到的一些可能邮件主题包括:

  • 取材申請書 (采访申请表)
  • 米中の現状から考える日本の経済安全保障 (从美中现状看日本的经济安全)
  • [官公庁・公的機関一覧] ([政府及公共机构列表])

ZIP文件中的感染载体文件因时间和目标而异。

案例1:启用宏的文档

最简单的情况涉及带有嵌入宏的文档。当文档被打开且用户启用宏时,感染开始。该文档文件是一个名为ROAMINGMOUSE的恶意投放器。ROAMINGMOUSE可以提取并执行嵌入的ANEL相关组件(合法EXE、ANELLDR和加密的ANEL)。此过程观察到两种模式:一种涉及丢弃ZIP文件然后解压,另一种直接丢弃组件。

案例2:快捷方式+SFX+启用宏的模板文档

在其他情况下,ZIP文件不直接包含ROAMINGMOUSE,而是包含一个快捷方式文件和一个通过更改图标和扩展名伪装成文档的SFX(自解压)文件。

当打开快捷方式文件时,它会执行同一目录中伪装成.docx文件的SFX文件。

SFX文件将两个文档文件放入%APPDATA%\Microsoft\Templates文件夹。其中一个文件是无害的诱饵文档,另一个名为"normal_.dotm"的文件包含名为ROAMINGMOUSE的宏。当打开诱饵文档时,ROAMINGMOUSE作为Word模板文件自动加载。执行后的行为与案例1中观察到的相同。

案例3:快捷方式+CAB+启用宏的模板文档

还观察到与案例2类似的案例,其中快捷方式文件执行PowerShell,然后丢弃嵌入的CAB文件。

快捷方式文件包含PowerShell单行命令,该脚本在快捷方式文件的特定偏移处丢弃并提取嵌入的CAB文件,并执行诱饵文件。诱饵文件然后自动加载ROAMINGMOUSE作为模板文件,遵循与案例2相同的过程。

初始访问恶意软件

ROAMINGMOUSE

该活动中用于初始访问的启用宏的文档称为"ROAMINGMOUSE"。该文档作为ANEL相关组件的投放器。ROAMINGMOUSE的主要作用是在最小化检测机会的同时执行后续的ANEL有效载荷。为此,它实现了各种规避技术。

(基本)沙箱规避

案例1中引入的ROAMINGMOUSE变体要求用户启用宏。该变体包含一个功能,基于用户特定的鼠标移动启动恶意活动。这是通过实现一个响应"MouseMove"事件的函数来实现的,该事件在鼠标悬停在文档内嵌入的用户表单上时触发。

此功能确保除非发生特定的用户交互,否则不会开始恶意活动,这可能是作为一种沙箱规避技术实现的。然而,需要注意的是,许多商业和开源沙箱近年来已经解决了此类沙箱规避技术,使其效果降低。

自定义Base64编码的有效载荷

这是否属于规避技术尚有争议;但不可否认,它是ROAMINGMOUSE的独特功能之一。该技术在案例1的模式1中使用。ROAMINGMOUSE通过将包含ANEL相关组件的ZIP文件进行Base64编码并分成三部分嵌入,其中一部分使用自定义Base64编码表进行编码。然后ZIP文件中的文件被提取到特定路径。

该技术可能会减慢分析速度,但也可能是对现代自动解码VBA中嵌入Base64的工具的规避技术。此类工具近年来变得越来越普遍,因此这可能是一种对策。

HEX编码的有效载荷

在某些情况下,例如在案例1和模式2中,我们观察到ANEL相关组件直接丢弃而未经过Base64编码的ZIP文件处理。在这些情况下,每个组件都作为HEX编码字符串嵌入VBA代码中。

通过WMI执行

丢弃的文件包括以下ANEL相关组件:

  • ScnCfg32.Exe:通过DLL侧加载加载同一目录中DLL的合法应用程序
  • vsodscpl.dll:ANELLDR加载器
  • :加密的ANEL

ROAMINGMOUSE通过运行合法应用程序"ScnCfg32.exe"来执行ANEL,该程序通过DLL侧加载加载恶意DLL"vsodscpl.dll"。在此过程中,它使用WMI以"ScnCfg32.Exe"作为参数执行"explorer.exe"。

这种方法旨在避免安全产品的检测,这些产品更可能标记直接从文档文件(如Word文档)执行的进程(如"cmd.exe")。通过绕过"cmd.exe"并通过WMI运行程序,他们试图规避这些检测机制。

ANELLDR

我们一直在跟踪用于在内存中执行ANEL的独特加载器,我们将其命名为ANELLDR。ANELLDR最早在2018年被观察到。就其功能而言,本次活动中使用的版本与2018年使用的版本相同。除了其核心功能外,ANELLDR以使用反分析技术而闻名,如垃圾代码插入、控制流平坦化(CFF)和混合布尔算术(MBA)。本次活动中观察到的ANELLDR也实现了相同的技术。

尽管有一些关于ANELLDR的公开信息,但仍缺乏对其行为的全面描述。我们将详细解释加载器的功能。

ANELLDR通过合法应用程序的DLL侧加载激活以开始其恶意活动。一旦执行,它会枚举当前目录中的文件以搜索加密的有效载荷文件。值得注意的是,ANELLDR的解密逻辑在初始执行和后续执行之间有所不同。

在初始执行期间,ANELLDR计算目标文件最后四个字节的Adler-32校验和,以及文件大小减去0x34字节的数据(其中0x34字节包括0x30字节的AES材料和0x4字节的校验和,稍后解释)。然后比较校验和以检查目标文件是否是预期的加密文件。如果同一级别存在目录,则递归处理该目录中的文件。

一旦文件通过验证,解密过程开始。为此,文件的最后0x30字节分为两部分:前0x20字节用作AES密钥,剩余的0x10字节用作AES IV。ANELLDR然后使用AES-256-CBC解密加密数据(最多文件大小减去0x34字节)并在内存中执行有效载荷。

一旦ANELLDR成功解密加密的有效载荷,它会更新密钥和IV,使用AES-256-CBC重新加密有效载荷,并用新加密的数据覆盖原始加密的有效载荷文件。此过程中使用的AES密钥和IV基于执行文件的文件路径和硬编码字符串生成。这涉及使用自定义Base64编码、Blowfish加密算法和XOR操作,确保密钥和IV对运行环境是唯一的。由于用于加密的AES密钥和IV未嵌入文件中,因此必须知道有效载荷最初存储的确切文件路径才能解密从受感染环境获取的加密有效载荷文件。

第二阶段Shellcode

解密的数据是shellcode形式的,并在内存中执行。这第二阶段shellcode负责在内存中加载和执行最终有效载荷(一个DLL)。首先,第二阶段shellcode尝试通过调用第二个参数设置为ThreadHideFromDebugger (0x11)的ZwSetInformationThread API来规避被调试。接下来,它检索加密数据的地址。为此,它调用一个填充了NOP指令的独特函数以获取内存中的当前地址。获取此地址后,它计算加密有效载荷相关数据的位置,该位置紧接在此函数之后。

加密数据部分的结构如下格式:

ANELLDR使用16字节XOR密钥解码后续的加密数据。此过程的一个显著特点是,加密数据的每个字节都与整个16字节密钥进行XOR运算。换句话说,该算法对每个数据字节应用16次XOR操作,每次使用不同的密钥字节。

XOR操作后,使用Lempel–Ziv–Oberhumer (LZO)数据压缩算法解压缩数据。此外,计算有效载荷DLL的前4个字节和Adler-32校验和,并进行比较以验证数据是否正确解码和解压缩。如果完整性检查通过,则DLL在内存中动态初始化,并调用硬编码的导出函数以执行有效载荷。

ANEL

ANEL是一个32位基于HTTP的后门,自2017年左右被观察到,并在2018年前被认为是APT10使用的主要后门之一。ANEL在那段时间积极开发,2018年公开观察到的最后一个版本是"5.5.0 rev1"。然而,通过2024年的新活动,观察到版本"5.5.4 rev1"、“5.5.5 rev1”、“5.5.6 rev1"和"5.5.7 rev1”,以及一个新发现的版本信息被混淆的版本。

5.5.4 rev1

此版本的ANEL没有引入任何重大更改,但实现了一些小的修复和更新。一个显著的变化是移除了在HTTP Cookie头中存储错误代码并将其发送到C&C服务器的功能,该功能一直存在到版本"5.5.0 rev1"。此功能先前被识别为ANEL的检测点,因此其移除可能是为了规避检测。另一个更新涉及发送到C&C服务器的版本信息。现在它包括执行环境的操作系统架构信息。尽管ANEL是一个32位应用程序,但在64位操作系统上运行时,字符串"wow64"会附加到版本信息中 before being sent to the C&C server。

5.5.5 rev1

版本"5.5.5 rev1"也没有包含重大更改。一个显著的更新是在初始访问C&C服务器期间添加了更新本地IP地址的代码。

5.5.6 rev1 / 5.5.7 rev1

在版本"5.5.6 rev1"中,添加了一个新的后门命令。ANEL通过将接收到的命令字符串转换为大写并用xxHash进行哈希处理,然后与硬编码的哈希值进行比较来处理来自C&C服务器的命令字符串。在此版本中,实现了一个对应哈希值"0x596813980E83DAE6"的新命令。

此命令通过滥用CMSTPLUA COM接口(一种已知的UAC绕过技术)提供以提升权限(Integrity High)执行指定程序的功能。

另一方面,在"5.5.7 rev1"中,没有观察到额外的显著功能。

未知版本

在观察到版本"5.5.7 rev1"后,检测到一个版本信息被混淆的ANEL变体。在此实例中,版本信息字段包含一个Base64编码的字符串,解码后产生数据"A1 5E 99 00 E7 DE 2B F5 AD A1 E8 D1 55 D5 0A 22"。该数据与"wow64"连接并发送到C&C服务器。这一变化使得跟踪版本和比较功能变得更加困难。

后期利用活动

跟踪攻击者在安装ANEL后的活动显示,他们从受感染环境收集信息,例如截取屏幕截图和执行arp和dir等命令以收集网络和文件系统详细信息。在某些情况下,还安装了额外的恶意软件,特别是NOOPDOOR。

NOOPDOOR自2021年起被观察到,是一个具有更高级功能的模块化后门。它似乎是Earth Kasha使用的进一步有效载荷,特别是针对高价值目标。在此活动中,我们认为NOOPDOOR被部署在对攻击者特别感兴趣的目标上。

归因和洞察

基于对持续活动的分析,趋势科技评估,自2024年6月起观察到的使用ANEL的鱼叉式钓鱼活动是Earth Kasha进行的新操作的一部分。

归因于Earth Kasha基于以下原因:

  • 直到2023年初,Earth Kasha一直通过鱼叉式钓鱼邮件作为主要入侵向量针对日本的个人和组织进行活动。在TTPs或受害者概况方面没有显著不一致。
  • 被认为仅由Earth Kasha使用的NOOPDOOR也在本次活动中部署。
  • 如前所述,ANELLDR和NOOPDOOR之间存在代码相似性,表明涉及同一开发员或有权访问两者源代码的人。因此,在此活动中重用ANEL并不令人惊讶,并进一步支持了前APT10与当前Earth Kasha之间的联系。

结论

Earth Kasha的活动预计将继续发展,其工具和TTPs将更新。许多目标是个人,如研究人员,他们可能具有与企业组织不同级别的安全措施,使得这些攻击更难以检测。保持基本对策至关重要,例如避免打开可疑电子邮件的附件。此外,收集威胁情报并确保相关方知情也很重要。由于此活动被认为截至2024年10月仍在进行中,因此需要持续保持警惕。

入侵指标(IoC)

完整的IoC列表可在此处找到。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计