概述
前期准备
iOS架构和内核基础
ARM64基础知识
开发环境设置
64位内核分析
常见内核漏洞类型
内核漏洞利用技巧
Pangu9 UAF漏洞编写实战 ios <= 9.1
苹果操作系统内核
mac/ios/watchos/tvos都是基于NeXTSTEP 5.0
所有后来的系统都基于NeXTSTEP 5.0…
内核(XNU) 是Mach/BSD 混合体
运行驱动是单独分离的一套 (“DriverKit” 就是现在的IOKit)
Objective-C (2.0) 是主要的运行时语言
可执行程序格式是Mach-O
包是(“bundle”) 格式
其中一部分框架是开源的, 其他都是闭源
OS 核心(“Darwin”) 还是开源的
有相对严格的程序开发手册
强大的application frameworks
整体的结构与安卓类似,分为4层:
Darwin 大部份分是开源的
Opensource.apple.com
Darwin中大部分运行库并非是苹果提供的
libSystem.B.dylib中提供了大部分的APIs
重导出的子运行库存放在/usr/lib/system
系统运行库通过syscalls/traps调用至XNU内核
Binaries包含一些实用的CLI工具
包含大部份的系统关键服务(/usr/libexec)
苹果选择性的开源
XUN是三种元素BSD/Mach/IoKit的组合体:
一:XNU’s 最上层是POSIX/BSD The BSD layer: 提供正式的API
采用FreeBSD 6.0的代码
完全POSIX兼容
提供files, processes/pthreads, signals, 等等.
Apple扩展: 增加很多独有的syscalls
二:Mach层是内核中的微内核 The Mach layer: 内核中的内核
另外一个NeXTSTEP时代的遗留产物
提供task, thread, memory 以及IPC通讯机制
处理底层的异常,中断及陷入
三:自主的驱动程序环境 I/O Kit: 驱动运行环境
移植自NextSTEP时代的DriverKit
面向对象的,并且受限制的C++框架
采用复杂的多层机制 “IORegistry”
采用他自身的IPC子系统(Mach)
在内核层中支持处理XML (!)
存在大量的安全漏洞
其中“Glue” 组件包含:
ml_* : Machine Layer APIs
Pexpert: Platform expert (“硬件抽象层”)
iOS启动序列(正常启动)
iOS启动序列(恢复/更新模式)
与android的recovery模式类似??
常见的漏洞类型:
堆溢出
整数溢出
释放后使用
多次释放
条件竞争
类型混淆
越界访问
常见的漏洞利用技巧
内核地址泄漏
堆风水
内核Dump
内核任意读写
内核Patch
问题:怎么搭建漏洞的测试环境
实际案列:https://www.ichunqiu.com/course/53971
最后
以上就是轻松钢铁侠为你收集整理的IOS Jailbreaking from ISC2016的全部内容,希望文章能够帮你解决IOS Jailbreaking from ISC2016所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复