Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
AppEnumGuard — CVE-2025-31207 缓解措施及沙盒测试工具,适用于 iOS 15–18.4.1 上的 rootless 和 rootHide 越狱。 | Kitploit
工具/GitHubGitHub/kolbicz/appenumguard
防御工具iOS安全漏洞分析移动安全隐私保护
GitHubkolbicz/appenumguard

AppEnumGuard

CVE-2025-31207 缓解措施及沙盒测试工具,适用于 iOS 15–18.4.1 上的 rootless 和 rootHide 越狱。

查看仓库
521811天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

AppEnumGuard

AppEnumGuard 是针对已安装应用枚举侧信道(跟踪编号为 CVE-2025-31207)的防御性调整。它支持 iOS 15.0–18.4.1 上的常规 rootless 和 rootHide 越狱环境。 该仓库还包含一个普通的沙盒化 iOS 测试应用,用于演示漏洞结果并验证缓解措施。

CVE-2025-31207

CVE-2025-31207 是 Apple FrontBoard 应用启动逻辑中的一个信息泄露漏洞。沙盒化应用可以通过私有的 SpringBoardServices 启动函数提交任意 bundle 标识符,并利用不同的返回码区分已安装应用和缺失应用。这可能会泄露用户已安装应用的隐私信息,包括银行、消息、安全、侧载和越狱相关应用。

Apple 将该问题描述为一个逻辑问题,可能允许应用枚举已安装应用。Apple 通过改进 iOS 和 iPadOS 18.5 中的检查来修复该问题。因此,早于 iOS 18.5 的系统在操作系统层面仍然受影响。

兼容性

组件支持目标
iOS15.0–18.4.1
越狱任何常规 rootless 或 rootHide 越狱环境
Bootstrap/包架构rootless / iphoneos-arm64;rootHide / iphoneos-arm64e
设备架构arm64 和 arm64e(rootless);arm64e(rootHide)
包安装与设备 bootstrap 匹配的包

默认构建使用常规 rootless Theos,并包含 arm64 和 arm64e 切片。rootHide 变体使用 rootHide Theos 构建,并包含所需的 rootHide .jbroot 加载器路径。两个包都声明了 firmware (>= 15.0) 和 firmware (<< 18.5):在 iOS 18.5 及更新版本上无需缓解措施,因为 Apple 已修复 CVE-2025-31207。

SpringBoard 端的 v1.1 调整和沙盒化测试器已在 iOS 17.3.1 build 21D61 上共同验证,测试器禁用了注入。测试器在移除调整后检测到泄露,并在安装调整后返回绿色通过。

工作原理

已公开的原语调用私有 SpringBoardServices 函数 SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions。在易受攻击的系统上,它对已安装应用和缺失应用返回不同的错误:

  • 9:目标存在,但启动被策略拒绝
  • 7:目标不存在

AppEnumGuard 1.1 仅注入 SpringBoard,并挂钩常见的 FBSystemService 信任验证方法。当未经授权的启动请求会返回 FBSOpenApplicationErrorDomain 安全策略错误 3 时,该调整会将其更改为应用未找到错误 4。然后,外层的 SpringBoardServices API 对已安装和缺失目标都返回 7。

在安装挂钩之前,会验证私有方法的参数数量和 Objective-C 类型编码。如果 Apple 更改 ABI,AppEnumGuard 会以失败开放模式运行,而不是挂钩未知的 SpringBoard 方法。

自 1.0 以来的变化

版本 1.0 在每个 UIKit 应用内部挂钩 SpringBoardServices。它有效,但需要注入到每个受保护的应用中;禁用或检测注入的应用可以绕过缓解措施。版本 1.1 将强制实施移至 SpringBoard,因此一个中央挂钩即可保护调用者,而无需将 AppEnumGuard 注入其进程。

发布下载

Release 1.2 可以针对任一 bootstrap 构建:

  • AppEnumGuard_1.2_rootless_iphoneos-arm64.deb — 常规 rootless 调整
  • AppEnumGuard_1.2_roothide_iphoneos-arm64e.deb — rootHide 调整
  • AppEnumGuardTester_1.2_sandboxed.ipa — 带图标的沙盒化验证应用

安装与验证

  1. 安装与 rootless 或 rootHide bootstrap 匹配的 .deb 并 respring。
  2. 使用正常的开发者/侧载签名安装测试器 IPA。
  3. 为 AppEnum Test 保持 AppEnumGuard 注入禁用;v1.1 从 SpringBoard 保护它。
  4. 点击你已知已安装应用的 WhatsApp、YouTube 或 Spotify 图标。

所选目标已安装时的预期结果:

状态目标缺失测试器结果
无调整97红色 / FAIL
调整激活77绿色 / PASS

当所选应用不可检测时,测试器报告绿色;可检测时报告红色。仅选择你已知已安装的应用:单独的 7 / 7 无法区分有效的缓解措施与不存在的目标。

设备测试在测试器注入禁用的情况下重现了两种状态:卸载调整产生红色 9 / 7 结果,而安装 v1.1 产生绿色 7 / 7 结果。

构建调整

使用标准 Theos,默认构建为常规 rootless:

root@kitploit:~
cd Tweak
make clean package FINALPACKAGE=1

对于 rootHide,安装 rootHide Theos 并运行:

root@kitploit:~
cd Tweak
THEOS=/path/to/theos-roothide \
  make clean package FINALPACKAGE=1 THEOS_PACKAGE_SCHEME=roothide

构建测试器 IPA

测试器使用 Xcode 的 iPhoneOS SDK 编译,没有越狱或提升权限:

root@kitploit:~
./scripts/build-tester-ipa.sh

生成的 IPA 放置在 dist/ 中。它是 ad-hoc 签名的,因此安装程序可以使用正常的开发身份重新签名。不要授予它 platform-application 或 com.apple.private.security.no-sandbox,因为该测试专门设计为在普通应用沙盒中运行。

范围与限制

  • 这是针对已公开 SpringBoardServices 原语的用户空间缓解措施,而非 Apple 完整的 FrontBoard 补丁。
  • 版本 1.1 不需要注入受保护的应用。全局禁用注入或对 SpringBoard 本身禁用注入将禁用缓解措施。
  • 服务端实现已在 iOS 17.3.1 build 21D61 上确认。在其他受支持版本上,仅当私有选择器具有预期的运行时验证 ABI 时,该调整才会安装其挂钩。
  • 仅当目标应用已知已安装时,7 / 7 测试才有意义。
  • 测试器有意调用未记录的私有 API,不适合提交 App Store。

参考

  • Apple iOS 18.5 安全内容
  • NVD: CVE-2025-31207
  • 原始公开 SpringBoardServices 概念验证
  • rootHide 开发者文档

许可证

MIT

下载工具