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

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

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

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

工具目录

分类

查看所有分类
Loading categories
UnjailMe — 基于 Rani Idan(Zimperium)的概念验证(CVE-2018-4087)的沙箱逃逸工具。 | Kitploit
工具/GitHubGitHub/mtjailed/unjailme
权限提升漏洞利用框架iOS安全漏洞分析漏洞利用取证分析后渗透利用移动安全Payload 开发二进制利用
GitHubmtjailed/unjailme

UnjailMe

基于 Rani Idan(Zimperium)的概念验证(CVE-2018-4087)的沙箱逃逸工具。

82218年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库网站

UnjailMe

一个基于以下内容的沙箱逃逸:

  • Rani Idan(Zimperium)的概念验证 (CVE-2018-4087)
  • @cheesecakeufo 的 securityd 溢出概念验证(零日漏洞,无已知 CVE,感谢 Abraham!)

关于 ZIMPERIUM PoC

Rani 使用了 Jonathan Levine 的 sbtool 来找出沙箱内可通信的服务。

然后他在 bluetoothd 下发现了更多内容,并设置了拦截发送至该服务及来自该服务的消息的代码。

通过这样做,他发现可以劫持许多守护进程的会话,并泄露客户端端口。

由此,他发现可以为客户端到 bluetoothd 的连接添加一个带有附加数据的回调。

其后果是,可以控制系统守护进程的进程计数器(回调)和寄存器 x3(附加数据),而该守护进程的客户端端口(会话)已被拦截。

这使得沙箱应用有可能逃逸到特权上下文,并以系统权限运行代码。

Apple 在 iOS 11.2.5 中通过为会话 ID 使用 arc4random() 修补了这些漏洞。

似乎已无法再获取客户端的端口,但会话劫持仍然可行。

在新补丁中暴力破解此 arc4random() 大约需要 5 天(4,294,967,296 种可能),因此我仍在期待最终补丁,因为这不被视为安全问题的修复。

来源:Zimperium 博客

关于 Abraham Masri 的 PoC

据我所知,这是与 securityd 通信时的一个缓冲区溢出。

通过提供一个 XPC 消息(基于字典的值-键消息)并带有无效长度来实现。

服务接收消息,发生下溢。

Abraham 似乎找到了一种方法来控制许多处理器寄存器,使得在系统内运行的应用能够以系统权限执行代码。

Abraham 的 PoC 显示他正尝试自己为此漏洞编写利用程序,因为存在用于泄露基地址的代码,这被认为是构建 ROP 链的开端。

尚不清楚 Abraham 是计划自己编写此利用程序,还是为我们指明正确方向。

要求

  • 一台运行 iOS 10 至 11.3.1 的 64 位 iOS 设备

关于此项目

  • 此项目不是越狱,也不会成为越狱的一部分,因为它仅在用户空间运行
  • 此项目不能也永远不会获得写入根文件系统的能力,因为内核强制将其挂载为只读
  • 此项目不会轻易允许像 Cydia Substrate 那样的动态库形式的任意代码执行
  • 此项目的主要目标是将沙箱容器应用权限提升至系统权限
  • AMFI 强制所有二进制文件必须有效签名,此项目无法修补 AMFI
  • 该项目旨在获取用户数据分区(/var/root, /var/mobile)的读写权限
  • 该项目旨在获取受保护钥匙串存储的访问权限,用于凭据恢复和取证目的
  • 该项目还旨在提供服务器功能,以便以 root 权限运行代码和进行文件传输
  • 该项目旨在为开发者和研究人员的贡献提供帮助
  • 该项目将使越狱开发者和安全研究人员更容易找到内核驱动中的漏洞(这些漏洞仅在特权上下文中可访问)或使用模糊测试技术找到用户空间漏洞
  • 该项目将使越狱插件开发者更容易研究新的 iOS 11 功能,并在真实设备上调试插件开发
  • 此项目主要针对 iOS 10 至 11.2.5,但从理论上讲,当相关利用程序开发完成后,也可支持 11.2.5 至 11.3(含)的版本

截图

如何使用该应用

  • 该应用不会为项目增加任何价值,但可作为那些要求(很多社区里兴奋的人要求)的视觉展示
  • 该应用将转储库和框架的信息,包括内存、mach-o 信息及其基地址,这对于 ROP 开发很有用
  • 应用中的逻辑可能需要最多 15 分钟才能完成,因为有很多解析和打印输出,最终版本中不会如此
  • 该应用不会为你的 iPhone 增加任何价值,也不会改变其软件行为;某些守护进程可能崩溃,但不会对系统造成永久性损坏
  • 建议研究人员改为在 Xcode 中运行此项目

故障排除(非必需,但以防万一)

  • 删除应用
  • 关闭蓝牙
  • 重启
  • 打开蓝牙
  • 关闭蓝牙

功能

  • FTP 访问(目前沙箱内,将来会解除沙箱)
  • 视觉 PoC
  • Zerodium 的 PoC(最终略有改进,可调用 system() 函数)
  • Abraham 的 PoC,应能够以 root 身份运行任意代码,非常适合 SSH
  • Sem Voigtlander 的 PoC(内核地址空间分配 DoS,用于设备重启功能)

计划中

  • 完整利用,包括完全控制其他守护进程的地址空间
  • 远程 SSH shell 访问(Dropbear 或其衍生版本)

未来考虑事项

  • SpringBoardd 代码注入(越狱爱好者你们好)
  • launchd(不可能,因为我们无法获取其会话)

假设(仅为推测)

  • 查找具有 launchd 授权的守护进程 / 注入授权
  • 注入加载 BaseBoard 框架的代码
  • 泄露 dyld_shared_cache 中库的地址
  • 在 dyld_shared_cache 的任何库中寻找 ROP gadget
  • 通过设置回调和回调附加数据来调用 ROP 链
  • 使用 BaseBoard 的反向工程逻辑使 launchd 在禁用 ASLR 的情况下运行 amfid 并带参数
  • 修补 amfid
  • 使用 BaseBoard 的反向工程逻辑使 afcd 在禁用 ASLR 的情况下为 / 运行带参数(类似于 afc2)
  • 使用 BaseBoard 的反向工程逻辑运行 unjaild,这是一个可用作 launchd 包装器的守护进程,处理任务权限和代码注入
  • 使用 BaseBoard 逻辑获取禁用 ASLR 的 launchd 的任务端口

待检查

  • AMFI 补丁(不容易,我们无法获取 amfi 的会话,但或许可以通过其他守护进程进行提升)
  • 授权注入(不太必要,因为我们控制了许多守护进程,不需要这个)
  • 使用私有 API 进一步提权(BaseBoard.framework 可以以系统权限启动禁用 ASLR 的进程)???
  • 复活 liblorgnette 并将其移植到 iOS (已完成)

下载 ipa

https://github.com/MTJailed/UnjailMe/releases/tag/0.1

鸣谢

  • 感谢 Abraham (@cheesecakeufo) 提供的 securityd 零日漏洞
  • 漏洞和初始 PoC:Rani Idan (Zimperium) <3
  • PureFTPd
  • liblorgnette 项目(我做了轻微改进)
  • @ringarang 提供的新 UI

捐赠或贡献

  • 如需源代码,可通过 Twitter DM 联系 (@MTJailed) 获取
  • 请捐赠,我几乎没有时间和资金来从事此类项目!(http://paypal.me/devsupport)
  • 很快源代码(FTP 部分除外)将出现在 GitHub 上。
下载工具