攻击|与OceanLotus 相关的macOS 后门

Trendmicro研究人员最近发现了一个与OceanLotus 组织相关的新后门。该新变种的部分更新包括一些新的行为和域名。截止目前,仍然有许多杀毒软件仍然无法成功检测。
由于该后门的动态行为和代码与之前的OceanLotus样本非常相似,因此研究人员确认这是OceanLotus的样本。
攻击|与OceanLotus 相关的macOS 后门
文章插图
攻击|与OceanLotus 相关的macOS 后门
文章插图
图 1-2. OceanLotus样本(上)和最新OceanLotus样本(下)的比较
OceanLotus主要针对传媒、科研等行业的组织发起定向攻击。最近,研究人员发现有攻击者利用这些恶意网站来传播恶意软件。
因为攻击中使用的文档是越南语的,而且之前的样本也是攻击越南,因此研究人员分析后怀疑样本背后的攻击者主要攻击越南用户。
样本
样本是以zip文件中的app来传播的。使用了word文件的图标作为伪装,尝试伪装成为合法的word 文件。
攻击|与OceanLotus 相关的macOS 后门
文章插图
图 3. 样本文件名、图标和app bundle结构
恶意软件使用的另一个绕过检测的技术是在app bundle名中加入特殊字符。当用户通过macOS Finder app或终端命令行寻找伪造的doc 文件夹时,文件夹的名字是"ALL tim nha Chi Ngoc Canada.doc" (“tìm nhà Ch? Ng?c”,翻译过来就是“找到Mrs. Ngoc的房子”)。但是研究人员检查原始的zip文件在"." 和 "doc"之间发现了3个字节。
攻击|与OceanLotus 相关的macOS 后门
文章插图
图 4. "." 和 "doc"之间的特殊字符
3个字节的"efb880"是UTF-8编码的。根据UTF-8映射,相关的Unicode 编码是"U FE00"。
攻击|与OceanLotus 相关的macOS 后门
文章插图
表1. UTF-8映射
操作系统会将app bundle 看作不支持的目录类型,默认动作open 命令是执行恶意app。否则,如果后缀是没有特殊字符的.doc,就会调用Word 来打开app bundle,但是因为是无效的文件,app就无法正常打开。
app bundle样本的代码签名信息如下:
攻击|与OceanLotus 相关的macOS 后门
文章插图
图 5. 样本的代码签名信息
App bundle中包含有2个文件:
· ALL tim nha Chi Ngoc Canada: 含有主恶意路径的shell脚本;
· configureDefault.def: 执行过程中展示的word文件。
攻击|与OceanLotus 相关的macOS 后门
文章插图
图 6. “ALL tim nha Chi Ngoc Canada” 文件内容
攻击|与OceanLotus 相关的macOS 后门
文章插图
图 7. 执行文件后展示的文件
Shell脚本运行后,会执行以下动作:
1)删除"*ALL tim nha Chi Ngoc Canada.?doc*”中文件的文件隔离属性;
2)尝试移除系统中文件的文件隔离属性;
3)复制"ALL tim nha Chi Ngoc Canada.?doc/Contents/Resources/configureDefault.def(doc)"到"/tmp/ALL tim nha Chi Ngoc Canada.doc(doc)" 中;
4)打开"/tmp/ALL tim nha Chi Ngoc Canada.doc(doc)";
5)提取base64编码的二进制文件到"ALL tim nha Chi Ngoc Canada.?doc/Contents/Resources/configureDefault.def(fat - binary)"中,这是第二阶段payload;
6) 将第二阶段payload的访问权限修改为执行第二阶段payload的启动;
7) 删除恶意软件app bundle "ALL tim nha Chi Ngoc Canada.?doc";
8) 复制 "/tmp/ALL tim nha Chi Ngoc Canada.doc(doc)"到"{execution directory}/ALL tim nha Chi Ngoc Canada.doc";
9) 删除"/tmp/ALL tim nha Chi Ngoc Canada.doc"。
攻击|与OceanLotus 相关的macOS 后门】第二阶段payload
执行后,第二阶段payload(ALL tim nha Chi Ngoc Canada.?doc/Contents/Resources/configureDefault.def)会执行以下动作:
1) 释放第三阶段payload到~/Library/User Photos/mount_devfs;
2) 通过创建~/Library/LaunchAgents/com.apple.marcoagent.voiceinstallerd.plist 为样本创建驻留;
攻击|与OceanLotus 相关的macOS 后门
文章插图
图 8. Plist文件 ~/Library/LaunchAgents/com.apple.marcoagent.voiceinstallerd.plist
3) 使用touch命令修改样本的时间戳;
图 9. 释放的文件的时间戳
4) 删除自己。
第三阶段payload
在第三阶段payload (~/Library/User Photos/mount_devfs)中,字符串使用base64编码和字节修改来加密。
攻击|与OceanLotus 相关的macOS 后门
文章插图
图 10. 加密的字符串
攻击|与OceanLotus 相关的macOS 后门
文章插图
攻击|与OceanLotus 相关的macOS 后门
文章插图
图 11-12. 解密方法
与老版本的OceanLotus 后门类似,新版本的后门中包含2个主函数: