第一部分 防御技术与技巧
1 身份认证
密码文件(*OS)
setuid和setgid(macOS)
可插拔认证模块(macOS)
opendirectoDrd(macOS)
Apple ID
外部账号
2 审计(macOS)
设计
审计会话
实现
系统调用接口
OpenBSM API
审计的注意事项
3 认证框架(KAuth)
设计
实现
KAuth身份解析器(macOS)
调试KAuth
4 强制访问控制框架(MACF)
背景
MACF策略
设置MACF
MACF callout
MACF系统调用
小结
5 代码签名
代码签名的格式
代码签名需求
授移
强制验证代码签名
代码签名API
6 软件限制(macOS)
认证
authd
GateKeeper(macOS)
libquarantine
Quaralltine.kext
执行隔离
syspolicyd
应用程序转移
托管客户端(macos)
7 AppleMobileFileIntegrlty
AppleMobileFileIntegrity.kext
MACF策略
amfid
配置描述文件
AMFI信任缓存
AMFI用户客户端
小结
8 沙盒
沙盒的演变
App Sandbox(macOS)
移动容器(*OS)
沙盒配置文件
用户模式API
mac_syscall
Sandbox.kext
配置文件评估
sandboxd(macOS)
9 系统完整性保护(macOS)
设计
实现
API
10 隐私
透明度、许可和控制
唯一设备标识符
11 数据保护
卷级别加密(macOS)
文件级加密(*Os)
mobile_Obliterator
授权
密钥包
AppleKeyStore.kext
密钥链(keychain)
小结
第二部分 漏洞与漏洞利用
12 macOS漏洞
macOS 10.10.1:ntpd远程代码执行漏洞(CVE-2014-9295)
macOS 10.10.2:rootpipe权限提升(CVE-2015-1130)
macOS 10.10.3:kextd竞争条件漏洞(CVE-2015-3708)
macOS 10.10.4:DYLD_PRINT_TO_FILE权限提升漏洞(CVE-2015-3760)
macOS 10.10.5:DYLD_ROOT_PATH权限提升
macOS 10.11.0:tpwn提权和(或)SIP阉割
macOS 10.11.3:“Mach Race”本地提权(CVE-2016-1757)
macOS 10.11.4:LokiHardt的Trifecta(CVE-2016-1796、CVE-2016-1797和CVE-2016-1806)
小结
13 越狱
神话揭密
越狱过程
内核补丁
内核补丁保护
iOS越狱软件的进化
14 evasion
加载器
untemer程序
内核模式的漏洞利用程序
苹果公司的修复方案
15 evasiOn7
加载器
untether文件
内核模式漏洞利用
苹果公司的修复方案
16 Pangu 7(盘古斧)
加载器
证书注入
越狱有效载荷
untether文件
内核模式的漏洞利用
苹果公司的修复方案
17 Pangu8(轩辕剑)
加载器
用户模式的漏洞利用
untether文件
苹果公司的修复方案
18 TaiG(太极)
加载器
untether文件
内核模式的漏洞利用
苹果公司的修复方案
19 TaiG 2
代码签名绕过
untether文件
内核模式的漏洞利用
苹果公司的修复方案
20 Pangu 9(伏羲琴)
加载器
Pangu 9的有效载荷
内核模式的漏洞利用
绕过代码签名
untemer文件
苹果公司的修复方案
21 Pangu 9.3(女娲石)
内核模式的漏洞利用
苹果公司的修复方案
22 Pegasus(三叉戟)
漏洞利用流程
读取内核内存和绕过KASLR
写任意内核内存
持久性
苹果公司的修复方案
22.5Phoenix
信息泄露
Zone梳理
mach_ports_register
把它们放在一起就是Phoenix
苹果公司的修复方案
23 mach_portal
漏洞利用流程
Mach端口名称的urefs处理
将攻击应用于launchd
powerd崩滑
XNU中的set_dp_control_port UAF漏洞
禁用保护机制
苹果公司的修复方案
24 Yalu(iOS 10.0~iOS 10.2)
原语
KPP绕过
漏洞利用的后期
iOS 10.2:一个致命的Mach陷阱和导致灾难的漏洞利用程序
小结
附录A macOS安全加固指南
附录B 词汇表
后记
展开