一、背 景

2022年以来,启明星辰ADLab持续追踪到多起针对委内瑞拉军队和国防部门的网络间谍窃密活动,这些攻击活动以军事和国防事务为诱饵侵入内部系统窃取军事和国防情报。攻击者将自身伪装成委内瑞拉玻利瓦尔共和国的军事部门,以军队内部事务如“针对信息技术和通信局国防部门的建议和行动”、“少将指示命令”等为诱饵对委内瑞拉的国防部及各军事部门发起定向攻击并植入窃密木马。我们对攻击所使用的窃密木马进行了深度的分析发现窃密木马不仅具有较强的窃密功能,还具有目的性的收集文档文件,黑客针对此类敏感部门的针对性攻击具有极强情报收集意图。由于委内瑞拉长期处于政治经济双重危机之中,尤其在2019年内乱之后更是局势动荡,此类网络窃密活动频繁发生,所窃取的军事情报或机密文件被用于政治和军事上对抗。类似的攻击可能还会通过其他攻击入口进行,但鉴于攻击路径的隐秘性和威胁信息孤岛的存在,难以被外部所监控到,就如俄乌对抗下的一系列事后许久才被发现的攻击事件一样。最后,我们进一步对此次攻击活动的攻击目标、入侵技术特点、语言习惯、代码同源性等因素进行比对分析后,找到这些攻击活动的组织归属,多方面的证据都将此次攻击来源指向Machete黑客组织。

Machete组织,是一个长期以拉丁美洲地区重要敏感部门为目标的黑客组织,最早活跃时间可以追溯到2010年,根据该组织的攻击特点和泄露的信息可以确定该组织同样应该位于拉美地区,但是目前没有足够的证据和线索将其归属具体哪个国家。该组织在拉美地区局势动荡的背景下非常活跃,攻击目标主要集中于拉丁美洲国家,重点针对军事、政府等敏感行业进行攻击以窃取机密信息。

在本次发现的攻击活动中,Machete组织重点针对委内瑞拉军事部门和国防部实施攻击,这与其以往的攻击目标基本一致。不过这次攻击所使用的窃密木马有了一定程度的技术改进和升级,从4月发现的攻击木马可以看出,该组织对其定制的窃密木马进行了优化升级,同时将改进后的木马命名为kaiser 1.0。这也是自2020年以来该组织首次对其攻击工具进行升级,新增的功能模块包括窃取主机敏感文件、窃取USB设备敏感文件、更灵活的恶意扩展支持和回传后门版本信息,相关模块增加了木马对目标设备敏感文件的全盘窃密能力及窃密功能的可扩展能力。同时,该组织近年来还在不断改进其C&C隐藏的手段,以提高基础设施的反检测和反追踪能力,以增强C&C的隐蔽性、可控性和安全性。

本文将对近期该组织的攻击活动进行追踪和分析,并针对其长期以来的攻击目标、攻击技术演进、新使用的基础设施等进行全面地分析。最后重点针对本次攻击使用的升级后门模块和相关技术细节进行深入分析。

 二、组织分析

自2010年以来,Machete组织一直热衷于攻击拉丁美洲涉及军事、政府、法律等敏感行业和部门。本节将重点分析该组织长期以来的攻击目标情况、攻击技术演进及代码特征等特点,并结合本次攻击活动进行对比分析,最后披露其近期使用的网络攻击资产(截至目前相关服务器依然活跃)。

2.1 攻击目标

启明星辰ADLab通过威胁情报源共关联到Machete组织历史上使用过的多个诱饵文档。在针对诱饵内容进行分析统计后,发现诱饵内容中涉及国家或地区的名词主要位于拉丁美洲国家,相关分布占比如图1所示。其中数量较多的国家主要包括委内瑞拉、尼加拉瓜、厄瓜多尔、哥伦比亚等,由此来看,该组织的攻击目标应当是诱饵内容相关的国家或地缘政治有关的邻国。同时,文档使用的语言均为西班牙语或葡萄牙语(西班牙语是拉丁美洲21个国家的官方语言)。因此,从诱饵内容、文档语言和地缘政治等角度可以确定攻击者长期以来的目标主要集中在拉丁美洲。

图1 诱饵内容涉及国家或地区的占比

