用户
搜索

[思路/技术] macOS Calisto木马分析

该用户从未签到

版主

推荐组组员(最帅的那个)

Rank: 7Rank: 7Rank: 7

32

主题

45

帖子

354

魔法币
收听
0
粉丝
1
注册时间
2018-4-12

i春秋推荐小组

Arizona 版主 推荐组组员(最帅的那个) i春秋推荐小组 楼主
发表于 2018-7-25 14:42:46 24010

macOS Calisto木马分析

本文翻译自:https://securelist.com/calisto-trojan-for-macos/86543/
翻译文章来自:https://xz.aliyun.com/t/2465
译者:angel010

研究人员近期发现一个macOS后门Calisto,Calisto木马可能是Proto恶意软件家族的第一个成员。本文将对Calisto进行深入分析。

该恶意软件2016年就被上传到VirusTotal了,而2016年应该正是该恶意软件被开发出的时间。但直到2018年5月,两年过去了,反病毒软件一直没有检测到Calisto。

MacOS上的恶意软件并不常见,发现的样本中也含有一些非常常见的特征。

传播

其实研究人员还没有该后门传播方式的可信证据。但Calisto安装文件是一个未签名的DMG镜像,伪装成Intego的安全软件(mac版本)。有趣的是,Calisto开发者选择的是该程序的第9版本。

下面比较一下恶意软件和官网下载的Mac Internet Security X9:

从上图可以看出,这两个应用是非常相似的,如果之前没有用过该应用的话,应该是很难看出来区别。

安装

应用安装时间会呈现给用户一个虚假的许可协议,协议中的文本与Intego的协议内容是不同的,可能开发者使用的之前版本的许可协议。

然后,恶意软件会要求用户输入用户名和密码,这与在macOS上安装其他软件是一样的。

在收到用户输入的凭证时,程序会挂起并出现错误,建议用户从官网下载新的安装包(是不是平时也遇到过这样的情况?所以一切看起来都很正常)。

该技术其实很简单,但是也很有效。而官网下载的程序在安装过程中不会出现什么问题,而恶意软件会在后台默默地工作。

木马分析

SIP,SystemIntegrityProtection(系统完整性保护),是为了保护系统进程、文件、文档不被其它进程修改,不管是否为root user,SIP技术主要分为文件系统保护,运行时保护,内核扩展签名,文件系统保护主要是通过沙盒机制限制root权限,运行时保护,主要就是保护关键进程无法被进程代码注入,挂调试器以及内核调试等,内核扩展签名,所有的第三方kext必须被安装到/Library/Extensions,并强制使用签名。

开启SIP

Calisto的活动在SIP开启时是非常受限的,因为SIP是2015年发布的,而Calisto是2016年或之前开发的,所以开发者好像并没有考虑到SIP的限制作用。但是许多用户在很多情况下都会关闭SIP,这也就给了Calisto很大的活动空间。所以,研究人员建议尽量不要关闭SIP。

通过子进程日志和反编译的代码可以分析出Calisto的活动:

图 Trojan执行的命令日志

图 Calisto样本中硬编码的命令

可以看到木马使用了一个名为.calisto的隐藏目录来存储:

  • Keychain存储数据;
  • 从用户登陆密码窗口提取的数据;
  • 网络连接信息;
  • Google Chrome中的数据:历史记录、书签、Cookie。

Keychain存储用户保存的密码和token,包括Safari中保存的。存储的加密密钥就是用户的密码。

如果SIP开启,木马在修改系统文件时就会发生错误,这回违反木马的运作逻辑,导致木马停止运行。

错误信息

SIP关闭或不可用的情况

SIP关闭后,Calisto可以运行的功能就变多了。首先,会执行上面的步骤,但木马不会给SIP阻断;然后,执行下面的步骤:

  • 复制自己到/System/Library/文件夹;
  • 设置为开机自动启动;
  • 卸载DMG镜像;
  • 加入到无障碍服务中;
  • 收集系统的额外信息;
  • 开启系统远程访问权限;
  • 转发收集的数据到C2服务器。

下面看一下恶意软件执行的相关机制:
加入到开始菜单是macOS的经典技术,是通过在/Library/LaunchAgents/文件夹下创建一个.plist文件:

通过下面的命令卸载DMG镜像:

为了扩展能力,Calisto会直接修改TCC.db文件来将自己加入到无障碍服务中,反病毒软件对这类行为是非常敏感的。但该方法的另一个优点是不需要用户交互就可以完成。

Calisto的一个重要特征就是获取用户系统的远程访问权限,为了获取权限,需要:

开启远程登陆;

  • 开启屏幕共享;
  • 为用户配置远程登陆权限;
  • 允许所有用户远程登陆;
  • 开启macOS中隐藏的root账号,设置特定密码。

使用的命令如下:

虽然macOS中存在root用户,但是默认情况下是不开启的。系统重启后,Calisto会请求用户数据,但这需要输入真是root用户密码,而真是的root用户密码被Calisto修改了(root: aGNOStIC7890!!!)。这也说明了木马的原始性。

最后,Calisto会尝试将所有的数据从.calisto文件夹上传到犯罪分子的服务器上。研究人员发现,该服务器已经下线了:

恶意软件连接的C2服务器

其他功能

通过对Calisto静态分析发现了一些尚未使用的功能:

  • 加载处理USB设备的kernel扩展;
  • 从用户目录窃取数据;
  • 和整个系统一起自毁。

加载kernel扩展

处理用户目录

自毁

与Backdoor.OSX.Proton的连接

从概念上讲,Calisto后门聚合了一系列的Backdoor.OSX.Proton家族成员:

  • 首先,传播方法是相似的:恶意软件伪装成一个著名的反病毒软件(Backdoor.OSX.Proton);
  • 木马样本含有com.proton.calisto.plist;
  • 与Backdoor.OSX.Proton类似,木马能从用户系统中窃取大量的个人数据,包括Keychain的内容。

Proton恶意软件家族所有已知成员都在2017年被发现。而Calisto木马是2016年检测到的,因此可以假设这两个木马是同一作者,Calisto也可能是Backdoor.OSX.Proton的第一版本甚至原型系统。

为了防止Calisto、Proton和类似软件,应该:

  • 保持更新操作系统;
  • 不要关闭SIP;
  • 只运行从可信源下载的经过签名的软件,比如从APP store下载的软件;
  • 使用反病毒软件。

MD5

DMG image: d7ac1b8113c94567be4a26d214964119
Mach-O executable: 2f38b201f6b368d587323a1bec516e5d

除了蛋疼的研究人员,一般用户不会去关闭rootless机制的吧,所以说这病毒能做的事情还是非常有限的。侧面说明macos的安全还是比较高的。
使用道具 举报 回复
支持一下~
使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册