关键词:间谍软件、CloudMensis、macOS

2022年4月,ESET的研究人员发现了一个之前不为人知的macOS后门,它监视被入侵的Mac的用户,并使用公共云存储服务与操控者进行通信,本文将其命名为CloudMensis,其通过窃取文件、按键信息和屏幕截图,从受害者的Mac机器中收集信息。这篇文章描述了CloudMensis的不同组件及其内部工作原理。

1、概述

CloudMensis是用Objective-C开发的macOS恶意软件,当获得代码执行和管理权限时,接下来的过程分为两个阶段,其中第一阶段下载并执行功能比第二阶段更强大,有趣的是,这个第一阶段的恶意软件会从云存储提供商那里获取下一阶段的内容,它没有使用公开的链接,另外,它包含一个访问令牌,用于从云存储下载MyExecute文件。在分析样本中,pCloud用于存储和分发第二阶段程序。它们的作者将两个组件称为execute和Client,前者是下载器组件,后者是间谍代理组件。

图1:下载器组件中的部分字符串和代码签名

图2:间谍代理组件的部分字符串和代码签名

图1和图2还显示了该恶意软件组件的内部名称:该项目似乎被称为“BaD”,它位于名为Leonwork的子目录中。此外,V29表明该样本是29版,或可能是2.9。

2.下载器组件

第一阶段恶意软件下载并安装第二阶段恶意软件作为守护进程。如图3所示,将以下两个文件写入磁盘:

  • /Library/WebServer/share/httpd/manual/WindowServer: 第二阶段的Mach-O可执行程序,获取自pCloud云存储

  • /Library/LaunchDaemons/.com.apple.WindowServer.plist: 使恶意软件作为系统守护进程实现持久化的一个属性列表文件。

在此阶段,攻击者必须已经具有管理特权,因为两个目录只能由root用户修改。

图3:CloudMensis下载器安装第二阶段

第一阶段的组件使用一种称为RemoverGistration的方法,在成功利用Safari Sandbox Escape漏洞后,进行了清理。图5可以看到,它从EFI系统分区中删除了一个名为root的文件,将XPC消息发送到SegressSynthesisd(图5),并删除了Safari cache文件。

图4:CloudMensis挂载EFI分区的反编译代码

图5:将XPC消息发送到speechsynthesisd

3.间谍代理组件

CloudMensis的第二阶段是一个更大的组件,包含许多功能,可从受攻击的Mac机器上收集信息。CloudMensis使用云存储,既可以从其操控者接收命令,也可以用于渗出文件。它支持三个不同的云提供商:pCloud,Yandex Disk和Dropbox,分析样本中的配置包含pCloud和Yandex Disk的身份验证令牌。

(1)配置

CloudMensis间谍代理所做的第一件事是加载其配置,其为14972字节长的二进制结构。它存储在〜/library/preverences/com.apple.itunesinfo29.plist上,使用密钥进行简单的XOR加密。如果配置文件不存在,则配置将使用硬编码的默认值,此外,它还尝试从先前版本的CloudMensis配置文件中导入值:

  • ~/Library/Preferences/com.apple.iTunesInfo28.plist

  • ~/Library/Preferences/com.apple.iTunesInfo.plist

配置包括以下:

  • 云存储提供商极其身份验证令牌

  • 随机生成的bot标识符

  • Mac机器的相关信息

  • CloudMensis使用的各种目录的路径

  • 操控者感兴趣的文件扩展名

图6是文件扩展名的默认列表,表明攻击者对受害者Mac机器上的文档、电子表格、录音、图片和电子邮件消息感兴趣。比较罕见的格式可能是扩展名为.AMR和.3GA的录音文件,该录音是专门为语音压缩设计的。此列表中的其他有趣的文件扩展名是.hwp和.hwpx文件,它是韩国流行的文字处理程序Hangul Office(现为Hancom Office)生成的文档。

图6:CloudMensis的默认配置中找到的文件扩展名

(2)自定义加密

CloudMensis实现了自命名为Flowencrypt的加密功能,图7进行了分析。它需要一个字节作为种子,并通过对最近生成的字节执行一系列操作来生成密钥的其余部分,输入密文为输入明文与此密钥流的异或,由于最终字节的值将与其先前值之一相同,因此密钥流将进入循环。这意味着,即使密码看起来很复杂,也可以将其简化为静态密钥的异或。

图7: 分析FlowEncrypt方法

