大规模Earth Preta 钓鱼攻击分析
2022-11-25 12:0:0 Author: www.4hou.com(查看原文) 阅读量:26 收藏

Earth Preta组织从3月开始就在全球肆虐,其开发的恶意软件家族包括TONEINS、TONESHELL和PUBLOAD。Earth Preta又名Mustang Panda或Bronze President。该组织的攻击对象包括但不限于缅甸、澳大利亚、菲律宾、日本等国家。

趋势科技的研究人员最近发现Earth Preta滥用虚假谷歌账户,通过鱼叉式网络钓鱼电子邮件传播恶意软件,这些电子邮件最初存储在一个存档文件(如rar/zip/jar)中,并通过Google Drive链接传播。然后诱骗用户下载并触发恶意软件执行TONEINS、TONESHELL和PUBLOAD。PUBLOAD之前已被报道,我们会在本文将其与TONEINS和TONESHELL联系起来,后者是该组织在其活动中新使用的恶意软件家族。

此外,攻击者利用不同的技术来逃避检测和分析,如代码混淆和自定义异常处理程序。我们还发现,鱼叉式网络钓鱼邮件的发件人和Google Drive链接的所有者是相同的。根据用于诱骗受害者的样本文件,我们还认为,攻击者能够对目标组织进行研究,并可能事先对其进行破坏,从而使其变得熟悉,这在之前被泄露的账户名称的缩写中有所显示。

在这篇文章中,我们讨论了Earth Preta的活动及其策略、技术和程序(TTP),包括新的安装程序和后门。

受害目标分析

根据我们对这一威胁的监测,诱饵文件是用缅甸文写成的,内容是“仅限内部”。文件中的大多数主题都是国家间有争议的问题,包含“机密”或“机密”等词 ,这可能表明,攻击者将缅甸政府作为他们的第一个立足点。这也可能意味着,攻击者在攻击之前就已经对特定的政治对象进行了破坏,Talos研究人员此前也注意到了这一点。

攻击者利用窃取的文件作为诱饵,诱骗与缅甸政府机构有合作关系的目标组织下载并执行恶意文件。受害者涵盖了世界范围内广泛的组织和垂直领域,其中亚太地区的受害者集中度更高。除了在缅甸开展合作的政府办事处外,随后的受害者还包括教育和研究行业等。除了以涉及特定组织的正在进行的国际事件为诱饵之外,攻击者还用与色情材料有关的标题引诱个人用户下载。

2.png

Earth Preta的目标行业分布

攻击进程

Earth Preta使用鱼叉式网络钓鱼邮件作为攻击的第一步。如前所述,一些邮件的主题和内容讨论地缘政治话题,而其他邮件可能包含耸人听闻的主题。我们观察到,我们分析的所有电子邮件中都嵌入了Google Drive链接,这表明用户可能会被诱骗下载恶意文件。文件类型包括压缩文件,例如.rar、.zip和.jar。访问链接后,我们了解到文件包含恶意软件TONEINS、TONESHELL和PUBLOAD。

4.png

有关会议记录的电子邮件文档,可能是从先前的攻击中窃取的

鱼叉式网络钓鱼电子邮件

通过分析电子邮件的内容,发现Google Drive链接被用来诱骗受害者。电子邮件的主题可能为空,或者可能与恶意文件同名。攻击者没有将受害者的地址添加到电子邮件的“收件人”标题中,而是使用了假电子邮件。同时,真实受害者的地址被写在“CC”标题中,可能会逃避安全分析,延缓调查。使用开源情报(OSINT)工具GHunt来探测“收件人”部分中的那些Gmail地址,我们发现了这些虚假账户,其中几乎没有信息。

此外,我们观察到一些发件人可能是来自特定组织的电子邮件帐户。受害者可能会相信这些邮件是由可信的合作伙伴发送的,这增加了收件人选择恶意链接的机会。

虚假文件

我们还发现了一些与缅甸政府对象相关或与之合作的组织有关的虚假文件。其中包含了缅甸和中国大使馆之间的粗略会面时间表。另一份文件与日本科学促进协会(JSPS)有关,该协会为研究人员提供在日本进行研究交流的机会。值得注意的是,压缩文件附件中主要是图片。用于下一层侧加载的恶意DLL和可执行文件也包含在其中。

5.png

有关政府会议(左)及海外研究交流(右)的虚假文件样本

此外,还有其他内容主题多样的诱饵文件,包括地区事务和色情内容。但是,当受害者打开这个文件夹中的假文档文件时,没有相应的内容出现。

其他攻击途径

