我是靠谱客的博主 轻松钢铁侠,最近开发中收集的这篇文章主要介绍IOS Jailbreaking from ISC2016,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前期准备

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部