在进一步针对诱饵内容的主题进行统计后,可以发现诱饵内容主要集中在军事情报和政治议题两种类别,军事情报类如“陆军司令部行动信息表”、“部队人员调动”、“军事命令”等敏感信息,政治议题类如“政府文件”、“外交文件”等,其它诱饵文件还包括“债务诉讼”、“法律传票”等威胁恐吓类主题。各类诱饵主题的分布占比如图3所示。攻击者在收集足够信息并对目标有了清晰的认知之后,根据目标的个人情况制定相应的诱饵方案。以下是近期我们捕获到的部分委内瑞拉相关的军事信息类诱饵文档,涉及军事命令(“少将指示命令”)和军事战略(“针对信息技术和通信局国防部门的建议和行动”)相关的内容,与以往的诱饵主题和攻击目标基本保持一致。

图2 本次攻击活动使用的军事信息类文档

图3 诱饵文档主题占比

此外,我们还在本次攻击Machete组织的木马代码中观察到,其使用西班牙语键盘进行窃密信息记录,并且在代码中对系统文件夹Program files的特殊处理也使用了西班牙语Archivos de programa(Program files)。因此,从代码的角度也可以印证攻击者的目标主要位于拉丁美洲地区。

图4 西班牙语键盘记录

2.2 攻击技术及演进

Machete组织擅长通过钓鱼邮件、WEB注入攻击等方式发起初始攻击,之后诱导用户点击诱饵文件并部署Python编写的远控木马,实施监控用户、窃取机密信息等活动。我们在研究该组织的历史攻击活动中,发现该组织部署后门的技术手段存在过两次重大更新,同时其最终使用的远控木马也进行过多次定制更新,本节将着重对Machete组织历史上的一些攻击技术变化进行研究和分析。图5是Machete组织实施攻击的整体流程及技术演进情况。

图5 Machete组织攻击流程及技术演进

(1)诱饵投递阶段

攻击者通常采用两种方式进行初始诱饵的投递:一是钓鱼邮件,包括恶意附件或恶意链接URL;二是通过WEB注入类攻击传播恶意软件,如水坑攻击等。其中钓鱼邮件是Machete组织最主要的攻击手段。 

(2)后门植入阶段

当目标用户点击诱饵文档或文件时,程序会执行vbs脚本向托管服务器请求下载执行后续的恶意模块,同时释放正常的诱饵文档来迷惑用户,诱饵文件的种类包括doc、docx、ppt、pdf、jpg等。针对后续的恶意模块,Machete组织历史上曾采用nsis安装文件、SFX自解压文件、MSI安装文件等多种方式来安装加载python环境及解释器,从而执行其python攻击武器。此外,一旦成功感染目标主机,恶意代码还能够通过感染USB设备从而传播和攻击目标组织的其它成员。Machete组织部署后门的技术变化主要可以划分为以下三个阶段:

  • 2014年至2017年

早期该组织的恶意软件主要以nsis打包安装文件的形式部署分发,程序运行后将提取python解释器组件并执行后续恶意代码。NSIS(Nullsoft Scriptable Install System)是一种开源的 Windows 系统下的安装程序制作程序。它提供了安装、卸载、系统设置、文件解压缩等功能。攻击者可以通过NSIS安装文件实现释放python执行脚本所需要的环境和依赖库并执行恶意脚本。

  • 2018年至2019年

2018年4月Machete组织更新了部署后门技术,采用SFX自解压文件提取执行python解释器及恶意脚本等组件。SFX (Self-extracting)自解压文件是压缩文件的一种(文件类型为.exe格式),由于自解压文件内置了自解压程序,因此可以不用借助任何压缩工具,而只需执行该文件就可以自动执行解压缩和后续恶意操作。

  • 2020年至今

2020年后Machete组织改为采用MSI安装文件来打包后续组件。MSI文件是Windows Installer的数据包(实际上是一种数据库),包含安装产品所需要的信息及安装(和卸载)程序所需的指令和数据。执行MSI文件即可完成安装任务并执行后续恶意操作。

(3)通信驻留阶段

Machete组织早期的攻击活动主要采用定制的Python木马Machete,窃密信息回传的方式主要包括FTP、Dropbox以及USB设备等。而自2020年后该组织开始改用定制版本的LokiRAT木马。LokiRAT木马为开源马,相较于原始版本,Machete组织为其添加了窃取Chrome浏览器、火狐浏览器用户凭证、针对西班牙语键盘进行键盘记录、剪切板记录等功能,由于其代码中包含特征字符串kolobok,我们将该木马变种命名为loki_kolobok。

图6 Loki木马的功能

而在本次分析中,我们发现Machete组织在今年4月初对其自定义木马进行了升级,这是自2020年来该组织首次对其python攻击武器进行升级,并为该木马命名为kaiser 1.0,为了便于区分,我们将该木马变种命名为loki_kaiser。

图7 本次发现木马的版本信息

在本次升级中,Machete组织为该武器添加了四项功能,分别是回传后门版本信息、窃取主机敏感文件、窃取USB设备敏感文件和下载执行脚本文件。

图8  loki_kaiser木马新增的四项功能

有趣的是,在近期发现的loki_kaiser木马中,我们还发现该黑客组织使用了新的硬编码标签:Bolodenka_usb_drive,其中“Bolodenka”为俄语字符串,为俄罗斯婴儿名,代表和平。此外,黑客组织在其自定义的loki木马中还使用了其他的俄语字符串,如:kolobok(Kolobok是东斯拉夫民族童话中的主要角色)、Utopiya_Nyusha_Maksim(乌托邦纽沙格言)。但回顾Machete组织的历史攻击活动,该组织所使用的Machete木马中也曾使用西班牙语为变量命名,如:datos (data)、canal (channel)、senal (signal)等。由此猜测,该黑客组织尝试使用俄语字符串混淆视听,试图影响分析人员对其来源进行追溯。

图9  loki木马中使用到的俄语字符串

2.3 基础设施分析

在近期的攻击事件中,Machete组织使用了更多类型的基础设施。通过对该批攻击样本回连的数据进行收集和分析,我们将近期攻击的基础设施分为两类,包括基于Plesk云托管服务的恶意代码托管服务器和基于blogspot.com合法博客文章的C&C存储服务器。

(1)恶意代码托管服务器

表1为近年来Machete组织使用的MSI文件下载URL。

表1 下载URL地址

