在之前关于Triangulation的文章中,研究人员讨论了TriangleDB的细节,这是这次活动中使用的主要植入程序,使它的C2协议和它可以接收命令。除其他事项外,它还能够执行其他模块。另外,这次活动是相当隐蔽的。
本文详细介绍了该活动是如何进行隐蔽攻击的。在此过程中,研究人员还将揭示有关此攻击中使用组件的更多信息。
验证组件
在之前的文章中,研究人员概述了Triangulation活动攻击链:设备接收恶意iMessage附件,启动一系列漏洞利用,其执行最终导致启动TriangleDB植入。攻击链可以用下图来概括:
除了TriangleDB植入的漏洞和组件外,攻击链还包含两个“验证器”阶段,即“JavaScript验证器”和“二进制验证器”。这些验证器收集有关受害设备的各种信息,并将其发送到C2服务器。然后,这些信息被用来评估植入TriangleDB的iPhone或iPad是否可以作为研究设备。通过执行这样的检查,攻击者可以确保他们的零日漏洞和植入程序不会被阻止。
JavaScript验证器
在攻击链的开始,受害者会收到带有零点击漏洞的不可见iMessage附件。此漏洞的最终目标是在backupabbit[.]com域上默默地打开一个唯一的URL。该URL上托管的HTML页面包含NaCl密码库的模糊JavaScript代码,以及加密的有效负载。这个负载是JavaScript验证器。该验证程序执行许多不同的检查,包括不同的算术运算,如Math.log(-1)或Math.sqrt(-1),Media Source API、WebAssembly等组件的可用性。
如上所述,它通过使用WebGL在粉色背景上绘制一个黄色triangle并计算其校验和来执行一种名为Canvas Fingerprint的指纹技术:
绘制triangle的代码
绘制的triangle
事实上,正是这个triangle,研究人员把整个活动称为Triangulation活动。
运行验证器后,它会对所有收集到的信息进行加密,并将其发送到backuplabbit[.]com上的另一个唯一URL,以便接收攻击链的下一阶段。
二进制验证器
正如从攻击链图中看到的,这个验证器在部署TriangleDB植入程序之前启动。JavaScript验证器是一个脚本,与之相反,这个验证器是一个Mach-O二进制文件(因此得名binary Validator)。启动时,它使用AES解密其配置。这个配置是一个plist:
此列表包含必须由验证器执行的操作列表(如DeleteLogs、DeleteArtifacts等)。具体地说:
1.从/private/var/mobile/Library/ logs /CrashReporter目录中删除可能在利用过程中创建的崩溃日志;
2.在各种数据库(如ids-pub-id.db或knowledgeec .db)中搜索恶意iMessage附件的痕迹,然后删除它们。为了能够做到这一点,验证器的配置包含40个用于发送恶意imessage的Apple id的MD5哈希值。研究人员成功破解了大部分哈希值,从而获得了攻击者控制的苹果ID电子邮件地址列表:
3.获取在设备上运行的进程列表以及网络接口列表;
4.检查目标设备是否已越狱。验证器实现了对各种越狱工具的检查,如Pangu、xCon、Evasion7、Electra、unc0ver、checkra1n等;
5.打开个性化广告跟踪;
6.收集有关受害者的广泛信息,如用户名,电话号码,IMEI和苹果ID;
7.检索已安装应用程序的列表。
有趣的是,验证器在iOS和macOS系统上都实现了这些操作:
研究人员还发现,验证器实现了一个未使用的操作,攻击者将其称为PSPDetect。
这个操作从验证器的配置中检索一个文件列表(对于研究人员分析的验证器配置,这个列表是空的),检查它们是否存在于文件系统中,并产生一个找到的文件列表作为输出。
此操作名称中的缩写PSP可能意味着“个人安全产品(personal security product)”,或者更简单地说,是一种安全解决方案。因此,有可能在macOS设备上启动此操作,以检测已安装的杀毒软件。
执行完所有这些操作后,验证器加密并将获得的数据(进程列表、用户信息等)发送到C2服务器。作为响应,服务器返回研究人员之前描述过的TriangleDB植入。
在日志中找到线索
“Triangulation活动”背后的攻击者不仅通过在攻击链中引入两个验证者来进行隐形操作。事实上,他们对TriangleDB植入程序的所有操作都非常小心。这可以从研究人员对攻击者通过该植入程序向受攻击设备发送的命令的分析中观察到。
在植入与C2服务器建立通信并发送指令之后,它从C2服务器接收多个CRXShowTables和CRXFetchRecord命令。这些命令与可能显示攻击链和恶意软件本身痕迹的日志检索有关。检索到的一些文件有:
1.崩溃日志(Crash log )文件(例如/var/mobile/Library/Logs/CrashReporter);
2.数据库文件(例如/private/var/mobile/Library/IdentityServices/ids-gossip.db)。这些数据库文件可能包含攻击者用来发送恶意iMessage的Apple ID。
一旦攻击者收到这些文件,他们就会把它们从设备上删除,这样受害者就无法检查它们,也无法发现潜在的攻击迹象。在完成日志收集和删除后,攻击者向植入程序发送多个CRXPollRecords命令,指示它定期从/private/var/tmp目录中泄漏文件。上传到C2服务器的文件的名称应符合下列正则表达式:
具有这些名称的文件包含由模块产生的执行结果。这些模块通过CRXUpdateRecord和CRXRunRecord命令上传到受攻击的设备。
麦克风录音
最侵犯隐私的模块之一是麦克风录制模块,其名称为“msu3h”,研究人员认为3h代表三小时,默认录制时间。在执行时,它会解密(使用源自GTA IV哈希的自定义算法)其配置,但只有当电池电量超过10%时,它才会执行进一步的操作。
配置文件本身包含典型的配置数据,例如记录多长时间和用于加密记录的AES加密密钥,但也包含更具攻击性的参数,例如:
1.suspendOnDeviceInUse:设置当设备屏幕打开时是否应该停止录制;
2.syslogRelayOverride:设置捕获系统日志时是否录制音频。
录音使用Audio Queue API,声音块使用Speex编解码器进行压缩,然后使用AES进行加密。除了声音数据,每个录音都包含诊断信息,它有一个四字节的类型标识符,可以是:
钥匙串泄露
由于未知的原因,攻击者决定添加一个额外的钥匙串泄露模块,尽管这样的功能已经存在于TriangleDB中。这个钥匙串模块与TriangleDB中的逻辑相同,但主要基于iphone-dataprotection.keychainviewer项目中的代码。钥匙串(英文:Keychain)是苹果公司Mac OS中的密码管理系统。它在Mac OS 8.6中被导入,并且包括在了所有后续的Mac OS版本中,包括Mac OS X。一个钥匙串可以包含多种类型的数据:密码(包括网站,FTP服务器,SSH帐户,网络共享,无线网络,群组软件,加密磁盘镜像等),私钥,电子证书和加密笔记等。
SQLite窃取模块
iOS上的许多应用使用SQLite来存储它们的内部数据。因此,攻击者实现能够从各种SQLite数据库窃取数据的模块也就不足为奇了。所有这些模块都具有相同的代码库,并且包含要执行的不同SQL查询。同样,它们的配置是加密的。当它被解密时,只能找到标准变量,如文件路径,AES密钥,查询字符串等。
这些模块的代码相当奇特,例如,攻击者在fopen()函数周围实现了一个包装器,添加了Z标志(表明创建的文件应该经过aes加密和zlib压缩),并与标准w(写)标志结合使用,如下图所示:
同样有趣的是,SQLite窃取模块包含针对不同iOS版本的三个代码版本:低于8.0、介于8.0和9.0之间、9.0及更高版本。
研究人员找到的每个模块执行不同的SQL数据库查询。例如,有一个模块处理来自knowledgeec .db数据库的应用程序使用数据。另一个模块提取与照片相关的元数据,例如照片中是否有孩子,该人是男是女(见下图),以及从媒体文件中自动生成的文本。
攻击者对WhatsApp、SMS和Telegram的信息也表现出了兴趣,这也不足为奇,因为研究人员也发现了窃取这些数据的模块。
位置监控模块
这个模块在一个单独的线程中运行,并试图模拟被授权使用配置中指定的位置服务的bundle(例如/System/Library/LocationBundles/Routine.bundle)。除了使用GPS确定位置外,它还使用GSM,通过CoreTelephony框架检索MCC (MobileCountryCode), MNC (MobileNetworkCode), LAC (LocationAreaCode)和CID (CellID)值。
使用gsm相关数据的一个原因是在没有GPS数据的情况下估计受害者的位置。
结论
Triangulation活动背后的攻击者非常小心地避免被发现。他们在攻击链中引入了两个验证器,以确保漏洞和植入程序不会被传递给安全研究人员。此外,麦克风录音可以调整为在屏幕被使用时停止。位置跟踪器模块可能不使用标准的GPS功能,如果这是不可用的,而是使用来自GSM网络的元数据。
攻击者还表现出对iOS内部的深刻理解,因为他们在攻击过程中使用了未记录的私有api。它们还在一些模块中实现了对8.0之前iOS版本的支持。回想一下,这些模块在2015年之前被广泛使用,这表明这些模块的代码已经被使用了多长时间。
另外,这次攻击中使用的一些组件包含的代码可能表明它们也针对macOS系统,尽管截至发布日期,在macOS设备上没有遇到Triangulation活动痕迹。
尽管Triangulation活动是在高度隐蔽的情况下执行的,但研究人员仍然能够提取出完整的攻击链,以及植入程序和插件。
参考及来源:https://securelist.com/triangulation-validators-modules/110847/
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...