rootless iOS 越狱环境部署 frida-server
2023-6-15 06:45:43 Author: 非尝咸鱼贩(查看原文) 阅读量:140 收藏

由于 iOS 15 之后引入的 Signed System Volume (SSV) [1] 安全措施,无论是基于 checkm8 的 palera1n 还是基于 Fugu 系列的 Dopamine 都不再挂载 rootfs,要求新的越狱插件适配 rootless 模式。

中文社区有翻译成“无根”,听上去怪怪的,像一味中草药。还是直接用英文的叫法。


frida 目前官方推荐的安装方式还是使用 Cydia,那肯定是不能用了。看到一个教程说可以 Sileo 直接用官方源装,我深表怀疑

到 GitHub 的 release 页面可以找到对应的 deb 包:

https://github.com/frida/frida/releases/latest

在文件名中查找 iphoneos-arm.deb 即可定位到。虽然不能用 dpkg 安装,但是可以提取编译好的 frida-server 二进制文件。

在 macOS 上可以用 ar 命令处理 deb,先解压出 data.tar.xz。然后 ssh 上传到 iOS 之后可以用 tar -xf 完全解包。

这一步看上去解出来的 frida-server 可以直接(用 root)运行,但尝试 attach 任何一个目标都会报错:

Failed to attach: module not found at "/usr/lib/frida/frida-agent.dylib"

frida-server 现在支持一个环境变量 CRYPTEX_MOUNT_PATH。

例如把 data.tar.xz 解压到 /tmp/frida 下,得到如下结构:

-bash-3.2# find /tmp/frida/tmp/frida/tmp/frida/usr/tmp/frida/usr/sbin/tmp/frida/usr/sbin/frida-server/tmp/frida/usr/lib/tmp/frida/usr/lib/frida/tmp/frida/usr/lib/frida/frida-agent.dylib/tmp/frida/Library/tmp/frida/Library/LaunchDaemons/tmp/frida/Library/LaunchDaemons/re.frida.server.plist/tmp/frida/data.tar.xz


直接用带上环境变量再运行 server 即可。

CRYPTEX_MOUNT_PATH=/tmp/frida /tmp/frida/usr/sbin/frida-server

另一种方式是根据这个 gist 编译一份修改版的 frida-server。

https://gist.github.com/miticollo/6e65b59d83b17bacc00523a0f9d41c11#file-how-to-build-frida-server-for-ios-md

有点折腾,而且每次上游更新版本,还得自己合并一下改动。好处是装完之后不需要每次手动运行进程。

这个作者提供了编译好的版本,直接添加 Sileo 源安装一下就行。Use at your own risk.

我自己用的是 nodejs 的脚本,一键自动从 build.frida.re 扒 deb 下来然后解压、SSH 安装运行。在这就不贴了,怕发出来被用出一堆 bug 然后又得当客服 

题图:直接丢了个 rootless 给 MidJourney 出来个这玩意儿

参考资料

[1]. Signed system volume security in iOS, iPadOS, and macOS - Apple Platform Security
https://support.apple.com/guide/security/signed-system-volume-security-secd698747c9/web


最后是不装逼就会死的彩蛋。

猜猜哪一个是 TrollStore/Dopamine 的作者


文章来源: http://mp.weixin.qq.com/s?__biz=Mzk0NDE3MTkzNQ==&mid=2247484867&idx=1&sn=1b2f06d077ab3549adb141c987fcad86&chksm=c329fb33f45e722551c7c60818c5fb8a4773bb8ee6b1e0a6ea59fd6348c90a5d8297f6b9256c#rd
如有侵权请联系:admin#unsafe.sh