macOS Calisto木马分析

2019-04-04 约 2512 字 预计阅读 6 分钟

声明:本文 【macOS Calisto木马分析】 由作者 angel010 于 2018-07-21 17:38:37 首发 先知社区 曾经 浏览数 3044 次

感谢 angel010 的辛苦付出!

本文翻译自:https://securelist.com/calisto-trojan-for-macos/86543/


研究人员近期发现一个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

关键词:[‘技术文章’, ‘技术文章’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now