打开网易新闻 查看精彩图片

一个 Mac 挖矿软件被发现在其例行程序和 I2P 网络中使用开源组件来隐藏其流量。我们深入研究了这种恶意软件的旧版本,并分析了最新版本。

挖矿软件是攻击者最喜欢应用的恶意软件类型,一旦安装在受害者的设备上,它们几乎不需要维护。攻击者可以让挖矿软件伪装成合法的应用程序,诱骗易受攻击的用户在他们的系统上运行它。在这篇文章中,我们会介绍 2022 年 1 月上旬发现的货币挖矿软件样本的分析结果。该样本使用了几个经过修改的开源组件,攻击者对其进行了修改。该样本还被发现使用 i2pd(又名 I2P 守护程序)来隐藏其网络流量。I2pd 是隐形 Internet 协议或 I2P 客户端的 C++ 实现。I2P 是一个通用匿名网络层,它允许匿名的端到端加密通信,攻击者不会透露他们的真实 IP 地址。以前,其他 Mac 恶意软件样本(Eleanor、DOK、Keranger)使用 Tor 来隐藏其网络活动,因此 i2pd 的这种用法是最新出现的。

攻击过程
打开网易新闻 查看精彩图片
攻击过程

主要恶意软件样本被检测为 Coinminer.MacOS.MALXMR.H (SHA 256 9518906dc416de6c6a5d17479244cf698b062c1d6b4425d86ee6895ce66c7c39)。这是一个 Mach-O 文件,很早就被多家供应商标记,因为它包含与 XMRig 相关的字符串,这些字符串很容易被 Yara 等采购工具捕获。XMRig 是用于挖掘门罗币加密货币的命令行应用程序,由于其可用性和易用性,通常被其他恶意软件用于执行加密挖掘。

发现主要的 Mach-O 样本是临时签名的,如下图所示。这意味着 Mach-O 二进制文件不会轻易在 Mac 系统上运行,并且可能会被 Gatekeeper 阻止,这是一个内置的安全机制强制执行代码签名的 macOS 功能。

打开网易新闻 查看精彩图片

Mach-O 样本的数字签名,已经过临时签名

我们怀疑 Mach-O 样本以 DMG(一种用于压缩安装程序的 Apple 图像格式)封装到 Adobe Photoshop CC 2019 v20.0.6。但是,未成功获取父文件。我们根据下图中的代码片段得出了这个结论,该代码片段可以在其删除的文件中找到。在此代码中,示例尝试启动 /Volumes 路径中不存在的文件。需要注意的是,对于 DMG 文件,当在 macOS 上双击时,它们默认安装在 /Volumes 目录中。

尝试启动不存在文件的代码片段

安装货币挖矿软件
打开网易新闻 查看精彩图片
安装货币挖矿软件

发现主要的 Mach-O 样本(检测为Coinminer.MacOS.MALXMR.H)包含几个嵌入式 Mach-O 文件。执行时,它利用 AuthorizationExecuteWithPrivileges API 通过提示用户输入凭据来提升权限。

打开网易新闻 查看精彩图片

使用 AuthorizationExecuteWithPrivileges API 通过提示用户输入凭据来提升权限的代码片段

打开网易新闻 查看精彩图片

测试期间显示的用户提示

然后,该示例会将以下文件放入系统中:

/tmp/lauth

/usr/local/bin/com.adobe.acc.localhost

/usr/local/bin/com.adobe.acc.network

/usr/local/bin/com.adobe.acc.installer.v1

用于持久化的 lauth 文件
打开网易新闻 查看精彩图片
用于持久化的 lauth 文件

lauth 是 Mach-O 文件,负责为恶意软件的持久性例程创建以下文件:/Library/LaunchDaemons/com.adobe.acc.installer.v1.plist。正是这个文件在每次启动时启动 /usr/local/bin/com.adobe.acc.installer.v1。

打开网易新闻 查看精彩图片

LaunchDaemon plist 文件

该示例还尝试启动以下不存在的文件:/Volumes/Adobe Photoshop CC 2019 v20.0.6/Adobe Zii 2019 4.4.2.app/Contents/MacOS/.Patch。

打开网易新闻 查看精彩图片

lauth Mach-O 文件的代码片段

用于启动二进制文件的 com.adobe.acc.installer.v1 文件
打开网易新闻 查看精彩图片
用于启动二进制文件的 com.adobe.acc.installer.v1 文件

com.adobe.acc.installer.v1 文件是 com.adobe.acc.installer.v1.plist 在每次启动时启动的 Mach-O 二进制文件。执行后,它会休眠 60 秒,然后启动以下 Mach-O 二进制文件:

/usr/local/bin/com.adobe.acc.localhost

/usr/local/bin/com.adobe.acc.network

打开网易新闻 查看精彩图片

com.adobe.acc.installer.v1 的代码片段

com.adobe.acc.localhost 挖矿示例
打开网易新闻 查看精彩图片
com.adobe.acc.localhost 挖矿示例

Mach-O 二进制文件 com.adobe.acc.localhost 负责挖矿示例。该文件是经过修改的 XMRig 命令行应用程序。启动应用时在参数中输入--help 或--version 即可看到。--version 参数显示 XMRig 二进制文件的版本,--help 参数显示可以使用的参数的列表和说明。

打开网易新闻 查看精彩图片

在示例上使用 --version 参数时显示的命令行信息

XMRig 是一个开源、跨平台的命令行应用程序,用于挖掘加密货币。用户可以从命令行输入他们的挖矿服务器地址以及挖矿服务器的用户名/密码作为参数。或者,用户也可以加载 JSON 格式的配置文件,而不是使用参数。

