一.引言
在iOS逆向工程中,沙盒(sandbox)机制是苹果为确保应用安全而设计的核心防护系统。它限制了应用的访问权限,防止恶意行为影响系统或其他应用。然而,通过利用特定漏洞,如MacDirtyCow(CVE-2022-46689),我们可以实现沙盒逃逸,获取更高的权限。本文将探讨这一过程,基于iOS逆向的基本原理和工具。
二.iOS沙盒机制概述
iOS沙盒会拦截文件访问、网络套接字、Bootstrap服务以及子进程的spawn。14越狱后,沙盒限制有所放松,但苹果不断加强防护。在每个iOS版本中,沙盒作用都在增强,导致tweak在跨进程访问数据或写磁盘时受限。
绕过沙盒的常见方法包括:
-
- 选择所有进程可访问的路径共享数据(但iOS 8后此类路径已不存在)。
-
- 将操作置于高权限进程如SpringBoard或自定义守护进程中。
-
- 使用RocketBootstrap绕过iOS 8的进程间通信限制。
三.MacDirtyCow漏洞简介
MacDirtyCow是一个影响iOS 14.0至16.1.2版本的内核漏洞,允许未经授权的文件系统访问和沙盒逃逸。它利用内核中的竞争条件(race condition)来操纵内存映射,实现对系统文件的读写。此漏洞常用于越狱工具或签名开发中,实现沙盒外访问,如修改系统文件或注入代码。
四.利用MacDirtyCow漏洞
导入grant_full_disk_access.h,调用grant_full_disk_access函数

成功后会用UIAlertController弹窗,点好,这个UIAlertController弹窗我看了,是SpringBoard弹出的,hook不了。

之后就可以写入Documents文件夹,

也可以获取内容。

控制台输出的NSLog日志。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
文章评论