
Part1 前言
大家好,我是ABC_123。本篇文章继续讲解美国苹果手机"三角测量"攻击行动,该后门代码的兼容性暗示其使用了长达10年之久,今天我们重点讲解该行动在验证器后门阶段和三角测量后门TriangleDB阶段展现出的隐蔽手法,为大家的安全运营防护提供实用借鉴(文末有技术交流群的加群方式)。
《第135篇:美国APT的苹果手机"三角测量"行动是如何被溯源发现的》
《第136篇:美国NSA的苹果手机"三角测量"后门的窃密模块分析 | 机器学习引擎识别照片信息》

初始阶段JavaScript验证器后门
此验证器后门目的是检测目标环境是否是沙箱、调试环境,识别苹果设备浏览器指纹,完成初步信息收集,判断是否为重要目标,以供C2攻击者决定是否植入最终的TriangleDB三角测量后门。

在"三角测量"攻击的初始阶段,受害者会收到携带零点击(zero-click exploit)漏洞的隐蔽 iMessage 附件;该漏洞会在不触发用户交互的情况下,悄无声息地触发并控制苹果设备访问 backuprabbit[.]com 域下一处URL。该 URL 托管的页面包含混淆过的NaCl 加密库的JavaScript代码以及一个加密后的有效载荷,这个有效载荷就是 JavaScript 验证器后门。该验证器执行许多不同的检查,包括像 Math.log(-1)或 Math.sqrt(-1)这样的算术运算,以及 Media Source API、WebAssembly 等组件的可用性,以判断运行环境是否为真实目标设备、而非沙箱或分析环境。

为了进一步识别设备,黑客使用了一种叫做Canvas 指纹识别的技术。通过苹果设备浏览器使用 WebGL 绘制一个“粉色背景 + 黄色三角形”,然后读取生成图片的像素数据,计算一个独特的校验码(checksum),这样,每台设备因为显卡、系统、驱动不同,都会生成略微不同的数值,美国APT就能用这个数值来唯一识别这台设备。报告里那段代码就是用来画这个三角形的。一旦JavaScript验证器后门运行完毕:它会把采集到的设备信息加密后上传到另一个唯一的服务器地址(也是 backuprabbit[.]com 域名下的);服务器收到这些数据后,会决定是否继续感染这台设备;如果通过验证,会继续植入二进制验证器后门,继续收集信息对目标苹果设备进行判断。
第2阶段植入二进制验证器后门
该二进制验证器后门"Binary Validator"旨在判断运行环境是否处于沙箱或调试环境、以及目标苹果设备是否值得入侵,来决定是否继续向目标苹果设备植入后续TriangleDB三角测量后门。与此前讨论的 JavaScript 验证器后门不同,此样本为可在苹果设备上运行的 Mach-O 二进制可执行文件。该后门启动后首先对内嵌的配置数据进行 AES 解密,得到一个plist属性列表文件,这个 plist 文件包含了一组由验证器后门执行的操作,例如 DeleteLogs、DeleteArtifacts 等,这些命令定义了后门需要执行的具体操作,逆向分析人员及安全人员可以推断出它的功能,例如环境检测、设备指纹采集、越狱/调试状态判断及痕迹清理等。

plist文件内容如下:
<key>sco</key> <array> <string>DeleteLogs</string> <string>DeleteArtifacts</string> <string>ProcessList</string> <string>InterfaceList</string> <string>JailbreakDetect</string> <string>EnableAdTracking</string> <string>DeviceInfo</string> <string>InstalledApps</string> </array> <key>sda</key> <dict> <key>sdf</key> <array/> <key>sdi</key> <true/> <key>sdk</key> <array> <string>c99218578c03cfe347fababc838dd9f2</string> <string>3d527800ad9418b025340775eaf6454c</string> <string>07d2143cea9fe70f7a0fcc653a002403</string> <string>c66cc1d90cce4e9cb6b631e063c83d61</string>
验证器后门执行日志清理工作
DeleteLogs命令:从 /private/var/mobile/Library/Logs/CrashReporter 等目录中,删除特定进程在利用过程中可能产生的崩溃日志,防止受害者手机被取证导致漏洞利用过程被溯源出来。这些进程包括iMessage、网页浏览器及三角测量后门等。
DeleteArtifacts命令:该命令旨在清除与恶意 iMessage 附件相关的本地使用痕迹。二进制验证器后门会在 iOS 的不同系统数据库(例如 ids-pub-id.db、knowledgeC.db 等)中检索与攻击活动相对应的记录并删除。验证器后门会尝试获取苹果手机中所有已接收的iMessage列表,并获取每一条消息的发件人的Apple ID,并计算器哈希与其配置中包含用于发送恶意 iMessage 的约 40 个 Apple ID 的 MD5 哈希值进行对比,如果匹配就进行删除,防止被取证分析。安全分析人员通过暴力破解哈希的方式获得了若干 Apple ID恶意邮箱地址,这些账户被攻击者用来以iMessage消息附件的形式,将恶意代码投递给受害者。