其中,近期黑客频繁使用了Plesk(主机托管商)提供的云主机服务进行MSI恶意代码托管。目前相关链接(如https://zealous-almeida.51-79-62-98.plesk.page/offnoise2/Sharedd.msi)仍然保持活跃状态。

图10 黑客使用的云主机服务商

(2)C&C存储服务器

Machete组织在木马通信阶段采用了C&C隐藏技术,利用社交媒体平台blogspot的博客文章作为C&C存储点以增强C&C的隐蔽性、可控性和安全性。该C&C通过base64编码存储,相关页面如下图所示。网页内容为一篇讨论安防系统设备安全的技术文章,可以看到,黑客在文章名处插入了一段代码用来隐藏C&C,当远控木马执行时,将分别以”/tecn/”和”*tecn“作为特征分割符,从中提取base64编码的C&C地址(图中黄色字体的部分)并进行解密回连。这种动态获取C&C的方式,一方面可以有效隐藏C&C地址,另一方面攻击者也可以灵活地对其服务器进行配置和更新。

图11 博客隐藏C2

通过博客的相关用户信息和特征,我们进一步溯源到了更多攻击者用于隐藏C2的博客页面,如图12所示。

图12 博客页面隐藏C2

目前,我们收集到黑客使用的部分博客信息、密文、解密C2信息如表2所示。博客内容均为西班牙语,这也表明Machete组织的常用语言是西班牙语系。由于这些博客文章数量众多且难以被全部封禁,因此可以长期关注黑客使用此类基础设施的活跃情况以追踪黑客的攻击活动。

表2 博客信息

 三、近期攻击活动分析

在本次工作中,启明星辰ADLab追踪到多起以委内瑞拉军事行动命令和军事战略等为话题的定向攻击活动。经过对本次攻击活动深入的分析并与该组织以往攻击活动进行详细对比,我们发现该组织在此次攻击活动中不仅对其攻击武器库中的Python木马进行了正式命名还在功能上进行升级,增加了对主机和usb设备中文件收集以及下载执行脚本文件的功能。由于本次攻击活动的诱饵文档与军事话题紧密相连,我们猜测此举旨在窃取受害者主机上军事相关的敏感情报,这将可能进一步加剧当地政治和安全的紧张局势并构成潜在的不利影响。下面将对本次攻击活动进行详细的分析。

3.1 攻击载荷

ADLab此次捕获的初始攻击载荷是名为“01-RAD-429.pdf.vbs”的恶意文件。攻击者利用Windows系统会默认隐藏文件扩展名的特性,将恶意vbs文件制作成双后缀格式,企图诱使受害者点击执行虚假的pdf文件。

图13 恶意文件信息

当用户打开VBS文件后,恶意代码会在“C:\ProgramData\”目录下释放“radio.d”文件,并将经过base64编码进行后的数据写入到该文件中,具体内容如下图所示。

图14 生成radio.d文件

随后,恶意代码使用Windows的内置程序certUtil.exe对“radio.d”文件进行解码,再将解码后的“01-RAD-429.pdf”文件写入到同目录下,并启用wscript.exe打开pdf文件。具体代码如下图所示。

图15 生成并打开pdf文件

该pdf为一个无害的与主题相关的诱饵文件,用以迷惑受害者。具体内容如下图所示。

图16 pdf诱饵文件内容

接着,恶意代码再次将下一段硬编码的Base64数据写入到“rrte.d”文件中,之后使用certutil.exe解码生成名为“pdf.d”的DLL文件,最后通过cmd命令执行dllmain。

图17 生成rrte.d文件

该DLL的主要功能是使用msiexec.exe从攻击者的远程托管服务器上下载并执行msi恶意安装包文件。

图18 DLL恶意代码

3.2 MSI恶意安装程序

“Sharedd.msi”恶意文件将自身伪装成三星USB驱动文件,当点击安装后其会模仿成与“SAMSUNG USB Driver for Mobile Phones”相关的弹框信息。

图19  “Sharedd.msi”恶意文件

最终落地的后门是使用python脚本编写的,为了避免受害者电脑没有安装python,攻击者会将python执行脚本所需要的环境和依赖库全部打包到msi中。当“Sharedd.msi”安装程序运行后,所有的恶意软件相关文件被释放到%TEMP%目录中的子目录文件夹中。除了python的各种库文件以外,目录中还包含两个(名称不同但hash值相同)python解释器、使用Base64编码的脚本文件以及隐藏在“Lib\Lib\site-packages\pydesktop”目录下的后门组件。具体内容如下图所示。

图20 安装目录信息

在完成上述操作后,根据MSIWrapper的配置文件开始执行“sharedd.exe”。该EXE文件的主要功能是使用“UpdatewShare.exe”python解释器执行“Tools”目录下的“Presk”脚本文件。在分析时我们发现,“sharedd.exe”的代码中所使用的解释器名称与实际上释放出的“UpdateExplorer.exe”文件名称无法匹配,猜测可能是攻击者更改了文件名,而未更新恶意代码所致。

图21 “sharedd.exe”恶意代码

3.3 恶意脚本文件

”Presk”实际上是一个pyc文件,通过反编译后,我们得到了包含base64编码的py脚本代码。其主要功能为将之前MSI恶意软件释放的所有文件及文件夹全部复制到”C:\ProgramData\USODesktop”路径下,并设置USODesktop文件夹为隐藏和系统属性。

图22 复制所有文件和设置文件夹属性

接着,再以每5分钟执行一次后门的计划任务来实现其持久性,计划任务名称为“UpdatewShared”。

图23 设置计划任务

最后,删除USODesktop目录下的“Shared.exe”,并判断计划任务是否设置成功,若失败则手动执行后门。在此处分析时,我们发现代码中执行的后门名称与实际目录中的后门模块名称不符,猜测攻击者未正确更改恶意代码所致。

图24 删除“Shared.exe”文件

3.4 后门模块

该后门模块即为Machete组织使用的最新版本木马loki_kaiser。其中Datawmplayer是后门的核心功能模块,其首先读取当前目录下的“date.dll”文件,并使用base64解码出黑客组织的blogspot.com博客地址。

图25 获取博客地址

接着,再从黑客的博客主页中获取储存C&C的base64编码数据,截取和解码出最终的C&C服务器地址,将其保存为全局变量以便后续使用。

图26 获取和保存C&C服务器地址

此外,loki_kaiser将收集受害者的主机信息,其中包括用户唯一标识符、主机名称和用户名信息以自定义格式上传给黑客C&C服务器。之后,通过接收远控控制指令,来进行后续恶意行为。

图27 上传主机信息

通过分析我们可以看到,该后门控制指令中包含了大量用户隐私信息的窃取功能。包括窃取浏览器用户凭证、键盘记录、屏幕截取以及下载安装其他指定模块等功能,最终受害者的文件和数据信息,都会根据远程服务器的指令回传给攻击者的服务器。除此之外,启明星辰ADLab将该组织早期的后门模块与本次新版本后门loki_kaiser的功能进行对比分析,发现攻击者添加了一些新功能(详见表3蓝色标注部分)。变种后门的控制指令功能参考下表所示:

表3 远程控制指令及功能

鉴于该后门的一部分控制指令功能较简单,因此我们在下文中仅针对部分相对比较重要和新增的指令功能进行了详细的分析。

(1)窃取Chrome浏览器的用户凭证

后门通过读取Chrome保存用户登录信息的数据库,对其解密来获取明文数据。之后再将解密后的用户凭证保存为“%d-%m-%Y-%H-%M-Chr”.txt文件,最后上传到攻击者的服务器上,完成后则删除该文件。

图28 窃取Chrome浏览器用户凭证信息

(2)键盘记录

wmUpdate是负责进行键盘记录的功能模块。攻击者不仅获取受害者输入按键的键名、日期和时间,以及打开的应用程序名称,此外,其还会筛选出指定的键值。通过这种方式,攻击者不但能够获取到受害者输入的内容以及输入时间,还可以得到其感兴趣的键值。

图29 键盘记录相关代码信息

当控制命令为kill,该后门则对键盘记录“-vpr.html”的文件名进行重命名和上传到服务器,成功上传后则删除该文件。

图30 上传并删除键盘记录文件 

(3)窃取主机敏感信息

一方面,该后门通过遍历磁盘信息(除去指定部分系统目录),来获取后缀名为doc、docx、pfd、xlsx、xls、ppt等17种敏感文件的路径和文件大小。之后再将这些相关信息保存到“list.txt”文件中。

图31 获取和保存文件信息

另一方面,后门会使用python解析器调用Updatemplayer模块。该模块主要用于指定文件收集和上传。与前者不同的是,除去部分系统目录以外,其仅对11种格式的文件进行读取和上传。

图32 窃取和上传用户敏感文件

(4)USB文件窃取

该指令通过python解析器调用drives模块来完成。其主要功能为窃取USB中17种格式的文件,并将这些文件上传至黑客服务器。

图33 窃取和上传USB中敏感文件

(5)下载执行脚本文件

从攻击者服务器上获取后续阶段的脚本文件,并使用python解析器执行该脚本。通过该脚本攻击者可以扩展实现加载后续攻击武器或更新自身模块等更多功能。

图34 下载和执行脚本文件

(6)版本信息

回传后门版本信息,我们查看代码,发现此次后门的版本是“Version kaiser 1.0”。

图35 打印版本信息

(7)cmd指令

除了已知的控制指令以外,其它都视为执行cmd命令,参数由控制指令决定。

图36 执行cmd指令

 四、总结

通过本文分析可以看出,Machete组织在此次攻击活动中精心收集了大量涉及军事、政治等敏感行业的内部文件,以针对委内瑞拉军事部门实施精准的定向攻击。从攻击技术上来看,该组织长期以来不断地改进升级其TTPS,包括攻击手法的优化、攻击武器的升级、C&C隐藏技术的改进等等来逃避检测机制,以期提高攻击的成功率,增强攻击活动隐秘性和黑客基础设施的安全性,如此次攻击中就新增了4个功能模块用于强化木马对受害主机敏感文件的精准化窃取能力和增加自身的模块更新能力。此外需要注意的是,该组织近期开始大量利用合法厂商服务器作为C&C存储点,如利用blogspot博客标题进行C&C隐藏,从而增加安全检测和追踪的难度。

鉴于该黑客组织长期通过钓鱼邮件进行攻击的惯用手段,我们建议相关用户不要随意打开和下载未知来源的邮件附件及链接,做好邮件系统的防护。特别是一些极具诱惑性的诱饵文档或双后缀文件(隐藏后缀名)需要谨慎对待。如有需要可通过打开Office文档中的:文件-选项-信任中心-信任中心设置-宏设置,来禁用一切宏代码执行。同时也要留意如:WEB注入攻击、恶意USB设备感染等其它攻击渠道,一旦系统或服务器出现异常行为,及时报告并请专业人员进行排查,以消除安全隐患。