pinauten/Fugu15

GitHub: pinauten/Fugu15

Fugu15 是一个基于代码签名绕过和内核漏洞利用的 iOS 15 半完美签名越狱工具,支持 Safari 无线安装并提供内核级调试与包管理功能。

Stars: 1146 | Forks: 123

# Fugu15 Fugu15 是一个半完美签名(permasigned)的 iOS 15 越狱工具。 它包含代码签名绕过、内核漏洞利用、内核 PAC 绕过和 PPL 绕过。 此外,它可以通过 Safari 安装,也就是说不需要计算机,除非需要一台 Web Server 来托管 Fugu15。 请注意,Fugu15 不支持插件(没有插件注入库)。 # 测试过的设备和 iOS 版本 - iPhone Xs Max:iOS 15.4.1 - iPhone 11 (SRD):iOS 15.4.1 - iPhone 12 (SRD):iOS 15.4.1 - iPhone 12 Pro Max:iOS 15.4.1 - iPhone 13:iOS 15.1(离线版 - 参见下方的 bug [WiFi bug]) 其他设备可能也受支持。 不支持非 arm64e 架构的设备。 # 构建 前置条件: 1. 确保你安装了 Xcode ~~13/14~~ 14.1 2. 将 fastPath arm 证书 (`Exploits/fastPath/arm.pfx`) 导入到你的 Keychain(双击该文件)。密码是 "password"(不包括引号) 3. 你需要一份从 AppStore 下载的具有有效签名的 Apple Developer App 副本(带有 DRM!)。将此 IPA 复制到 `Server/orig.ipa`。请注意,如果你想使用其他的 AppStore App,你需要获取它的 Team ID,并在所有的 `make` 命令中添加 `TEAMID=<该 App 的 Team ID>` 现在你可以直接运行 `make` 来构建 Fugu15(需要网络连接以下载依赖项)。 请注意,系统会要求你授予 "fastPathSign" 访问 Keychain 中 "privateKey"(fastPath 证书的私钥)的权限。输入你的密码并选择“始终允许”。 ## 构建工具 构建 Fugu15 需要多个工具,这些工具可以在 `Tools` 目录中找到。构建它们完全是可选的,因为我已经将它们编译好了。 如果你想自己编译它们,只需在 `Tools` 目录中运行 `make`。 # 安装 有两种方法可以将 Fugu15 安装到你的设备上:通过 Safari 或通过 USB ## 通过 Safari 安装 要通过 Safari 安装 Fugu15,请执行以下操作(需要你拥有一个域名): 1. 确保你的设备与计算机连接在同一个网络中 2. 将你所拥有的某个域名的 DNS A 记录更改为你计算机的本地 IP 地址 3. 为你的域名获取证书(例如通过 Let's Encrypt),并将其复制到 `Server/serverCert/fullchain.cer`(证书本身)和 `Server/serverCert/server.key`(私钥) 4. 确保你已安装 Flask(`pip3 install Flask`) 5. 将 `Server/server.py` 中的 `serverUrl` 修改为你的域名 6. 在 `Server` 目录中运行 `python3 server.py` 7. 在你的 iPhone 上访问 `https://<你的域名>` 并按照说明操作 ## 通过 USB 安装 1. 安装 `Fugu15_Developer.ipa`,例如使用 `ideviceinstaller -i Fugu15_Developer.ipa`。或者,通过 TrollStore 安装 Fugu15/Fugu15.ipa。 2. 在你的 iPhone 上打开新安装的“Developer”App(或者你使用的任何 AppStore App) # iDownload 与所有的 Fugu 越狱工具一样,Fugu15 自带了 iDownload。可以在端口 1337 上访问 iDownload shell(运行 `iproxy 1337 1337 &`,然后运行 `nc 127.1 1337` 以连接到 iDownload)。 输入 `help` 以查看支持的命令列表。 以下命令特别有用: - `r64/r32/r16/r8
`:读取给定内核地址处的 64/32/16/8 位整数。添加 `@S` 后缀以滑动给定的地址,或使用 `@P` 从物理地址读取。 - `w64/w32/w16/w8
`:将给定的 64/32/16/8 位整数写入给定的内核地址。同样支持上述后缀,此外还支持 `@PPL` 以写入受 PPL 保护的地址(参见 `krwhelp`)。 - `kcall
<最多 8 个参数>`:调用给定地址处的内核函数,最多可传递 8 个 64 位整数参数。 - `tcload `:将给定的 TrustCache 加载到内核中 # Procursus Bootstrap 和 Sileo Fugu15 还附带了 procursus bootstrap 和 Sileo。在 iDownload 中运行 `bootstrap` 命令即可安装这二者。之后,你可能需要重新注销(respring)以强制 Sileo 显示在主屏幕上(`uicache -r`)。 Procursus 安装在 `/private/preboot/jb` 目录中,并且 `/var/jb` 是指向它的符号链接。 # 已知问题/Bug 1. 如果 oobPCI(利用内核的进程)退出,系统可能会处于不一致的状态,并在某个时刻发生崩溃。这通常发生在 iDownload 中运行 `exit_full` 命令后约 5 秒左右。 解决方法:不要退出 oobPCI,或者确保以尽可能快的速度完成以降低发生内核崩溃的概率。目前尚不清楚导致此崩溃的原因。 2. 当未连接电源时,进入深度睡眠会由于 DriverKit 中的一个 bug 而导致内核崩溃(在 Fugu14 中也发生过)。遗憾的是,Fugu14 中的修复方案在 iOS 15 上不起作用。 解决方法:退出 oobPCI 时不会发生此 bug。但是,当 oobPCI 退出时,可能会发生上述的 bug。 3. 某些 iOS 版本(至少 iOS 15.1 及以下版本,也许 15.2 和 15.3 也是)存在一个 DriverKit bug,这会导致在运行 oobPCI 时禁用 WiFi 芯片的总线主控,从而在使用 WiFi 时引发内核崩溃。这个 bug 是可以修复的,但目前 Fugu15 中并未包含修复方案。 解决方法:禁用 WiFi。 # 常见问题 问:我是一个普通用户。Fugu15 对我有用吗? 答:没有。 问:我的 iOS 版本/设备不受 Fugu15 支持,你会添加对它的支持吗? 答:不会。(我已经完成了 iOS 15 相关的工作) 问:你以后会添加对插件注入的支持吗? 答:不会。 问:你为 Fugu15 提供官方支持吗?有更新计划吗? 答:没有。 问:我通过 Sileo 安装/更新了内容,但它无法启动。我该如何解决这个问题? 答:Fugu15 使用 TrustCache 注入来绕过代码签名。因此,如果你安装或更新了某些内容,它的代码签名必须包含在 TrustCache 中。你可以通过 `tcload` 命令从 iDownload shell 加载额外的 TrustCache。 问:Wen eta Fugu16?????? 答:... # 鸣谢 Fugu15 使用了以下开源软件: - [Procursus Bootstrap](https://github.com/ProcursusTeam/Procursus):Fugu15 使用的 bootstrap。许可证:[BSD 0-Clause](https://github.com/ProcursusTeam/Procursus/blob/main/LICENSE)。bootstrap 中包含的工具采用了多种不同的许可证,请参阅 procursus 仓库获取更多信息 - [Sileo](https://github.com/Sileo/Sileo):Fugu15 中包含的包管理器。许可证:[BSD 4-Clause](https://github.com/Sileo/Sileo/blob/stable/LICENSE) - [ZIPFoundation](https://github.com/weichsel/ZIPFoundation):用于处理 ZIP 归档的 Swift 库。在 FuguInstall 中用于安装 Fugu15 App。许可证:[MIT](https://github.com/weichsel/ZIPFoundation/blob/development/LICENSE) # 许可证 MIT。请参阅 `LICENSE` 文件。
标签:CVE监控, iOS, PAC绕过, Web报告查看器, 代码签名绕过, 内核漏洞利用, 客户端加密, 提权, 目录枚举, 移动安全, 越狱, 逆向工具