作者:myswsun
预估稿费:180RMB
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
0x00 前言
很多Mac用户可能认为他们的电脑能在类似勒索软件的攻击中幸免,认为他们的系统是相对安全的。Mac用户相对于Windows用户来说确实攻击比较少,但是这个和操作系统漏洞级别无关。事实上主要由于90%的个人用户使用Windows,而只有6%使用Mac。
0x01 MacRansom 网站
最近,我们的FortiGuard实验室发现了Ransomware-as-a-service (RaaS),其在TOR网络中使用一个web入口成为现今的一个趋势。然而,这种情况下,看到Windows以外的网络攻击是有趣的。这还是第一次在Mac OS上面看到RaaS。
这个MacRansom变种从网站中得到不易。它必须直接联系作者构建勒索软件。首先,我们认为它是个骗局,因为没有样本。但是通过作者邮件得到了意外的答复。
在我们首次邮件问询中,我们向作者说明了大概的要求,例如需要支付的比特币数量,触发勒索软件的日期,并且如果有人插入了USB设备它能被执行。
我们在上午11点 (GMT+8)发送了邮件,大约在当天下午9点得到了首次回应。
回应1(9点)
达成6月1日触发的共识,并提供了我的比特币地址,作者发了样本。
回应2(11点)
因为作者响应很快,我们试图深入的询问勒索软件相关的内容。
回应3(12点)
观察回应的时间,可以猜到作者可能在不同的时区,因为一般在深夜回复(对她们来说可能是早上)。同时,在第一次回应中,作者说“在你当地时间的6月1日午夜”。在发邮件时他们可能注意到了时间的不同。
为了验证勒索软件作者的地理位置,我们查看了原始的SMTP头,并且找到了他们的时区是GMT – 4。
0x02 行为分析
接下来,我们开始执行恶意软件。下面是作者宣称的功能点。我们看了下代码,查看是否有这些功能。
运行MacRansom,首先得到一个来自未定义的开发者的一个提示。因此,只要用户没有打开来自未知的开发者的文件,他们是安全的。点击打开使得勒索软件可以运行。
0x03 反分析
首先这个勒索软件检查自己是否运行于非Mac环境中,或者是否被调试。如果这些条件没有满足,勒索软件将会终止。
它以PT_DENY_ATTACH为参数调用ptrace或者进程跟踪命令行来检查勒索软件是否被附加调试器。
然后,使用sysctl hw.model命令行,检查机器型号并与“Mac”字符串比较。
最后,检查机器是否有两个CPU
0x04 启动点
一旦通过了初始检查,勒索软件创建了一个启动点~/LaunchAgent/com.apple.finder.plist。文件名模仿了Mac中的合法文件,以减少可疑程度。这个启动点允许MacRansom在每次启动是运行,并确保在触发时间加密。
com.apple.finder的内容:
然后拷贝原始的可执行文件到~/Library/.FS_Store。再次伪装成合法的文件名。在文件拷贝后,使用touch -ct 201606071012 '%s'命令改变时间戳。改变时间戳通常用来混淆调查取证。
然后勒索软件使用launchctl来加载com.apple.finder.plist。
0x05 加密
如上文提到,加密有触发时间,其由作者设置。在我们的例子中,是2017年6月1日零点。如果日期没到,勒索软件退出。
如果触发时间到了,勒索软件开始使用下面的命令行来枚举文件。对于勒索软件这不是常见的枚举文件的方式,但是一直很有效,因为大部分勒索软件遍历目录,和包含的文件扩展来确定加密文件。
%s是勒索软件的文件路径:
勒索软件最多只加密128个文件,通过上述命令返回。
和其他加密勒索软件比,这个加密算法是核心部分,在这上面我们花了大量的时间。我们的目的是找到RSA加密路径,然而这个勒索软件不像之前披露其他的OSX加密勒索软件那么复杂。它使用硬编码密钥的对称加密算法来劫持受害者的文件。这个勒索软件使用了两种对称密钥:
ReadmeKey: 0x3127DE5F0F9BA796
TargetFileKey: 0x39A622DDB50B49E9
ReadmeKey用来解密_README_文件,其包含了勒索提示和指令,TargetFileKey用来加密和解密受害者的文件。
值得注意的一件事是我们发现当逆向加密/解密算法时,TargetFileKey由随机生成的数字生成。换句话说,加密的文件一旦在勒索软件退出后将无法解密,TargetFileKey的内存将被释放,因此创建一个解密器或者恢复工具来恢复加密的文件有点挑战。而且,它没有任何与C&C服务器通信的功能,意味着没有TargetFileKey的密钥副本。但是,技术上恢复TargetFileKey是可行的。已知的技术是暴力破解。现代CPU暴力破解8字节长的密钥不需要花太久。
然而,我们依然怀疑作者号称能解密被劫持的文件,甚至假设受害者发送给作者一个未知的随机文件,见下图的勒索提示,不是完全正确的。
加密过程的伪代码如下:
在成功加密文件之后,它也会加密com.apple.finder.plist和原始的可执行文件。改变时间戳,并删除他们。作者这么做是为了即使使用恢复工具得到勒索软件,也是无意义的。
勒索软件需要0.25比特币(大约700美元),需要受害者联系getwindows@protonmail.com来解密。
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: