发布于 

BlueNoroff APT组使用“RustBucket”恶意软件针对macOS

了解Jamf Threat Labs发现的名为“RustBucket”的macOS恶意软件变体。它的作用,它如何破坏macOS设备,它来自哪里,以及管理员可以做些什么来保护他们的苹果车队。

Jamf Threat Labs发现了一个macOS恶意软件系列,该系列与命令和控制(C2)服务器通信,以下载和执行各种有效负载。我们以“RustBucket”的名义跟踪和保护这个恶意软件家族,并怀疑它归咎于朝鲜国家赞助的威胁行为者。名为BlueNoroff的APT团体被认为是著名的Lazarus团体的一个子团体,据信是这次袭击的幕后黑手。这种归因是由于卡巴斯基博客条目中指出的相似之处,该条目记录了Windows端的攻击。这些相似之处包括macOS上的恶意工具,这些工具与活动中受雇人员的工作流程和社会工程模式密切相关。

第一阶段

第一阶段恶意软件(0be69bb9836b2a266bfd9a8b93bb412b6e4ce1be)是在为包含各种可疑命令的编译AppleScript应用程序执行正常狩猎例程时发现的。在我们的结果中,我们发现了一个名为main.scpt的可疑AppleScript文件,包含在一个名为Internal PDF Viewer.app的未签名的应用程序中。应该注意的是,我们没有理由相信这个应用程序可以在用户不手动覆盖Gatekeeper的情况下执行。

image.png
第一阶段dropper的目录结构如下所示。与所有编译的AppleScript应用程序一样,主要的应用程序代码在main.scpt文件中,位于/Contents/Resources/Script/目录下。

image.png
虽然AppleScript是编译的,但我们可以通过将其加载到macOS脚本编辑器应用程序中来提取其内容。启动时,滴管执行如下所示的代码:

image.png
第一阶段只是执行各种do shell脚本命令,使用curl从C2下载第二阶段。恶意软件写入并提取zip文件的内容到/用户/共享/目录,并执行阶段二的应用程序,也被命名为内部PDF浏览器.app。通过将恶意软件分解成几个组件或阶段,恶意软件作者使分析更加困难,特别是在C2下线的情况下。这是恶意软件作者用来阻挠分析的一种聪明但常见的技术。
在我们分析时,该恶意软件的阶段第一和第二阶段组件都没有在VirusTotal上检测到。
image.png

image.png

第二阶段

虽然第二阶段(ca59874172660e6180af2815c3a42c85169aa0b2)应用程序名称和图标看起来与第一阶段非常相似,但目录结构不同,后者不使用AppleScript。应用程序版本、大小和捆绑标识符——com.apple.pdfViewer——也明显不同,伪装成合法的苹果捆绑标识符。此应用程序也带有临时签名。
image.png

应用程序布局是一个更传统的应用程序,用Objective-C编写。
image.png

Internal PDF Viewer应用程序启动时,用户会看到一个PDF查看应用程序,他们可以在其中选择和打开PDF文档。该应用程序虽然是基本的,但实际上可以作为功能性的PDF查看器运行。使用苹果构建良好的PDFKit框架,这项任务并不太困难。
image.png

执行后,应用程序尚未执行任何恶意操作。为了使恶意软件采取下一步并与攻击者通信,必须加载正确的PDF。我们能够追踪到恶意PDF(7e69cb4f9c37fad13de85e91b5a05a816d14f490),我们认为与此活动有关,因为它符合触发恶意行为的所有标准。

例如,当从Finder中双击恶意PDF时,用户将看到以下内容:
image.png
此最小消息通知用户,他们必须使用必要的应用程序打开PDF才能查看完整详细信息。

在恶意PDF查看器中打开时,用户将看到一个文档(共9页),其中显示了一家有兴趣投资不同科技初创公司的风险投资公司。据我们所知,PDF是通过将一家小型但合法的风险投资公司的网站放入PDF格式创建的。
image.png

这里应该指出的是,早些时候,第一阶段的滴管接触到了云[.]dnx[.]资本,从而以风险投资公司的伪装保持主题。

攻击者使用的这种PDF查看器技术很聪明。此时,为了进行分析,我们不仅需要第二阶段的恶意软件,还需要作为密钥运行的正确PDF文件,以便在应用程序中执行恶意代码。

那么,恶意软件如何显示与用户加载的PDF不同的PDF?

为了回答这个问题,我们仔细研究了应用程序中的一些功能。最值得注意的是,我们看到一个名为viewPDF作为PEPWindow类的一部分。此函数在加载的PDF中寻求特定的偏移量,以检查特定的数据块。如果存在预期数据,则调用一个名为_encrypt_data的函数,具有讽刺意味的是,该函数运行代码来解密blob并生成新的PDF。它使用硬编码的100字节XOR密钥执行此,该密钥可以在可执行文件的__CONST数据中找到。
image.png

然后,这个新解密的PDF在应用程序中显示给用户,给人一种错觉,认为这个应用程序确实是必要的,以便查看PDF的完整详细信息。
image.png

由于嵌入的PDF文件被直接加载到查看器中,它从未被写入磁盘。使用反汇编程序–如Hopper–我们可以通过在encrypt_data函数的返回点上设置一个断点来提取它。
如果分析ARM可执行文件(相对于Intel可执行文件而言),我们可以打印$x0寄存器,该寄存器为我们提供了解密blob的所有字节。将这些字节保存到一个文件中,也会显示出内部的PDF文件。
image.png

