【技术分享】针对勒索软件MacRansom的分析

https://p2.ssl.qhimg.com/t0178f812f66455bfc4.png

作者:myswsun

预估稿费:180RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿

0x00 前言

很多Mac用户可能认为他们的电脑能在类似勒索软件的攻击中幸免,认为他们的系统是相对安全的。Mac用户相对于Windows用户来说确实攻击比较少,但是这个和操作系统漏洞级别无关。事实上主要由于90%的个人用户使用Windows,而只有6%使用Mac。

http://p1.qhimg.com/t01338a3112f1f40327.png


0x01 MacRansom 网站

最近,我们的FortiGuard实验室发现了Ransomware-as-a-service (RaaS),其在TOR网络中使用一个web入口成为现今的一个趋势。然而,这种情况下,看到Windows以外的网络攻击是有趣的。这还是第一次在Mac OS上面看到RaaS。

http://p5.qhimg.com/t01647e1376931ab454.png

这个MacRansom变种从网站中得到不易。它必须直接联系作者构建勒索软件。首先,我们认为它是个骗局,因为没有样本。但是通过作者邮件得到了意外的答复。

http://p1.qhimg.com/t01cad97a9211af4fae.png

在我们首次邮件问询中,我们向作者说明了大概的要求,例如需要支付的比特币数量,触发勒索软件的日期,并且如果有人插入了USB设备它能被执行。

我们在上午11点 (GMT+8)发送了邮件,大约在当天下午9点得到了首次回应。

回应1(9点)

http://p4.qhimg.com/t01c873b88812ac5fe3.png

达成6月1日触发的共识,并提供了我的比特币地址,作者发了样本。

回应2(11点)

http://p0.qhimg.com/t01a4b29cdf9344fb94.png

因为作者响应很快,我们试图深入的询问勒索软件相关的内容。

http://p3.qhimg.com/t0139f505516fd8a457.png

回应3(12点)

观察回应的时间,可以猜到作者可能在不同的时区,因为一般在深夜回复(对她们来说可能是早上)。同时,在第一次回应中,作者说“在你当地时间的6月1日午夜”。在发邮件时他们可能注意到了时间的不同。

为了验证勒索软件作者的地理位置,我们查看了原始的SMTP头,并且找到了他们的时区是GMT – 4。

http://p0.qhimg.com/t01c2dad86753c838b3.png


0x02 行为分析

接下来,我们开始执行恶意软件。下面是作者宣称的功能点。我们看了下代码,查看是否有这些功能。

http://p2.qhimg.com/t013d857a6183b38119.png

运行MacRansom,首先得到一个来自未定义的开发者的一个提示。因此,只要用户没有打开来自未知的开发者的文件,他们是安全的。点击打开使得勒索软件可以运行。


0x03 反分析

首先这个勒索软件检查自己是否运行于非Mac环境中,或者是否被调试。如果这些条件没有满足,勒索软件将会终止。

它以PT_DENY_ATTACH为参数调用ptrace或者进程跟踪命令行来检查勒索软件是否被附加调试器。

http://p2.qhimg.com/t01da7abfad0083ebd2.png

然后,使用sysctl hw.model命令行,检查机器型号并与“Mac”字符串比较。

http://p4.qhimg.com/t012f60b8800ce7c17e.png

最后,检查机器是否有两个CPU

http://p0.qhimg.com/t01bdda0526c2c35391.png


0x04 启动点

一旦通过了初始检查,勒索软件创建了一个启动点~/LaunchAgent/com.apple.finder.plist。文件名模仿了Mac中的合法文件,以减少可疑程度。这个启动点允许MacRansom在每次启动是运行,并确保在触发时间加密。

com.apple.finder的内容:

http://p2.qhimg.com/t01fc158cad32959290.png

然后拷贝原始的可执行文件到~/Library/.FS_Store。再次伪装成合法的文件名。在文件拷贝后,使用touch -ct 201606071012 '%s'命令改变时间戳。改变时间戳通常用来混淆调查取证。

然后勒索软件使用launchctl来加载com.apple.finder.plist。


0x05 加密

如上文提到,加密有触发时间,其由作者设置。在我们的例子中,是2017年6月1日零点。如果日期没到,勒索软件退出。

http://p7.qhimg.com/t016ce0c4f1a09b1c7a.png

如果触发时间到了,勒索软件开始使用下面的命令行来枚举文件。对于勒索软件这不是常见的枚举文件的方式,但是一直很有效,因为大部分勒索软件遍历目录,和包含的文件扩展来确定加密文件。

%s是勒索软件的文件路径:

http://p4.qhimg.com/t016e58127f9dcb5177.png

勒索软件最多只加密128个文件,通过上述命令返回。

和其他加密勒索软件比,这个加密算法是核心部分,在这上面我们花了大量的时间。我们的目的是找到RSA加密路径,然而这个勒索软件不像之前披露其他的OSX加密勒索软件那么复杂。它使用硬编码密钥的对称加密算法来劫持受害者的文件。这个勒索软件使用了两种对称密钥:

ReadmeKey: 0x3127DE5F0F9BA796

TargetFileKey: 0x39A622DDB50B49E9

ReadmeKey用来解密_README_文件,其包含了勒索提示和指令,TargetFileKey用来加密和解密受害者的文件。

值得注意的一件事是我们发现当逆向加密/解密算法时,TargetFileKey由随机生成的数字生成。换句话说,加密的文件一旦在勒索软件退出后将无法解密,TargetFileKey的内存将被释放,因此创建一个解密器或者恢复工具来恢复加密的文件有点挑战。而且,它没有任何与C&C服务器通信的功能,意味着没有TargetFileKey的密钥副本。但是,技术上恢复TargetFileKey是可行的。已知的技术是暴力破解。现代CPU暴力破解8字节长的密钥不需要花太久。

然而,我们依然怀疑作者号称能解密被劫持的文件,甚至假设受害者发送给作者一个未知的随机文件,见下图的勒索提示,不是完全正确的。

加密过程的伪代码如下:

http://p1.qhimg.com/t013880390abfbace89.png

在成功加密文件之后,它也会加密com.apple.finder.plist和原始的可执行文件。改变时间戳,并删除他们。作者这么做是为了即使使用恢复工具得到勒索软件,也是无意义的。

勒索软件需要0.25比特币(大约700美元),需要受害者联系getwindows@protonmail.com来解密。

http://p3.qhimg.com/t0114adbb228e5db63d.png


0x06 总结

并不是每天都能看到新的专门针对Mac平台的勒索软件。尽管它的危害远低于目前针对Windows的勒索软件,但是它会加密受害者的文件或者阻止访问重要文件,从而造成严重危害。

这个MacRansom变种可能是模仿者制作的,因为我们看到很多来自之前的OSX勒索软件中的类似代码和想法。尽管它不同于之前的OSX勒索软件使用了反分析技巧,但是这些都是广为传播的技术。不管运行的操作系统平台,MacRansom是勒索软件盛行的另一个例子。针对勒索软件没有完美的缓解措施。然而,经常备份重要文件能将损失降到最低,同时要注意未知源或开发者的文件。


0x07 附录

Samples:

a729d54da58ca605411d39bf5598a60d2de0657c81df971daab5def90444bcc3 – Zip

Detected as OSX/MacRansom.A!tr

617f7301fd67e8b5d8ad42d4e94e02cb313fe5ad51770ef93323c6115e52fe98 – Mach-O file

Dropped files:

~/LaunchAgent/com.apple.finder.plist

~/Library/.FS_Store

MacRansom网站的FAQ:

http://p3.qhimg.com/t01361e9322249301b7.png

(完)