关键词:APT组织、鱼叉式网络钓鱼、DLL 侧加载

1. Earth Yako简介

2021年,研究人员观察到多起针对日本学术组织和智库研究人员的攻击。经过一系列的追踪溯源,研究人员确定了该组织指向已知的“Operation RestyLink”或“Enelink”活动,并将该组织命名为“Earth Yako”。

Earth Yako进行网络间谍活动时使用了此前未发现的恶意软件、战术、技术和过程(TTPs)以及基础设施。此组织在短时间内引入了许多新的工具和恶意软件,并频繁迭代和扩展攻击目标。由于已观察到的相关攻击最近发生于2023年1月,调查人员认为Earth Yako仍在活动,并将继续瞄准更多的组织目标。关于Earth Yako的调查成果已在日本东京举行的JSAC 2023上做了展示。

2022年1月以来,调查人员观测到Earth Yako除了持续对日本学术界和智库的研究人员进行了攻击外,还有一些疑似针对台湾省的攻击行为。

图1:Earth Yoke组织活动时间线

尽管Earth Yako一直在持续瞄准研究人员,但其部署和攻击的关注领域却随着时间的推移而有所变化。在2022年早期,他们的主要目标是与经济安全相关人员,随后将目标扩展到其他行业,如能源或公共领域。

在攻击活动中,Earth Yako使用鱼叉式钓鱼邮件链接进行初始访问,通过伪装成私人或公共会议邀请的邮件进行钓鱼,最终在目标系统中下载恶意软件。钓鱼邮件中的URL会下载一个压缩文件(.zip)或光盘镜像文件(.iso),其中包含一个用于下载另一个payload的恶意快捷方式文件(.lnk)。

该组织使用的恶意软件及工具如下:

  • MirrorKey: 一种在内存中动态加载链接库(DLL)的加载器

  • TransBox: 滥用Dropbox API的后门

  • PlugBox: 基于Dropbox API的具有一些功能的后门

  • Dulload: 通用的加载器名称

  • PULink: 一个ShellBox的C++/CLR版下载器,具有实现持久性的能力

  • ShellBox: 另一个基于Dropbox API的分段器,用C#编写

2. 案例一

Earth Yako使用鱼叉式钓鱼邮件进行入侵,电子邮件正文中的URL会诱使受害目标在单击时下载一个.zip或.iso文件。其中包含的.lnk文件会诱导目标下载恶意的Word模板。在一些情况下,当打开URL后,程序会通过侧加载dll感染Cobalt Strike。在本例中将介绍一些Earth Yako在2022年部署新的恶意软件的事件。

案例一是在2022年3月观察到的,针对日本一所学术机构的研究人员。攻击者在入侵目标系统后,按照以下流程部署了MirrorKey和TransBox:

图2:案例一中MirrorKey和TransBox的执行流程

(1)MirrorKey

我们在被感染的系统中发现了名为OCLEAN.DLL的MirrorKey文件。这个DLL文件是由一个合法的微软应用程序OFFCLN.EXE加载的,在执行OFFCLN.EXE时会在相同目录下加载OCLEAN.DLL。在加载后,MirrorKey会在相同目录下查找由微软签名的没有恶意代码的DLL文件DWINTL.DLL,DWINTL.DLL的代码段看起来是无害的,但是其数字签名已被滥用,其中嵌入了加密的载荷用于漏洞MS13-098或CVE-2013-3900利用。CVE-2013-3900是一个在Authenticode 签名校验时未正确验证可执行文件(PE)数字证书的漏洞,攻击者可以利用该漏洞在合法数字签名的末尾嵌入任意数据。

图3:DWINTL.DLL是微软公司签发的合法数字签名

图4:漏洞CVE-2013-3900利用嵌入的数据

案例一嵌入了两种类型的数据:加密的有效负载和用于解密的数据。MirrorKey 会解析嵌入数据末尾的数据并生成载荷的解密密钥。一旦成功生成,该密钥将使用 AES128-ECB 解密嵌入的有效负载。