(3)绕过TTC

自2018年macOS Mojave(10.14)发布以来,访问某些敏感输入(例如屏幕捕获,摄像头,麦克风和键盘事件)受到了称为TCC(透明、同意和控制)系统的保护。当应用程序试图访问某些功能时,macOS会提示用户是否合法的请求,谁可以授予或拒绝访问。最终,将TCC规则保存到Mac上的数据库中,该数据库受SIP的保护,以确保只有TCC守护进程才能进行更改。

CloudMensis使用两种技术绕过TCC,从而获得对屏幕的访问,能够扫描可移动存储以获取信息,并能够记录键盘事件。

如果禁用SIP,则不再保护TCC数据库(TCC.db)免受篡改,在这种情况下,CloudMensis在使用敏感输入之前添加了条目以授予自己的权限。

如果启用了SIP,但Mac在10.15.6之前运行了任何版本的macOS Catalina,则CloudMensis将利用CVE-2020-9934漏洞,使用TCC daemon(tccd)加载CloudMensis可以写入的一个数据库。

首先在~/library/application support/com.apple.spotlight/library/application/com.apple.tcc/下创建一个新的数据库,如图8所示。

图8: 检查已经存在非法的TCC数据库文件

然后,它使用laundingctl setenv将HOME环境变量设置为〜/Library/Application Support/com.apple.apple.spotlight,以便TCC daemon加载替代数据库而不是合法的数据库。图9显示了如何使用NSTask。

图9: 结合Launchd与Launchctl设置HOME环境变量并重新启动tccd

(4)与C&C服务器通信

为了与操控者通信,CloudMensis配置包含多个云服务提供商的身份验证令牌。配置中的每个条目都用于不同的目的,所有这些都可以使用CloudMensis支持的提供商。在分析的样本中,支持Dropbox, pCloud, 和 Yandex Disk。

根据全局变量名称,使用恶意软件CloudCmd的第一家商店用于持有传输到bot及其结果的命令。另一个被称为CloudData的恶意软件被用来从受损的Mac中渗出信息。第三个称为CloudShell的恶意软件用于存储Shell命令输出。

在尝试获取远程文件之前,CloudMensis首先将有关的Mac机器的RSA加密报告上传到CloudCMD上的 / January /目录中,该报告包括共享私密信息,例如bot标识符和口令。

然后,为了接收命令,CloudMensis在CloudCmd存储中的以下目录下获取文件:/febrary//may//。每个文件都会下载、解密并分发给AnalizecmdfileName方法。

CloudData存储用于上传操控者请求的较大文件,在上传之前,将大多数文件添加到受口令保护的ZIP存档中。口令在首次启动CloudMensis时生成,保存在配置中,并在初始报告中传输到操控者。

(5)命令

在分析的CloudMensis样本中实现了39个命令,它们由49至93(包括57、78、87和90至92)的数字识别,有些命令需要其他参数,命令允许操作员执行以下操作:

  • 更改 CloudMensis 配置中的值:云存储提供商和身份验证令牌、感兴趣的文件扩展名、云存储的轮询频率等

  • 列出正在运行的进程

  • 开始截屏

  • 列出电子邮件和附件

  • 列出可移动存储中的文件

  • 运行shell命令并将输出上传到云存储

  • 下载并执行任意文件

图10显示了具有标识符84的命令,根据参数值列出了由launchd加载的所有工作。

图10: 命令84运行launchctl list以获取launchd工作

图11显示了一个更复杂的示例。具有标识符60的命令用于启动屏幕截图, 如果第一个参数是1,则第二个参数是通过startscreencapture下载、存储和执行的文件的URL,此外部可执行文件将作为Windowser将其保存在FaceTime Sandbox容器的库文件夹中。如果第一个参数为0它将启动先前删除的现有文件,就找不到此屏幕捕获代理的样本。

图11: 命令60如何启动屏幕截图

4. 来自云存储的元数据

CloudMensis使用的云存储中的元数据揭示了有关该操作的有趣细节。图12显示了CloudMensis使用的存储的树视图。

图12:来自CloudCmd存储的目录列表的树视图

通过这个元数据,可以获取观察视角,并绘制时间表。首先,pCloud帐户是在2022年1月19日创建的,4月22日起的目录列表显示,在云存储中创建了51个唯一的bot标识符以接收命令。由于这些目录是在首次启动恶意软件时创建的,因此可以使用其创建日期来确定系统初始失陷的日期。