打开网易新闻 查看精彩图片

XMRig 应用程序的命令行选项取自 XMRig 网站,https://xmrig.com/docs/miner/command-line-options

对于此示例,我们使用从 https://xmrig.com/ 下载的 XMRig 对文件进行了交叉检查,我们能够在 com.adobe.acc.localhost 二进制文件中观察到以下 JSON 格式的配置文件。我们采购的其他 XMRig 二进制文件中不存在此嵌入式配置文件。

打开网易新闻 查看精彩图片

com.adobe.acc.localhost 中嵌入的 JSON 格式的配置文件

以下是嵌入式配置文件中的以下值得注意的条目:

挖矿服务器:127.0.0.1:4545

用户名:pshp

密码:x

需要注意的是,挖矿服务器地址似乎无效,因为 127.0.0.1 地址是本地主机地址。

打开网易新闻 查看精彩图片

恶意软件样本(右)和 XMRig 二进制文件(左)的比较。请注意恶意软件样本使用嵌入式 JSON 格式的配置文件。

将 /usr/local/bin/com.adobe.acc.network 识别为修改后的 i2pd 应用程序
打开网易新闻 查看精彩图片
将 /usr/local/bin/com.adobe.acc.network 识别为修改后的 i2pd 应用程序

在检查 com.adobe.acc.network Mach-O 文件中的可读字符串后,我们能够确定它是经过修改的 i2pd 应用程序。使用 --version 或 --help 参数时,命令行中的以下显示支持这一发现。

打开网易新闻 查看精彩图片

在示例上使用 --version 参数时显示的命令行信息

如前所述,i2pd 是用 C++(而不是 Java)编写的 I2P 的开源替代实现。

I2P 是一个匿名网络层(实现为混合网络),可以躲避安全审查,进行点对点通信。匿名连接是通过加密用户的流量(通过使用端到端加密)并通过分布在世界各地的大约 55000 台计算机的志愿者运行网络发送来实现的。I2P 也可以看作是 Tor 的替代方案。

我们将恶意软件二进制文件与从该链接下载的相同版本的官方二进制文件进行了比较:https://github.com/PurpleI2P/i2pd/releases/download/2.27.0/i2pd_2.27.0_osx.tar.gz。

由于二进制文件大小约为 10 MB,因此查找恶意软件例程具有挑战性。正因为如此,我们将注意力集中在官方版本中没有的可读字符串和代码上。然后我们能够找到以下可疑字符串和相关代码片段:e4ppgzueqjiam3qvhzffwraakvcgzrjp5dzl3xzv24w6q5rjr7kq.b32.i2p:4545I。

打开网易新闻 查看精彩图片

com.adobe.acc.network 中包含配置信息的代码片段。请注意,图像经过编辑以便于查看。

以下信息取自上图:

打开网易新闻 查看精彩图片

我们查看了 i2pd 文档,我们能够从以下链接中找到一些有用的信息:https://i2pd.readthedocs.io/en/stable/user-guide/tunnels/#client-tunnels。

打开网易新闻 查看精彩图片

i2pd 文档的屏幕截图

基于上述信息,我们可以得出结论,到 127.0.0.1:4545 的 XMRig 流量将通过 i2pd 隧道传输到 e4ppgzueqjiam3qvhzffwraakvcgzrjp5dzl3xzv24w6q5rjr7kq.b32.i2p:4545。我们可以使用 lsof 终端命令查看此连接。

lsof 命令显示示例访问的 IP 地址和端口

需要注意的是,网站e4ppgzueqjiam3qvhzffwraakvcgzrjp5dzl3xzv24w6q5rjr7kq.b32.i2p:4545只能通过I2P访问。

发现旧样本
打开网易新闻 查看精彩图片
发现旧样本

我们使用 TLSH、Yara 和其他工具在 VirusTotal 和我们的样本集合中寻找其他类似的样本。我们能够找到以下样本,它们也使用 i2pd 将流量隧道传输到 I2P 网站以下载可能的恶意样本。

打开网易新闻 查看精彩图片

在分析了较旧的样本后,我们发现了某些相似之处:

这些样本被怀疑伪装成 Adobe Photoshop 或 Logic Pro X。

所有五个示例都使用 i2pd 访问同一个 i2pd 下载服务器。

下载服务器托管多个文件。

一些样本利用随机文件名和零字节填充来逃避检测。

观察到四个样品具有持久性常规,一个示例尝试覆盖已安装的 Adobe Photoshop 应用程序中的 Mach-O 可执行文件。

怀疑所有样本都封装在 DMG 文件中,因为这些样本尝试从默认挂载 DMG 文件的 /Volumes 目录启动或复制。

对于下载的后缀为“_md5”的文件,其内容预计为md5哈希。哈希值将与其他下载文件的 md5 哈希值进行比较。如果它们不相等,带有“_md5”后缀的文件将重试下载。

对于较旧的示例,创建了两个隧道,但只使用了 127.0.0.1:4546。最新的挖矿软件样本只创建了一个隧道:127.0.0.1:4545。

lsof 命令显示了旧样本访问的 IP 地址和端口

总结
打开网易新闻 查看精彩图片
总结

我们调查了一个使用多个个性化开源应用程序来增强其恶意程序的挖矿软件样本。我们发现,即使修改很小,它们似乎也很有效。我们还发现,该恶意软件利用 i2pd 将其网络流量隐藏在未经训练的人眼中,这与其他使用知名 Tor 的恶意软件不同。

参考及来源:https://www.trendmicro.com/en_us/research/22/b/latest-mac-coinminer-utilizes-open-source-binaries-and-the-i2p-network.html