图 5 有效载荷解密的密钥生成逻辑

(2)TransBox

解密后的有效载荷是一个名为FILETRANDLL.dll的动态链接库(DLL),由MirrorKey动态加载到内存中,在调用导出函数“Start_”时开始执行恶意活动。

图 6 嵌入在DLL文件中的原始文件名

分析表明,这个DLL是一个使用了Dropbox API的后门程序,主要用于文件和数据盗取。过去尚未发现类似的恶意软件,其运行步骤如下:

第一步:上线

在执行时,TransBox会为受感染用户生成一个唯一的ID(受害者ID),该ID由四个元素计算而来:被感染终端域名的CRC32,用户名的CRC32,主机名的CRC32,以及卷序列号的前4个字节(DWORD)。

然后,从受感染的计算机中收集系统信息,例如与驱动器相关的信息、主机名、操作系统版本和IP地址。使用zlib进行压缩后,用1字节的XOR密码进行加密,并上传到攻击者的Dropbox账户。研究人员观测到,攻击者在上传信息到URL hxxps://content[.]dropboxapi[.]com/2/files/upload时指定了一个Dropbox //.jpg的目标文件路径。

图 7 check-in过程中的HTTP请求

第二步:文件上传

TransBox可以将存在于特定目录下的特定扩展名的文件上传到Dropbox。目标目录和文件扩展名如下:

目标目录:

  • l%USERPROFILE%\\Desktop

  • l%USERPROFILE%\\Documents

  • 所有的磁盘(除去A磁盘和CD-ROM)

扩展名:

  • .7z

  • .doc

  • .docx

  • .jsd

  • .jst

  • .jtd

  • .odt

  • .pdf

  • .ppt

  • .pptx

  • .rar

  • .rtf

  • .xls

  • .xlsx

  • .zip

以下系统目录会被排除:

  • lC:\\Program Files

  • lC:\\Program Files (x86)

  • lC:\\PerfLogs

  • lC:\\Windows

  • lD:\\Program Files

  • lD:\\Program Files (x86)

  • lE:\\Program Files

  • lE:\\Program Files (x86)

  • %APPDATA%

TransBox还实现了另一个功能,可以将文件的修改日期记录在.ini格式的文件中,以便在文件更新时再次上传目标文件。该.ini文件在文件路径中创建,并以格式%LOCALAPPDATA%\\sxda.xso保存信息。

图8 用作数据库的ini文件

第三步:接收命令

TransBox还可以通过Dropbox API接收后门命令。为了接收命令,会将目标文件路径指定为 //abox_.cxt,并发送GET请求到hxxps://content.dropboxapi[.]com/2/files/download 的URL。

图9 来自命令和控制(C&C)服务器的响应格式

基于攻击者的后门命令,TransBox可以执行以下功能:

  • 更改文件上传大小限制和分块大小

  • 下载DLL并在内存中执行

  • 在Chrome或Firefox等浏览器中上传与证书相关的文件

  • 添加扩展以获取更多的信息

  • 上传指定文件或在指定目录下上传具有指定扩展名的文件

  • 显示指定目录下的文件和目录的列表

3. 案例二

案例二发生在2022年6月左右,同样针对日本学术机构的研究人员。在这个案例中,研究人员观察到了案例一中使用的MirrorKey变体和同样使用了Dropbox API的PlugBox。与案例一相似,攻击者侵入目标系统并安装了这些恶意软件。

图10 案例二中MirrorKey和PlugBox的执行流程

(1)MirrorKey(使用Tiny加密算法的变体)

