iOS 冰与火之歌 - 利用 XPC 过 App 沙盒

本文深入探讨了如何利用XPC服务在非越狱的iOS设备上突破App沙盒,通过分析Com.apple.networkd服务的Object Dereference漏洞,展示了构造fake Objective-C对象、堆喷和ROP链技术,实现对其他进程的控制,执行system指令。文章详细阐述了堆喷技术以及如何通过XPC进行沙盒逃逸,揭示了iOS安全的潜在风险。
摘要由CSDN通过智能技术生成

蒸米是阿里巴巴的移动安全工程师,香港中文大学博士,也是发现并命名了XcodeGhost的人。这次他所在的iOS安全小组发现了影响最新版iOS 9.3的0day漏洞。此漏洞杀伤力巨大,在非越狱手机上一个app应用可以利用这个漏洞做到读取或者修改沙盒外其他app的文件(照片,聊天记录等)。

蒸米并未利用此漏洞牟利,而是先公开DEMO,然后再提交给苹果,然后再一点点介绍技术细节。等最终完整的技术细节出来的时候,这个漏洞应该已经无法有什么实质性的危害了。


这,就是一个「白帽子」的职业操守和理想。


感谢蒸米的分享和授权,本文的所有打赏归蒸米所有,以下是文章正文。




在这里我还是要推荐下我自己建的iOS开发学习群:680565220,群里都是学ios开发的,如果你正在学习ios ,小编欢迎你加入,今天分享的这个案例已经上传到群文件,大家都是软件开发党,不定期分享干货(只有iOS软件开发相关的),包括我自己整理的一份2018最新的iOS进阶资料和高级开发教程

0x00 序

冰指的是用户态,火指的是内核态。如何突破像冰箱一样的用户态沙盒最终到达并控制如火焰一般燃烧的内核就是《iOS 冰与火之歌》这一系列文章将要讲述的内容。这次给大家带来的是利用 XPC 突破 app 沙盒,并控制其他进程的 pc(program counter)执行 system 指令。

《iOS 冰与火之歌》系列的目录如下:

  1. Objective-C Pwn and iOS arm64 ROP

  2. 在非越狱的 iOS 上进行 App Hook(番外篇)

  3. App Hook 答疑以及 iOS 9 砸壳(番外篇)

  4. 利用 XPC 过 App 沙盒

  5. █████████████

另外文中涉及代码可在我的 github 下载:
https://github.com/zhengmin1989/iOS_ICE_AND_FIRE

0x01 什么是 XPC

在 iOS 上有很多 IPC(内部进程通讯) 的方法,最简单最常见的 IPC 就是 URL Schemes,也就是 app 之间互相调起并且传送简单字符的一种机制。比如我用[[UIApplication sharedApplication] openURL:url]这个 api 再配合 “alipay://“, “wechat://” 等 url,就可以调起支付宝或者微信。

今天要讲的 XPC 比 URLScheme 要稍微复杂一点。XPC 也是 iOS IPC 的一种,通过 XPC,app 可以与一些系统服务进行通讯,并且这些系统服务一般都是在沙盒外的,如果我们可以通过 IPC 控制这些服务的话,也就成功的做到沙盒逃逸了。App 在沙盒内可以通过 XPC 访问的服务大概有三四十个,数量还是非常多的。

想要与这些 XPC 服务通讯我们需要创建一个 XPC client,传输的内容要与 XPC service 接收的内容对应上,比如系统服务可能会开这样一个 XPC service:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值