我们观察到至少三种类型的攻击途径,包括通过Google Drive链接、Dropbox链接或其他托管文件的IP地址分布在世界各地的30多个诱饵文件。在我们收集的大多数样本中,都有合法的可执行文件,以及侧加载的DLL。诱饵文件的名称在每个案例中都有所不同。在接下来的部分中,我们将以其中一些为例,介绍每一个的TTP。

DLL侧加载

在该示例中,有三个文件:“~”, Increasingly confident US is baiting China.exe和libcef.dll。值得注意的是,诱饵文件和可执行文件的名称可能不同,详细信息将在下一节中介绍。

6.png

诱饵文件

7.png

PUBLOAD文件中的诱饵文件

可以看出“~”文件是一个诱饵文件。Increasingly confident US is baiting China.exe是一个合法的可执行文件(最初名为adobe_licensing_wf_helper.exe,即adobe licensing wf helper)。这个可执行文件将侧载恶意的libeff .dll并触发导出函数cef_api_hash。

首次执行时,可执行文件尝试通过复制.exe文件和移动libcef.dll(趋势科技将其命名为Trojan.W32.PUBLOAD)。

8.png

恶意活动

快捷链接

恶意文件包含三个文件:New Word Document.lnk、putty.exe和CefBrowser.dll。特别是,DLL和可执行文件被放置在名为“_”的多层文件夹中。

9.png

攻击者利用.lnk文件通过使用WinRAR解压缩文件来安装恶意文件。完整的命令行如下所示。

10.png

Pputty.exe伪装成一个正常的可执行文件,其原始文件名为AppXUpdate.exe。当它被执行时,它会加载CefBrowser.dll,并在它的导出函数CCefInterface::SubProcessMain中执行主例程。它还滥用schtask来实现持久性。

10.png

恶意软件

在这次活动中,研究人员识别出使用了以下恶意软件,即PUBLOAD、TONEINS和TONESHELL。

Trojan.Win32.PUBLOAD

PUBLOAD是一个可以从其指挥控制(C&C)服务器下载下一级有效负载的stager。该恶意软件于2022年5月由Cisco Talos首次披露。

一旦.dll被执行,它首先通过调用OpenEventA来检查相同的进程是否已经在运行。根据Barberousse发布的推文,一些值得注意的事件名称被识别为Twitter上其他网络安全研究人员的用户名,如“moto_sato”、“xaacrazyman_armyCIAx”和“JohnHammondTeam”。值得注意的是,这些研究人员与PUBLOAD没有任何关系,只是被二进制文件中的攻击者有意提及。

14.png

PUBLOAD中特殊事件名称的示例

持久性分析

PUBLOAD在

1. 添加注册表运行项

15.png

2. 创建计划任务

16.png

反分析技术:带有回调的API

PUBLOAD恶意软件在内存中的AES算法中解密shellcode。shellcode是通过创建线程或使用不同的API调用的。API可以接受回调函数的参数,作为触发shellcode的替代方法。我们观察到一些利用API的情况,包括GrayStringW、EnumDateFormatsA和LineDDA,可以将其视为绕过反病毒监视和检测的技术。

17.png

PUBLOAD中的shellcode回调示例

18.png

接受回调函数的API

C&C协议

解密的PUBLOAD shell代码收集计算机名和用户名作为第一个信标的有效负载。有效负载将使用预定义的RC4 (Rivest Cipher 4)密钥进行加密。在撰写本文时,到目前为止我们看到的所有阶段都共享相同的密钥。

加密后,stager使用特定的字节序列作为其数据包的标头。它在加密数据之前加上神奇的字节“17 03 03”和有效负载大小。

19.png

PUBLOAD恶意软件中使用的RC4密钥(顶部)和数据包主体(底部)

20.png

PUBLOAD中的请求数据包格式

stager还检查响应包是否具有相同的魔术标头“17 03 03”。在内存中下载的有效负载将被视为一段shellcode,并将直接执行。

值得注意的调试字符串

在2022年初,我们发现了一些嵌入调试字符串的PUBLOAD示例。它们被用来分散分析人员对主要感染程序的注意力。

21.png

PUBLOAD中分散注意力的调试字符串

Trojan.Win32.TONEINS

Trojan.Win32.TONEINS是TONESHELL后门的安装程序。安装程序将TONESHELL恶意软件放入%PUBLIC%文件夹,并为其建立持久性。TONEINS恶意软件通常出现在诱饵文件中,在大多数情况下,TONEINS DLL的名称是libcef.DLL。恶意例程通过调用其导出函数cef_api_hash来触发。

TONEINS恶意软件被混淆,可能会减慢恶意软件分析的速度。它的控制流中包含大量垃圾代码,并且有大量无用的XOR指令,似乎暗示这些指令用于解码字符串。经过检查,我们发现这些混淆的代码是从开源存储库中重用的。