在这个案例中观察到的MirrorKey变种在被感染的系统中的文件名为GTN.dll。这个DLL的加载方式类似于案例一使用的DLL侧加载过程。这一次滥用了存在于相同目录中合法的谷歌应用程序GoogleToolbarNotifier.exe。与先前的MirrorKey变体类似,它搜索存在于同一目录中的espui.dll,该文件利用CVE-2013-3900漏洞嵌入加密负载。不同在于这个变种使用了Tiny Encryption Algorithm (TEA)来解密负载(而不是AES)。此外,该代码与3月份观察到的MirrorKey变种完全不同。虽然它也可以被认为是不同的加载器,但它却与案例一中观察到的变体部分共享TTP和代码。

(2)Plugbox

解密后的有效载荷是一个名为LoadPlgFromRemote.dll 的 DLL。该 DLL 由 MirrorKey 动态加载到内存中,调用导出函数 Run 开始执行。

图11 嵌入到dll的原始名称

分析表明,这个DLL和TransBox一样,是一个基于Dropbox API的后门。

第一步:安装

在执行时,它通过复制以下文件开始安装过程:

  • %windir%\\SysWOW64\\cttune.exe-> %localappdata%\\NVIDIA\\cctune.exe

  • \\GTN.dll-> %localappdata%\\NVIDIA\\DWrite.dll

  • \\espui.dll-> %localappdata%\\NVIDIA\\espui.dll

此外,它还会将合法的dll复制到当前工作目录并加载这些dll。这个过程对于恶意活动来说并没有实际意义,仅仅是使PlugBox看起来无害。复制的合法dll如下所示:

  • %windir%\\SysWOW64\\migration\\TableTextServiceMig.dll

  • %windir%\\SysWOW64\\migration\\msctfmig.dll

  • %windir%\\SysWOW64\\migration\\WMIMigrationPlugin.dll

  • %windir%\\SysWOW64\\migration\\imjpmig.dll

  • %windir%\\SysWOW64\\migration\\imkmig.dll

  • %windir%\\SysWOW64\\migration\\tssysprep.dll

  • %windir%\\SysWOW64\\migration\\cosetup.dll

第二步:上线

接下来,攻击者通过使用硬编码的API密钥登录到他的Dropbox账户。虽然TransBox嵌入了访问令牌,但PlugBox没有。PlugBox嵌入了认证令牌和刷新令牌,并以此来获取访问令牌,这些都需要使用Dropbox over API实现。

图12 通过使用刷新和认证令牌获得访问令牌

然后,当用户的数据被上传到Dropbox时,它会为每个受感染用户生成一个用于识别的受害者ID,步骤如下:

  • 获取%temp%的文件路径,用"+"替换"\\"

  • 获取被感染机器的ProcessorId

  • 获取受感染机器主板的序列号

  • 将上面的字符串与"\\r\\n"连接起来,计算出SHA256哈希值

  • 提取SHA256哈希值的前32字节作为受害者ID

然后,它向URL hxxps://content[.]dropboxapi[.]com/2/files/upload发送HTTP POST请求,并将//Victim ID>_{1,3}.dat作为上传目标路径。

PlugBox以明文形式上传以下用户信息:

  • %temp%的文件路径(用"+"替换"\\")

  • 被感染机器的ProcessorId

  • 受感染机器主板的序列号

第三步:接收命令

为了接收后门命令,PlugBox会向URL hxxps://content.dropboxapi[.]com/2/files/download发送HTTP GET请求,其中//.cfg被作为要下载的文件路径。

PlugBox支持的功能如下:

  • 修改接收命令的时间间隔

  • 下载加密的DLL,用TEA解密,然后在内存中执行

  • 执行任意命令

4. 案例三

案例三发生在2022年6月和7月左右,针对日本某学术机构的研究人员。本案例中使用了PULink作为Dropper 和名为ShellBox的新型恶意软件。在调查过程中,研究人员发现了一个包含目标受害者的姓名ISO文件,这表明攻击者可能试图通过电子邮件让受害者下载这个ISO文件来感染系统。

图13 .iso中的文件列表

该ISO文件包含一个带有双重扩展名的EXE文件、三个dll (MSVCR100.DLL是无害的)文件和一个诱饵文件。EXE文件是一个合法的Word应用程序,但会加载同一个目录中的wwlib.dll。一旦执行,EXE文件就会启动恶意程序。

图14 案例三中PULink和ShellBox的执行流程

(1)Dulload

加载的第一个DLL文件是wwlib.dll,它是一个用c++ /CLR编写的简单加载器,用于加载同一个目录下的Wordcnv.dll文件,并调用MS_word.release_file导出函数。

图15 调用“Wordcnv.dll”导出的方法

(2)PULink

Wordcnv.dll中的导出函数用于安装载荷和组件。在该函数中,PULink使用AES128-CBC解密两个内部嵌入资源数据,并将其放置在% APPDATA%\\ Microsoft \\ Intel中,文件名分别为igfxxe.exe和igfx.dll。

图16 调用"release_file"方法

AES密钥和IV通过以下方式生成:

  • 计算代码中硬编码字符串的MD5散列值

  • 将其转换为大写十六进制字符串

  • 用UTF-8编码第2步生成的字符串(->作为AES密钥)

  • 在第2步中生成的字符串的第9个字符之后剪切掉16个字符,然后用UTF-8编码(->变成IV)

之后加载器会在启动文件夹中创建一个快捷方式文件以实现持久性,该文件包含了对两个释放文件执行的命令行,如下所示:

%appdata%\\Microsoft\\Intel\\igfxxe.exe run                                %appdata%\\Microsoft\\Intel\\igfx.dll 0

C:\\AppData\\Local\\Intel\\Games\\123;

要理解这个命令行的工作原理,需要查看igfxxe.exe。igfxxe.exe是Intel提供的合法应用程序GfxDownloadWrapper.exe的重命名可执行文件。对这个EXE文件的分析表明,它的设计目的是调用特定的导出函数ApplyRecommendedSettings。这种技术已经在2020年被安全社区研究人员bohops报道过。

图17 igfxxe.exe中根据参数调用指定的DLL的方法

(3)Shellbox

命令行中的igfx.dll是使用C++编写的滥用Dropbox API的分段器(stager)。ShellBox除了使用Dropbox API之外,与之前观察到的案例完全不同。ShellBox会使获取Dropbox API访问令牌的过程变得复杂,从而使安全分析师的分析更加困难。ShellBox没有访问令牌或刷新令牌,而是首先访问了特定的GitHub存储库,以获取托管Dropbox访问令牌的URL。硬编码的存储库是:hxxps://github[.]com/lettermaker/topsuggestions/blob/main/README.md

图18 尝试从硬编码的GitHub库中获取第二阶段的URL

在从该存储库下载内容之后,ShellBox通过正则表达式提取加密字符串,并使用与PULink中相同的AES解密逻辑对其进行解密。在2022年11月左右,我们确认该字符串已嵌入指定的GitHub存储库中。解密后,可得URL是hxxp://45[.]32[.]13[.]214/readme_v1.1.txt。

图19 托管在GitHub存储库中的文件(截至2022年11月)

不幸的是,在研究人员调查期间,解密第二阶段的URL已经无法访问,因此无法检索其内容。然而,通过分析ShellBox的代码,可以假设这个URL托管了一个Dropbox访问令牌,该令牌以类似的方式使用Base64和AES加密。

图20 从第二阶段URL获取访问令牌

ShellBox接着通过指定/d1/ml为文件路径从Dropbox下载AES加密的.NET程序集,使用和之前相同的逻辑进行解密,并使用Assembly.Load方法在内存中执行。

图21 下载并执行经过AES加密的.net程序集

(4)Github账户的滥用

研究人员调查了在这个案例中观察到的 GitHub 账户(用户名为“lettermaker”),发现该账户自大约 2022 年 6 月以来一直处于活动状态。由于只存在一个存储库,可认为它是专门为这个攻击活动创建的。此外,研究人员还在嵌入加密 URL 的存储库的历史提交中进行检查,发现 URL 的路径从 6 月起已经发生了变化。