5. 结论

CloudMensis对Mac用户是一种威胁,而且该恶意软件家族的操控者在他们感兴趣的目标中部署了CloudMensis间谍软件。使用围绕macOS缓解作用的漏洞利用表明,恶意软件操控者正在积极试图最大程度地提高其间谍操作的成功。同时,在本文研究期间,未发现未公开的漏洞(0days)。因此,建议使用最新的MAC,以避免被攻击。

目前,仍然不知道CloudMensis最初是如何确定攻击目标的。代码的质量一般和缺乏混淆表明,作者可能对Mac开发并不那么熟悉,尽管如此,仍有很多资源使CloudMensis成为强大的间谍工具,并对潜在目标构成威胁。

6.ATT&CK技战术映射

下表是根据MITRE ATT&CK框架版本11创建。

战略

ID

名字

描述

持久化

T1513.004

创建或修改系统进程:发布守护进程

CloudMensis下载器安装第二阶段作为全系统守护进程。

防御武器

T1553

修改可信控制

CloudMensis尝试绕过TCC

收集

T1560.002

存档收集的数据:通过库存档

存档收集数据:CloudMensis通过SSZipArchive来创建一个受密码保护的ZIP档案库。

T1056.001

键盘日志

Cloudmensis可以捕获和渗透键盘日志

T1113

屏幕捕捉

Cloudmensis可以捕获和渗透屏幕

T1005

本地系统数据

CloudMensis寻找具有特定扩展名的文件

T1025

可移动媒体数据

CloudMensis可以在连接时搜索可移动的媒体以获取文件数据

T1114.001

本地邮件收集

CloudMensis搜索邮件中的电子邮件和附件

命令与控制

T1573.002

非对称加密

CloudMensis初始报告使用公共RSA-2048密钥进行加密

T1573.001

对称加密

CloudMensis使用密码保护的ZIP档案加密删除文件

T1102.002

Web服务:双向通信

CloudMensis通过 Dropbox, pCloud, 或 Yandex Drive进行C&C通信

渗透

T1567.002

Web服务上的渗透:卸载到云存储CloudMensis通过 Dropbox, pCloud, 或 Yandex Drive渗透文件

7.

攻击指标 (IOCs)

(1)文件

SHA-1

文件名

描述ESET检测器

D7BF702F56CA53140F4F03B590E9AFCBC83809DB

mdworker3

下载器(execute)

OSX/CloudMensis.A

0AA94D8DF1840D734F25426926E529588502BC08

WindowServer, myexe

间谍代理(client)

OSX/CloudMensis.A

C3E48C2A2D43C752121E55B909FC705FE4FDAEF6

WindowServer, MyExecute

间谍代理(client)OSX/CloudMensis.A

(2)公钥

-----BEGIN PUBLIC KEY-----

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsGRYSEVvwmfBFNBjOz+Q

pax5rzWf/LT/yFUQA1zrA1njjyIHrzphgc9tgGHs/7tsWp8e5dLkAYsVGhWAPsjy

1gx0drbdMjlTbBYTyEg5Pgy/5MsENDdnsCRWr23ZaOELvHHVV8CMC8Fu4Wbaz80L

Ghg8isVPEHC8H/yGtjHPYFVe6lwVr/MXoKcpx13S1K8nmDQNAhMpT1aLaG/6Qijh

W4P/RFQq+Fdia3fFehPg5DtYD90rS3sdFKmj9N6MO0/WAVdZzGuEXD53LHz9eZwR

9Y8786nVDrlma5YCKpqUZ5c46wW3gYWi3sY+VS3b2FdAKCJhTfCy82AUGqPSVfLa

mQIDAQAB

-----END PUBLIC KEY-----

(3)使用路径

  • /Library/WebServer/share/httpd/manual/WindowServer

  • /Library/LaunchDaemons/.com.apple.WindowServer.plist

  • ~/Library/Containers/com.apple.FaceTime/Data/Library/windowserver

  • ~/Library/Containers/com.apple.Notes/Data/Library/.CFUserTextDecoding

  • ~/Library/Containers/com.apple.languageassetd/loginwindow

  • ~/Library/Application Support/com.apple.spotlight/Resources_V3/.CrashRep

‍参考链接:https://www.welivesecurity.com/2022/07/19/i-see-what-you-did-there-look-cloudmensis-macos-spyware/

编辑|李银霞

审校|何双泽、金矢

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

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