盘古越狱工具在用户空间的行为

本文详细解析了盘古越狱工具在用户空间的工作流程,包括安装辅助程序、利用iOS安装程序漏洞、构造环境执行dylib,以及安装Untecher和Cydia的过程。通过对关键文件的修改和竞态条件的利用,实现了越狱。
摘要由CSDN通过智能技术生成

背景知识

盘古在用户空间主要利用了iOS安装程序的一个漏洞,这里先列出安装一个应用的主要过程:


整个安装过程分为12个阶段,上图只是列出了起点、终点还是对盘古越狱来说比较重要的阶段。大家注意上图红线所示的时间区间,在这个区间内如果在“Staging Directory”中创建一个符号链接指向沙盒之外,就可以利用解压程序向系统目录写入文件。同时也可以通过控制压缩包中的文件列表,在起始处放一个大文件,从而在解压过程中创建一个符号链接。这是在盘古在安装过程中利用的主要漏洞,后面介绍的盘古在用户空间的行为基本都是围绕这个漏洞。

主要的组件

盘古主要由四部分组成,:
1、桌面程序:提供资源,控制越狱流程。
2、com.pangu.ipa1.ipa:Socket Server,与桌面程序配合制造竞态条件。
3、pangu.dylib,Socket Server,利用内核漏洞安装Untecher,Cydia等。
4、pangu.tar,Untecher
这里主要涉及的是前两个组件,及第三个组件中用户空间相关的部分。

工作流程

说明:为了验证自己的分析是正确的,用Python重新实现了盘古桌面程序的功能,利用盘古的Payload可以实现越狱,下面会在主要阶段给出相应示例代码。

阶段一:安装辅助程序,获取相关资源

1、安装com.pangu.ipa1.ipa

def install_pangu():
    lockdown = LockdownClient()
    afc = AFCClient(lockdown)
    mci = lockdown.startService("com.apple.mobile.installation_proxy")
 
    file_name = "com.pangu.ipa1.ipa"
    afc.set_file_contents("/PublicStaging/" + file_name, open("payload/" + file_name,"rb").read())
    mci.sendPlist({"Command":"Install", "PackageP
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值