图22 在2022年6月可能使用的URL

该存储库的提交日志显示攻击者是在UTC+9的环境中工作。但是需要注意的是,这个信息很容易被伪装,可能是一个虚假的线索。

图23  UTC+9时区的提交日志

5. 可能的归因

下图总结了截至2023年1月Earth Yako的特征:

图24 Earth Yako 的钻石模型

(1)技术视角

根据其武器库和TTP,研究人员认为Earth Yako可能与一些现有的组织有关。但是,由于仅仅观察到Earth Yako与以下组织之间的部分技术有所重叠,只能说指出这并非最终的归因。Earth Yako与以下组织的特征存在重叠相似:

  • Darkhotel

Darkhotel(又名DUBNIUM)是一个过去经常瞄准日本组织的威胁组织。Earth Yako的初始访问方法与Darkhotel的程序相似,在其他报告中已得到确认。

  • APT29

APT29,也被称为IRON RITUAL、IRON HEMLOCK、NobleBaron、Dark Halo、StellarParticle、NOBELIUM、UNC2452、YTTRIUM、The Dukes、Cozy Bear和CozyDuke,是已知的针对西方政府机构的威胁组织。2022年,APT29使用ISO和LNK文件进行初始访问,类似于Earth Yako的TTPs。还有报道称APT29滥用Dropbox API作为恶意软件的C&C服务器。然而,APT29恶意软件的代码本身与Earth Yako相关的恶意软件(TransBox、PlugBox和ShellBox)的代码有较大差异。

(2)其他注意事项

在归因溯源的过程中,除了发现技术上的相似之外,还要考虑事件背景。Earth Yako在围绕经济、能源领域攻击日本的学术和研究机构以及围绕俄乌冲突等国际事务进行攻击的行为上。近年来,许多威胁组织一直在使用LODEINFO恶意软件进行攻击,而Earth Yako的攻击和使用LODEINFO进行的攻击具有相似之处,并且已经有报道称,Earth Yako针对的目标也是基于LODEINFO恶意软件进行攻击的。

6. 结论

自2022年以来,Earth Yako一直在积极使用新的武器库和TTPs(战术、技术和过程)。虽然攻击的目标因时间而异,但普遍认为日本的学术和研究部门是其攻击的主要目标。2022年11月,日本国家警察局和网络安全中心已经发出了警惕这些攻击的公告。近期Earth Yako渐渐转向攻击安全措施防范能力较弱的个人。这种针对个人而非机构整体的转变突出体现在针对和滥用Dropbox的攻击中,因为该服务在该地区被认为是个人使用的流行服务,而非机构使用的服务。

应该注意的是,Earth Yako一直在根据目标国家的重大议题主动变换其目标和方法。为了缓解针对性攻击所带来的风险和影响,不仅需要关注特定的攻击方法、恶意软件和威胁行为者,还需要收集更广泛的信息,实施持续监控和反制措施,并检查自身尚存的攻击面。研究人员认为Earth Yako的攻击仍在持续进行,因此继续保持警惕是必要的。

附录 攻击指标

SHA256

Detection

f38c367e6e4e7f6e20fa7a3ce0d8501277f5027f93e46761e72c36ec709f4304Trojan.Win32.MIRRORKEY.ZJJH
bdc15b09b78093a1a5503a1a7bfb487f7ef4ca2cb8b4d1d1bdf9a54cdc87fae4TrojanSpy.Win32.TRANSBOX.ZJJH.enc

相关域名和IP:

driveshoster[.]com

disknxt[.]com

45[.]32[.]13[.]214

hxxps://github[.]com/lettermaker/topsuggestions/blob/main/README.md

参考链接:https://www.trendmicro.com/en_us/research/23/b/invitation-to-secret-event-uncovering-earth-yako-campaigns.html

编辑|孙书樵

审校|何双泽、王仁

本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。

声明:本文来自国家网络威胁情报共享开放平台,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。