首页
社区
课程
招聘
Bitdefender 发现针对 macOS 的新型间谍软件 JokerSpy
发表于: 2023-6-27 11:00 6607

Bitdefender 发现针对 macOS 的新型间谍软件 JokerSpy

2023-6-27 11:00
6607

在6月初,Bitdefender的Mac安全研究人员发现了一种针对 macOS 的新型高级间谍软件,目前已被Bitdefender命名为JokerSpy。

目前,大部分安全厂商都未能检测此间谍软件,并且关于它们的信息非常有限。(Emisoft,eScan,Gdata和 Trellix(原McAfee)使用了Bitdefender的反病毒引擎)

样本分析 shared.dat

shared.dat是一个通用的Python后门文件,它使用rot13替换来隐藏特定文件路径和字符串的值。它还生成一个唯一的设备标识符,以便在后续对命令与控制中心的请求中使用。

执行时,后门首先生成上述唯一设备标识符(UID)。然后,使用该UID作为临时文件的名称(<uid>.dat)。恶意软件接下来进入一个while True循环,在此期间尝试使用自定义数据包格式与远程服务器进行通信。这些数据包以GITHUB_RES或GITHUB_REQ开头,后跟前一步生成的UID。后门支持通过远程服务器发送的四个命令,以cmdType数字形式表示:

代码501:提取基本信息

当后门接收到cmdType为501的命令时,它会提取以下详细信息:当前时间、用户名、主机名、操作系统版本,以及执行以下命令的结果:

在Unix系统上执行ifconfig -a和ps -ef;
在Windows系统上执行ipconfig /all和tasklist /svc。
这些详细信息还会被写入一个作为参数传入的文件中,本例中文件名为b.dat。

代码502:CmdExec

cmdExec函数显然用于使用subprocess.Popen函数运行作为参数提供的特定命令。请求中包含用base64编码的命令,结果也使用相同的方法进行编码。

代码503:DownExec

DownExec例程根据受害者的操作系统表现不同。对于MacOS设备,该函数将一个文件写入到/Users/Shared/AppleAccount.tgz。从服务器接收的内容在写入存档时也使用base64编码。它将存档解压缩到/Users/Shared文件夹,然后打开/Users/Shared/TempUser/AppleAccountAssistant.app应用程序。

在Linux系统上,恶意软件调用dist_name函数,该函数检查/etc/os-release以验证受害者发行版是Debian、Fedora还是其他系统。该函数将从C2接收到的一些C代码写入一个临时文件tmp.c,然后在Fedora上使用cc命令,在Debian上使用gcc命令将其编译为/tmp/.ICE-unix/git文件。编译完成后,该文件在后台执行,同时使用C2接收到的两个参数。

代码504:KillSelf

这个函数很好理解,只是用于退出脚本。

sh.py – 一个更强大的后门

sh.py(SHA-1 bd8626420ecfd1ab5f4576d83be35edecd8fa70e)后门也是用Python编写的,具有跨平台功能。它将配置选项存储在~/Public/Safari/sar.dat文件中,先将其编码为Base64格式。存储在该文件中的设置包括UID(用户ID)、SleepCycleMin(最小睡眠周期时间)和两个可能的服务器URL。与shared.dat后门类似,sh.py也生成并保存一个UID(虽然是一个9位数)。

与shared.dat后门不同的是,这个后门没有硬编码的C&C服务器值。相反,在运行脚本时可以作为参数提供C&C的值,或者从设置文件中加载。

在主函数中,脚本使用while循环与远程服务器通信,并使用process_command函数处理特定命令,该函数接收以下任一值作为参数:

"L" -> 列出文件(路径、大小、访问时间、权限)
"C" -> 执行系统上的命令并输出结果
"CD" -> 切换目录
"XS"、"XSI" -> 使用exec执行命令。与"XS"不同的是,"XSI"先将命令编码为Base64格式再执行。
"R" -> 删除文件/目录
"E" -> 执行特定路径下的文件(可带参数)
"U" -> 将从服务器接收到的数据解码(Base64)后写入文件
"D" -> 从文件中读取数据,并将其分批以Base64格式发送给服务器
"G" -> 调用load_setting()函数,并将当前配置(来自sar.dat文件)以Base64格式发送给服务器
"W" -> 使用save_settings函数为特定选项设置值,比如SleepCycleMin或ServerUrl(2个元素的数组)
该后门还包括一个名为'get_basic_information'的函数,该函数提取系统的特定细节,例如主机名、用户名、操作系统版本、Python版本等等。当执行该函数时,脚本尝试连接到两个服务器URL之一,以便将这些详细信息发送过去。如果第一个URL不可用,则尝试与第二个URL进行联系。

xcc 间谍软件的前身

与前两个文件不同,这个第三个组件是一个FAT二进制文件(多架构文件),包含了两种架构(x86 Intel和ARM M1)的Mach-O文件。xcc二进制文件使用Swift编写,目标MacOS 12及更高版本。它的主要目的似乎是在使用潜在的间谍软件组件之前检查权限(可能用于捕获屏幕),但并不包含间谍软件组件本身。这让我们相信这些文件是更复杂攻击的一部分,并且我们调查的系统中缺少了几个文件。

除了6月1日上传的xcc文件之外,我们还找到了一个日期为6月6日的第二个文件(在我们的IoC列表中标记为样本E)。与"原始"的xcc文件不同,这个文件只包含x86架构的Mach-O二进制文件。

xcc文件具有特定的自定义签名,意味着它们与任何已知的苹果开发者都不相关。文件的标识符包含关键字XProtectCheck,以及文件内容中指定的路径"/Users/joker/Downloads/Spy/XProtectCheck/",这暗示了该项目的目的,以及该组件的角色。

xcc检查由苹果的TCC(透明度、同意和控制)管理的权限,例如完全磁盘访问、屏幕录制和辅助功能。辅助功能方面使用了"AXIsProcessTrusted"函数,它是macOS辅助功能API的一部分,而捕获屏幕的权限则通过调用CGPreflightScreenCaptureAccess()来获取。另外,函数getTopWindowApp使用了苹果的frontmostApplication属性来识别用户当前正在与之交互的活动应用程序。

命令与控制

命令与控制服务器在share.dat Python后门中被硬编码。首次提到该域名可追溯到2023年2月10日,大致在同一时间,有一系列与感染的MacOS QR码阅读器(QRLog)相关的推文中提到了它。

检测

Bitdefender将Python组件标记为Trojan.Python.JokerSpy。

Mach-O二进制文件被检测为Trojan.MAC.JokerSpy。

IOC

文件:

网址:https://www.git-hub.me/view.php

目前,Bitdefender的安全研究人员仍在持续追踪JokerSpy,如果您的macOS仍然未安装防护,我建议您尽快采取以下措施来保护您的系统:

  • 安装可信赖的安全软件:选择一个经过认证且受信任的安全软件,如Bitdefender等,并确保定期更新其病毒定义库和程序版本。
  • 谨慎设置反病毒排除。
  • 执行macOS操作系统和应用程序的更新:及时安装操作系统和应用程序的安全更新,以修补已知的漏洞并增强系统安全性。
  • 谨慎下载和打开附件:避免从不受信任的来源下载文件,特别是来自未知发件人的电子邮件附件。一定要验证文件的来源和可靠性。
  • 部署更佳高级的防护,例如EDR、XDR、MDR等。

阅读Bitdefender博客原文:

https://www.bitdefender.com/blog/labs/fragments-of-cross-platform-backdoor-hint-at-larger-mac-os-attack/

了解 Bitdefender EDR/XDR/MDR/EPP/容器安全/云工作负载安全解决方案,联系合作:

致电:4000-132-568

联系:sales@bitdefender-cn.com


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 12942
活跃值: (9558)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
又是服务号。咋不注册公众号呢。。。
2023-6-27 17:19
0
游客
登录 | 注册 方可回帖
返回
//