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

Calisto木马应该在2016年被创建,并且被上传到VirusTotal了。但直到两年后的2018年5月,反病毒软件都一直没有检测到Calisto。

图片.png

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

传播

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

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

图片.png

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

安装

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

图片.png

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

图片.png

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

图片.png

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

木马分析

开启SIP

SIP,SystemIntegrityProtection(系统完整性保护),是为了保护系统进程、文件、文档不被其它进程修改。Calisto的活动在SIP开启时是非常受限的,因为SIP是2015年发布的,而Calisto是2016年或之前开发的,所以开发者好像并没有考虑到SIP的限制作用。但是许多用户在很多情况下都会关闭SIP,这也就给了Calisto很大的活动空间。所以,研究人员建议尽量不要关闭SIP。

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

图片.png

Trojan执行的命令日志

图片.png

Calisto样本中硬编码的命令

图片.png

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

· Keychain存储数据;

· 从用户登陆密码窗口提取的数据;

· 网络连接信息;

· Google Chrome中的数据:历史记录、书签、Cookie。

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

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

图片.png

错误信息

SIP关闭或不可用的情况

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

· 复制自己到/System/Library/文件夹;

· 设置为开机自动启动;

· 卸载DMG镜像;

· 加入到无障碍服务中;

· 收集系统的额外信息;

· 开启系统远程访问权限;

· 转发收集的数据到C2服务器。

下面看一下恶意软件执行的相关机制:

加入到开始菜单是macOS的经典技术,是通过在/Library/LaunchAgents/文件夹下创建一个.plist文件:

图片.png

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

图片.png

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

图片.png

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

· 开启远程登陆;

· 开启屏幕共享;

· 为用户配置远程登陆权限;

· 允许所有用户远程登陆;

· 开启macOS中隐藏的root账号,设置特定密码。

使用的命令如下:

图片.png

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

图片.png

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

图片.png

恶意软件连接的C2服务器

其他功能

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

· 加载处理USB设备的kernel扩展;

· 从用户目录窃取数据;

· 和整个系统一起自毁。

图片.png

加载kernel扩展

图片.png

处理用户目录

图片.png

自毁

与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

源链接

Hacking more

...