在M1 Mac上探索iOS应用
我想分享在雨季长周末进行的一些初步研究。最近我拿到了一台搭载M1芯片的MacBook Pro,自然想了解在macOS上原生运行iOS应用的机制、应用数据在硬盘上的存储位置,以及Frida是否能正常运行。
鉴于目前可通过App Store安装大量iOS应用,在Mac取证中遇到这种情况的可能性很大,因此我认为建立iOS应用数据存储位置的参考框架会很有帮助。
在这项研究中,我决定安装Private Photo Vault(这款应用至今仍为我的网站带来大量流量),但我推测其他应用的情况会类似。
首先,在App Store中找到PPV。需要注意的是,你必须点击"iPhone & iPad Apps"筛选器——现在看起来很明显,但在我喝咖啡提神之前刚开始时并没有立即注意到。
好了,应用已安装。它像其他已安装应用一样显示在LaunchPad中,很整洁。
现在启动应用并进行设置,然后拍摄一张照片。该应用与MBP的前置摄像头无缝集成(与iPhone相比,画质仍然很差)。
首先通过运行frida-ps | grep Vault检查Frida是否能检测到进程。我们看到两个相关进程,包括Photo Vault和Keychain (Photo Vault):
稍后将继续讨论Frida的使用,现在先搜索数据。借助find命令(以及我对PPV在iOS设备文件系统中通常留下的文件和文件夹的熟悉),我找到了应用数据的位置:
/Users/(用户名)/Library/Containers/(安装GUID)/Data/Library
如下截图所示,此文件夹中的内容与iOS上的PPV类似,但还有大量其他文件夹!
这是怎么回事?如果运行ls -l会更清楚:
以l开头的任何项目都是符号链接!实际上,如果我们向上移动到/Data文件夹,可以看到Desktop、Downloads等,以及我们期望在用户~/中看到的所有文件夹都再次出现在这里,作为符号链接。
我相信这样做有充分理由,但在遍历这些应用目录时需要注意,因为在使用find或ls命令时可能会带来不少麻烦。
幸运的是,当我们使用Data目录的内容创建tar文件时,它不会完全遍历符号链接。这里我执行了:tar cvf ~/Desktop/ppv_macos.tar .
如你所见,符号链接仍然存在,但被列为约20字节的文件而不是目录:
而7-zip认为它们有风险,在进行完整提取时不会创建它们:
Frida
现在我想看看是否能使用Frida附加。第一次尝试时,出现错误提示我的用户帐户没有附加权限。我记得之前见过这种情况,搜索后发现确实与启用的SIP(系统完整性保护)有关。要禁用SIP,必须关机然后进入恢复模式重启。请注意,在M1 Mac上,不是按住Cmd+R启动,而是只需按住电源按钮直到出现启动选项屏幕。进入恢复模式后,在终端中执行可靠的csrutil disable仍然有效。
重启后,我尝试启动PPV,但遇到了这个令人沮丧的消息:
因此,处理这个问题还需要一些额外的工作。不过我找到了@SparkZheng的这条推文,看起来通过重签名是可能的?但我还没有时间进一步研究。
尽管如此,如果你没有测试用的iOS设备但拥有M1 Mac,并且希望访问文件系统工件而无需重复提取,这绝对可以节省时间。