导语:研究人员近期发现一个macOS后门Calisto,Calisto木马是Proto恶意软件家族的第一个成员。 本文将对Calisto进行深入分析。
Calisto木马应该在2016年被创建,并且被上传到VirusTotal了。但直到两年后的2018年5月,反病毒软件都一直没有检测到Calisto。
MacOS上的恶意软件并不常见,发现的样本中也含有一些非常常见的特征。
传播
虽然研究人员还没有该后门传播方式的可信证据。但Calisto安装文件是一个未签名的DMG镜像,伪装成Intego的安全软件(mac版本)。有趣的是,Calisto开发者选择的是该程序的第9版本。
下面比较一下恶意软件和官网下载的Mac Internet Security X9:
从上图可以看出,这两个应用是非常相似的,如果之前没有用过该应用的话,应该是很难看出来区别。
安装
应用安装时间会呈现给用户一个虚假的许可协议,协议中的文本与Intego的协议内容是不同的,可能是开发者使用的之前版本的许可协议。
然后,恶意软件会要求用户输入用户名和密码,这与在macOS上安装其他软件是一样的。
在收到用户输入的凭证时,程序会挂起并出现错误,建议用户从官网下载新的安装包(是不是平时也遇到过这样的情况?所以一切看起来都很正常)。
该技术其实很简单,不过却很有效。而官网下载的程序在安装过程中不会出现什么问题,而恶意软件会在后台默默地工作。
木马分析
开启SIP
SIP,SystemIntegrityProtection(系统完整性保护),是为了保护系统进程、文件、文档不被其它进程修改。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