第二阶段沟通

到目前为止,我们已经解码了嵌入在原始PDF文件中的PDF文件,但正如我们前面所说,这也是恶意软件将电话打给攻击者的地方。与内部的PDF文件一样,攻击者的C2也是在原始PDF中XOR编码的。这就是为什么我们看到encrypt_data函数第二次运行。下面的字节被传递给它,可以在原始PDF文件的底部找到。
image.png

这一次,当encrypt_data函数使用与以前相同的硬编码XOR密钥运行时,它返回以下内容:
image.png

hxxps://deck.31ventures.info/i5OvDE_RB/rUHSnl3rUu/V9Qj0zfRjl/hz2dhwQMGe/64uVA7PeqBYfe9gD/D

在向用户显示嵌入式PDF并消除URL后,恶意软件会调用一个名为_downAndExecute的函数,并向C2服务器发出POST请求,以大概检索和执行第三阶段有效负载。
image.png

在下面显示的_downAndExecute函数中,我们可以看到为启动HTTP请求而设置的各种参数。
image.png

恶意软件还创建了一个新线程,并在循环中再次发出POST请求之前进入睡眠状态,直到返回HTTP 200响应。

不幸的是,在我们分析时,服务器没有回复必要的消息。
image.png

然而,我们设法在托管Mach-O可执行文件的同一域上发现了一个新的URL,我们认为该URL是最终有效负载的新位置。
image.png

如果第二阶段滴管成功下载第三阶段有效负载,我们可以在downAndExecute_block_invoke中查看下一个操作。
image.png
上述图像显示了如果C2响应,将采取以下步骤:

  1. 恶意软件创建一个临时目录,并将收到的文件写入该临时目录。该恶意文件的名称将是当前马赫时间戳(自2001年1月1日午夜以来的秒数)。示例文件路径看起来像这样:<strong>/</strong>var/folders/g6/w3s4hg8n57sgfjl4xgrhjs_w0000gn/T/703517604263
  2. 可执行权限被分配给新文件。
  3. 设置程序参数并执行文件。集合参数是从该阶段第二有效负载解码的攻击者C2的参数。第三阶段将继续使用此值。

阶段-三

三级有效载荷(182760cbe11fa0316abfb8b7b00b63f83159f5aa)是用Rust书写的临时签名木马,重量为11.2MB。这是一个同时包含ARM和x86架构的通用二进制文件。初始执行时,它会执行一些系统侦察命令。

最早使用的模块之一名为webT::getinfo。在此模块中,可以查看有关系统的基本信息、进程列表、当前时间以及它是否在虚拟机中运行。这些函数被相应地命名。
image.png

运行此恶意软件会导致与执行时作为第一个参数提供的URL进行通信。WebT::send_request函数负责向C2服务器发送初始消息。当在上面放置断点时,我们可以跨过它,导致对服务器的调用。
image.png
此有效负载允许攻击者在系统上执行进一步的目标,但也许深入研究第三阶段最好保存在另一篇博客文章中。

在高层次上

我们相当深入地研究了这种恶意软件的一些不同行为。在更高的层次上,工作流程如下所示:
image.png

与BlueNoroff的连接

有一些迹象表明,这种恶意软件与BlueNoroff有关。首先是第一阶段滴管中使用的域:cloud[.]dnx[.]capital。据报道,在Proofpoint所做的写作中,攻击者正在使用该域。在之前提到的卡巴斯基博客中,据报道,攻击者在卡巴斯基名为“SnatchCrypto”的运动中创建了许多冒充风险投资公司和银行的虚假域名。这与PDF文档中发现的社会工程方案一致。Windows恶意软件还使用了“诱腐文档”方法,该方法显然对攻击者效果很好。我们在VirusTotal上找到的最早提交的“内部PDF查看器”是在2023年1月上传的,我们观察到攻击者继续托管它。

虽然存在许多不同的PDF有效负载,在Windows上工作,但到目前为止,只发现了一个PDF,会导致在macOS上调用攻击者。我们确实怀疑不仅仅是这个PDF存在。值得注意的是,在恶意软件中发现的XOR密钥也可以在各种恶意PDF文件中找到。然而,当加载到Viewer应用程序中时,这些文件不会导致正确解码的URL。我们怀疑恶意查看器的不同变体(或不同的平台)能够从PDF中加载XOR密钥,而不是攻击者在恶意应用程序中对其进行硬编码。

结论

这里使用的恶意软件表明,随着macOS市场份额的增长,攻击者意识到,如果他们的工具不更新以包括苹果生态系统,许多受害者将具有免疫力。Lazarus集团与BlueNoroff有着密切的联系,在攻击macOS方面有着悠久的历史,我们可能会看到更多的APT集团开始这样做。

Jamf Protect防御此恶意软件的恶意组件,并阻止恶意域。Jamf Threat Labs将继续监控BlueNoroff在这项活动中的活动。

image.png

Patrick Wardle致敬,感谢他在这里的一些分析方面的合作。如果您想了解有关macOS恶意软件分析的更多信息,请查看免费的在线书籍:Mac恶意软件的艺术

妥协指标

image.png

参考文献:

https://securelist.com/bluenoroff-methods-bypass-motw/108383/
https://www.proofpoint.com/us/blog/threat-insight/ta444-apt-startup-aimed-at-your-funds