23.png

TONEINS中的代码混淆

安装程序通过使用以下schtasks命令建立TONESHELL后门的持久性:

24.png

被释放的TONESHELL恶意软件的文件名大小写不同,计划任务的名称也不同。建立持久性后,TONESHELL将合法的可执行文件和恶意的DLL复制到%PUBLIC%文件夹,其中两个文件的名称在诱饵存档中都以“~”开头。在本示例中,~$220220817.docx是用于DLL侧加载的合法可执行文件,而~$20220617(1).docx是要安装的TONESHELL后门DLL。

25.png

带有虚假文件扩展名的文件

Backdoor.Win32.TONESHELL

TONESHELL恶意软件是本次活动中使用的主要后门。它是一个shellcode加载器,在内存中使用一个32字节的密钥加载和解码后门shellcode。在早期版本的TONESHELL中,它具有来自TONEINS恶意软件的功能,包括建立持久性和安装后门。然而,最新版本的TONESHELL是一个独立的后门,没有任何安装程序功能(例如文件~$Talkpoints.docx)。它也以类似于TONEINS恶意软件的方式被混淆,表明攻击者继续更新武器库以绕过检测。

反分析:进程名称检查

为了确保TONESHELL被正确安装,Backdoor.Win32.TONESHELL首先检查进程路径是否与预期路径匹配。如果是,则自定义异常处理程序可能会触发恶意代码。

26.png

TONESHELL中的进程名称检查

反分析:c++中的自定义异常处理程序

有趣的是,攻击者使用自定义异常处理程序的实现隐藏了实际的代码流。将根据进程名称检查的结果调用不同的异常处理程序,通过调用_CxxThrowException触发异常来继续恶意例程。调用后,C++运行时将从ThrowInfo结构一直到_msRttiDscr结构中的CatchProc成员找到相应的异常处理程序,其中包含真正的恶意代码。在此示例中,异常处理程序位于偏移量0x10005300处。这种技术不仅隐藏了执行流,而且还停止了分析师调试器的执行。

27.png

C++中异常处理的数据工作流;黄色圆圈中的CatchProc成员是要调用的恶意异常处理程序

28.png

异常处理程序中的主要恶意例程

反分析:ForegroundWindow检查

查看最近的TONESHELL示例,我们注意到与早期版本相比,添加了新的反沙盒技术。较新的版本调用GetForegroundWindow API两次并检查是否有任何窗口切换。如果环境是沙盒,两个调用将获得相同的窗口句柄,因为大多数沙盒中不涉及人工交互,导致前台窗口不更改。此外,作为一种反沙盒和延迟执行技术,恶意例程只有在前台窗口已经切换了第五次时才会被触发。

29.png

更新的TONESHELL示例中的GetForegroundWindow检查

30.png

第五个窗口开关触发的恶意例程

Shellcode解码

触发恶意异常处理程序后,它开始解码下一阶段的TONESHELLshellcode。要解码shellcode,它首先在与0x7D的XOR运算中解码一个32字节的密钥,然后该密钥将用于解码shellcode主体。

31.png

解码前(中间)和解码后(底部)32字节密钥(顶部)和TONESHELLshellcode的示例

不断改进的变体

我们发现了TONESHELLshellcode的几种变体:

32.png

TONESHELL变体之间的差异

变体A

TONESHELL在设计上支持多达10个C&C服务器,但在我们F发现的所有示例中,只使用了一个C&C服务器。在连接到C&C服务器之前,它使用受害者的卷序列号和计算机名生成一个受害者ID(变量unique_id),或者使用一个随机生成的GUID。

33.png

查找TONESHELL中支持的10个C&C服务器

34.png

在TONESHELL变体A中用于生成受害者ID的算法

在第一个信标中,它从受害者的设备收集以下数据并将其发送到C&C服务器:

当前进程ID;

卷序列号;

用户名;

计算机名称;

产品名称;

操作系统位;

进程列表;

TONESHELL通过原始TCP进行通信,请求标头和响应标头以特定的神奇字节序列“17 03 03”开头。根据我们的研究,这个神奇的标头被用于所有TONESHELL TCP变体和已识别的PUBLOAD恶意软件。数据包中的有效负载将用RC4算法加密。在此变体中,其请求包格式如下:

35.png

TONESHELL变体A中的请求数据包格式

36.png

TONESHELL中的数据包头检查(所有TCP变体和stager)

后门支持各种功能,包括文件上传、文件下载、文件执行和横向移动。我们还注意到它的内部字符串是自解释的。事实上,这个恶意软件以其命令“TOnePipeShell”中的拼写错误命名为TONESHELL。下表显示了它的所有命令:

37.png

TONESHELL变体A中的命令代码

变体B

TONESHELL变体B与变体A略有不同,其中受害者ID是由tick计数、用户名和计算机名生成的。

38.png

TONESHELL变体B中受害者ID生成的不同算法

后门的协议也不同。数据包中的有效负载用随机32字节密钥编码,每个数据包的密钥都不同。每当发出新请求时,都会生成新密钥。

39.png

TONESHELL变体B中的请求数据包格式

40.png

在TONESHELL变体B中,在发出请求之前,有效载荷将被编码在异或操作中

此变体中的命令代码如下:

41.png

TONESHELL变量B中的命令代码

变体C

研究人员从VirusTotal(SHA256:521662079c1473adb59f2d7134c8c1d76841f2f9b9e6e181aa54df25715a09)中找到了一个转储的TONESHELLshellcode。分析表明,它的工作原理与其他变体相似,但使用的C&C协议是HTTP。这似乎是TONESHELL的早期版本,因为该样本是在2021年9月上传的,并对第一个信标使用POST方法。以下数据是从受害者的计算机收集的:

内存大小;

用户名;

计算机名称;

磁盘大小;

操作系统位;

产品名称;

42.png

TONESHELL变体C中的第一个HTTP信标请求

受害者的ID(由第一个信标中的“Guid”标头指定,随后在“Cookie”标头中使用)也由随机Guid生成。主体也在RC4中加密,命令代码与变体B非常相似,如下所示:

43.png

TONESHELL变体C中的命令代码

研究人员观察到最近几个月来有几个TONESHELL和TONEINS恶意软件样本被上传到VirusTotal目前研究人员已收集了几个Google Drive链接,例如770d5b60d8dc0f32941a6b530c9598df92a7ec76b60309aa8648f9b3a3f3cca5。

44.png

在野外找到的Google Drive链接示例,其中包含TONESHELL和TONEINS

通常,我们将这些下载链接视为首次攻击方式。Google Drive直接下载链接的格式为https[:]//drive.google.com/uc?id=gdrive_file_id&export=download。gdrive_file_id是此特定文件的唯一标识符。通过修改URL:https[:]//drive.google.com/file/d/gdrive_file_id/view,我们可以切换到web查看器以检查其文件内容及其所有者。

在详细信息面板中,我们可以找到此文件的所有者,通过将鼠标悬停在图标上,我们可以获得电子邮件地址。

445.png

Google Drive的web浏览器

46.png

文件所有者的姓名和电子邮件地址

我们可以使用这个特定的电子邮件帐户进行进一步的研究。例如,经过我们的调查,我们知道攻击者滥用了相同的电子邮件地址,将诱饵文件存储在Google Drive中,并发送钓鱼电子邮件。如果我们在监控日志中搜索这个特定的电子邮件地址,我们可能会发现更多分布式恶意软件。

总结

本次活动中观察到的TTP与Secureworks提到的活动类似。两个活动都滥用.lnk文件来触发恶意软件。与Secureworks报告的观察结果相比,趋势科技在此次活动中发现的文件具有相似的文件夹结构。

47.png

BRONZE PRESIDENT(左)和 Earth Preta(右)的文件夹结构类似

Bronze President利用带有回调函数参数的API来调用EnumThreadWindows等shellcode。PUBLOAD恶意软件中也使用了类似的技术。

此外,我们还发现了两个活动之间的联系:一个C&C服务器(98[.]142[.]251[.]29)可以与快捷方式文件关联。此快捷方式文件出现在一个诱骗文件 “EU 31st session of the Commission on Crime Prevention and Criminal Justice United Nations on Drugs and Crime.rar”(SHA256:09fc8bf9e2980ebec1977a8023e8a2940e6ad5004f48d07ad34b71ebf35b877)中,Secureworks报告也提到了这一点。我们使用工具LECmd解析快捷方式文件,在.lnk文件的元数据中找到了特定的C&C字符串,攻击者似乎使用了C&C字符串作为文件夹名。

48.png

 .lnk文件的元数据

(SHA256:a693b9f9ffc5f4900e094b1d1360f7e7b907c9c8680abfeace34e1a8e380f405)

Cisco Talos提到的感染链也与我们最近观察到的相似:

两者都使用schtasks和注册表运行项来实现持久性;

两者都使用良性可执行文件进行DLL侧加载;

最重要的是,报告中提到的stager在C&C通信协议中使用了与TONESHELL相同的标头(17 03 03)。

本文翻译自:https://www.trendmicro.com/en_us/research/22/k/earth-preta-spear-phishing-governments-worldwide.html如若转载,请注明原文地址


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