一旦攻击者使用这些Apple ID 账号给目标苹果设备发送了恶意 iMessage附件,苹果设备会在多个数据库里留下攻击痕迹,如发送者、附件、收发时间等。此二进制验证器后门会在本地数据库里检索这些 ID,找到相关记录并删除,以免事后取证发现攻击痕迹。由于单个Apple ID账号很容易被封禁或被标记,因此美国APT使用了大约40个账号进行轮换,对不同的攻击行动、不同的受害者、不同的时间段进行轮换,保证攻击的稳定性,很多小量消息比单一来源的大量消息更不容易触发告警。
验证器后门执行信息收集工作
ProcessList命令:获取设备上正在运行的进程列表,以及网络接口的清单。
InterfaceList命令:查看设备上正在运行哪些程序、网络连接情况。
JailbreakDetect命令:检查目标设备是否已越狱。验证器实现了对大量越狱工具的检测,包括 盘古(Pangu)、xCon、Evasion7、Electra、unc0ver、checkra1n 等等。还可以检测经常运行在越狱设备上的软件,如Cydia、Frida。同时会检查是否运行在云端的iPhone平台Kerilium,该系统通常被用来做漏洞研究,那么三角测量后门的漏洞利用过程将自动失效。

EnableAdTracking命令:开启个性化广告追踪;用于追踪手机用户的上网行为。
DeviceInfo命令:收集受害苹果手机设备中的大量敏感信息,例如用户姓名、手机号码、IMEI 以及 Apple ID。这些信息都会被发送到C2服务器,用于评估受害者的苹果设备是否适合入侵。
InstalledApps命令:检索已安装应用程序的列表。收集设备上的 app 列表,判断用户类型或潜在兴趣。
验证器后门的PSPDetect功能
如下代码所示,给出的绝对路径表明该二进制验证器不但支持iPhone,同时也支持macOS系统,由此可见"三角测量"行动对macOS笔记本电脑也是奏效的。

如下反编译后的代码所示,该二进制验证器后门实现了一个未被调用的函数,代码中标记为 PSPDetect ,PSP是personal security product的缩写。这个标记对应的 PSPDetectFunc 函数会从验证器的配置文件中读取一个文件列表(样本中的文件列表是空的),然后检查这些文件是否存在于系统中,如果存在就输出这些文件的路径。从此功能集合其命名注释可推断,这个函数是用来检测个人PC电脑上有无杀毒软件之类的终端防护软件,表明三角测量攻击同样适用于macOS苹果电脑。这是合理的,因为iOS与macOS使用相同的X1内核,将iOS运行的漏洞更改为macOS可以利用的漏洞应该不难。

该二进制验证器后门在完成所有预定的环境检测与信息采集(例如进程列表、用户信息等)后,会将收集到的数据进行加密并回传至攻击者控制的 C2 服务器;C2 在收到并解析这些信息后,会对目标苹果设备进行研判,从而决定是否向目标下发此前描述的 TriangleDB三角测量后门程序,随后目标机器才会下载并启动该实际的恶意负载。
第3阶段植入的三角测量后门TriangleDB
美国APT针对苹果手机用户发起"三角测量"攻击过程中,攻击者在对JavaScript验证器后门和二进制验证器后门回传的信息进行分析确认后,会植入"三角测量"后门TriangleDB,该后门会与其 C2 建立联络并维持心跳包,TriangleDB后门的所有操作都非常小心谨慎。

随后C2会下发一系列检索命令(例如 CRXShowTables、CRXFetchRecord 等),以远程获取目标设备上可能暴露或记录此次攻击链条痕迹的日志与数据库文件,用于评估是否清理痕迹,以防受害者察觉设备被入侵。被检索的一些文件包括:
崩溃日志文件,例如 /var/mobile/Library/Logs/CrashReporter 中的文件。
关键数据库文件,例如 /private/var/mobile/Library/IdentityServices/ids-gossip.db,这些数据库文件可能包含攻击者用来发送恶意 iMessage 的 Apple ID邮箱地址。
在完成日志收集和删除后,攻击者向TriangleDB后门下发多个 CRXPollRecords 命令,操控TriangleDB后门定期把 /private/var/tmp 目录下符合特定命名规范的文件上传到 C2服务端。攻击者为后门配置了一组文件名匹配规则(以正则表达式实现),将文件名模式映射到不同的敏感数据类别——例如位置信息、SQL 数据库快照、麦克风录音、钥匙串相关数据或若干未分类类型,以便后门将指定的敏感文件上传到 C2服务端。

这些正则表达式匹配的文件名通常是TriangleDB后门各种窃听模块窃取的数据文件,这些窃听模块本身通常由攻击者通过 C2 下发的指令(例如 CRXUpdateRecord 与 CRXRunRecord)部署到被入侵的苹果终端。
Part3 总结
1. 美国APT组织在植入正式木马后门之前,都会植入一个Validator验证器后门,从而实现更好的隐蔽性。
2. 在很多美国APT武器库样本中,PSPDetect关键字是个独有的标记。
3. 为了便于技术交流,现已建立微信群"希水涵-信安技术交流群",欢迎您的加入。


公众号专注于网络安全技术分享,包括APT事件分析、红队攻防、蓝队分析、渗透测试、代码审计等,每周一篇,99%原创,敬请关注。
Contact me: 0day123abc#gmail.com
OR 2332887682#qq.com
(replace # with @)
61

被折叠的 条评论
为什么被折叠?



