《黑客攻防技術寶典》是人民郵電出版社2013年9月出版的圖書,作者是美Charlie Miller 。主要介紹了iOS的工作原理、安全架構、安全風險,揭秘了iOS越獄工作原理,探討了加密、代碼簽名、記憶體保護、沙盒機制、iPhone模糊測試、漏洞攻擊程式、ROP有效載荷、基帶攻擊等內容。
基本介紹
- 作者:美Charlie Miller
- 譯者:傅爾也
- ISBN:9787115328489
- 頁數:320
- 定價:69.00
- 出版社:人民郵電出版社
- 出版時間:2013-9
- 裝幀:平裝
- 副標題:iOS實戰篇
- 原作名:iOS hacker’s handbook
內容介紹
作者介紹
作品目錄
第1章 iOS安全基礎知識 1
1.1 iOS硬體/設備的類型 1
1.2 蘋果公司如何保護App Store 2
1.3 理解安全威脅 3
1.4 理解iOS的安全架構 4
1.4.1 更小的受攻擊面 4
1.4.2 精簡過的iOS 5
1.4.3 許可權分離 5
1.4.4 代碼簽名 5
1.4.5 數據執行保護 6
1.4.6 地址空間布局隨機化 6
1.4.7 沙盒 6
1.5 iOS攻擊簡史 7
1.5.1 Libtiff 7
1.5.2 簡訊攻擊 8
1.5.3 Ikee蠕蟲 8
1.5.4 Storm8 9
1.5.5 SpyPhone 10
1.5.6 Pwn2Own 2010 10
1.5.7 Jailbreakme.com 2(“Star”) 10
1.5.8 Jailbreakme.com 3(“Saffron”) 11
1.6 小結 11
第2章 企業中的iOS 12
2.1 iOS配置管理 12
2.1.1 移動配置描述檔案 13
2.1.2 iPhone配置實用工具 14
2.2 移動設備管理 21
2.2.1 MDM網路通信 21
2.2.2 Lion Server描述檔案管理器 22
2.3 小結 36
第3章 加密 37
3.1 數據保護 37
3.2 對數據保護的攻擊 40
3.2.1 對用戶密碼的攻擊 40
3.2.2 iPhone Data Protection Tools 43
3.3 小結 54
第4章 代碼簽名和記憶體保護 55
4.1 強制訪問控制 56
4.1.1 AMFI鉤子 56
4.1.2 AMFI和execv 57
4.2 授權的工作原理 59
4.2.1 理解授權描述檔案 59
4.2.2 如何驗證授權檔案的有效性 62
4.3 理解套用簽名 62
4.4 深入了解特權 64
4.5 代碼簽名的實施方法 65
4.5.1 收集和驗證簽名信息 65
4.5.2 如何在進程上實施簽名 68
4.5.3 iOS如何確保已簽名頁不發生改變 72
4.6 探索動態代碼簽名 73
4.6.1 MobileSafari的特殊性 73
4.6.2 核心如何處理即時編譯 75
4.6.3 MobileSafari內部的攻擊 77
4.7 破壞代碼簽名機制 78
4.7.1 修改iOS shellcode 79
4.7.2 在iOS上使用Meterpreter 83
4.7.3 取得App Store的批准 85
4.8 小結 86
第5章 沙盒 87
5.1 理解沙盒 87
5.2 在套用開發中使用沙盒 89
5.3 理解沙盒的實現 95
5.3.1 理解用戶空間庫的實現 95
5.3.2 深入核心 98
5.3.3 沙盒機制對App Store套用和平台套用的影響 109
5.4 小結 113
第6章 對iOS套用進行模糊測試 114
6.1 模糊測試的原理 114
6.2 如何進行模糊測試 115
6.2.1 基於變異的模糊測試 116
6.2.2 基於生成的模糊測試 116
6.2.3 提交和監測測試用例 117
6.3 對Safari進行模糊測試 118
6.3.1 選擇接口 118
6.3.2 生成測試用例 118
6.3.3 測試和監測套用 119
6.4 PDF模糊測試中的冒險 122
6.5 對快速查看(Quick Look)的模糊測試 126
6.6 用模擬器進行模糊測試 127
6.7 對MobileSafari進行模糊測試 130
6.7.1 選擇進行模糊測試的接口 130
6.7.2 生成測試用例 130
6.7.3 MobileSafari的模糊測試與監測 131
6.8 PPT模糊測試 133
6.9 對SMS的模糊測試 134
6.9.1 SMS基礎知識 135
6.9.2 聚焦協定數據單元模式 136
6.9.3 PDUspy的使用 138
6.9.4 用戶數據頭信息的使用 139
6.9.5 拼接訊息的處理 139
6.9.6 其他類型UDH數據的使用 139
6.9.7 用Sulley進行基於生成的模糊測試 141
6.9.8 SMS iOS注入 145
6.9.9 SMS的監測 146
6.9.10 SMS bug 151
6.10 小結 153
第7章 漏洞攻擊 154
7.1 針對bug類的漏洞攻擊 154
7.2 理解iOS系統自帶的分配程式 156
7.2.1 區域 156
7.2.2 記憶體分配 157
7.2.3 記憶體釋放 157
7.3 馴服iOS的分配程式 158
7.3.1 所需工具 158
7.3.2 與分配/釋放有關的基礎知識 159
7.4 理解TCMalloc 167
7.4.1 大對象的分配和釋放 167
7.4.2 小對象的分配 168
7.4.3 小對象的釋放 168
7.5 馴服TCMalloc 168
7.5.1 獲得可預知的堆布局 168
7.5.2 用於調試堆操作代碼的工具 170
7.5.3 堆風水:以TCMalloc對算術漏洞進行攻擊 172
7.5.4 以TCMalloc就對象生存期問題進行漏洞攻擊 175
7.6 對ASLR的挑戰 176
7.7 案例研究:Pwn2Own 2010 177
7.8 測試基礎設施 181
7.9 小結 181
第8章 面向返回的程式設計 182
8.1 ARM基礎知識 182
8.1.1 iOS的調用約定 183
8.1.2 系統調用的調用約定 183
8.2 ROP簡介 185
8.2.1 ROP與堆bug 186
8.2.2 手工構造ROP有效載荷 187
8.2.3 ROP有效載荷構造過程的自動化 191
8.3 在iOS中使用ROP 193
8.4 iOS中ROP shellcode的示例 195
8.4.1 用於盜取檔案內容的有效載荷 196
8.4.2 利用ROP結合兩種漏洞攻擊程式(JailBreakMe v3) 202
8.5 小結 206
第9章 核心的調試與漏洞攻擊 207
9.1 核心的結構 207
9.2 核心的調試 208
9.3 核心擴展與IOKit驅動程式 213
9.3.1 對IOKit驅動程式對象樹的逆向處理 213
9.3.2 在核心擴展中尋找漏洞 216
9.3.3 在IOKit驅動程式中尋找漏洞 219
9.4 核心漏洞攻擊 222
9.4.1 任意記憶體的重寫 223
9.4.2 未初始化的核心變數 227
9.4.3 核心棧緩衝區溢出 231
9.4.4 核心堆緩衝區溢出 236
9.5 小結 245
第10章 越獄 246
10.1 為何越獄 246
10.2 越獄的類型 247
10.2.1 越獄的持久性 247
10.2.2 漏洞攻擊程式的類型 248
10.3 理解越獄過程 249
10.3.1 對bootrom進行漏洞攻擊 250
10.3.2 引導ramdisk 250
10.3.3 為檔案系統越獄 250
10.3.4 安裝完美越獄漏洞攻擊程式 251
10.3.5 安裝AFC2服務 251
10.3.6 安裝基本實用工具 252
10.3.7 套用轉存 253
10.3.8 套用包安裝 254
10.3.9 安裝後的過程 255
10.4 執行核心有效載荷和補丁 255
10.4.1 核心狀態修復 255
10.4.2 許可權提升 256
10.4.3 為核心打補丁 257
10.4.4 安全返回 267
10.5 小結 268
第11章 基帶攻擊 269
11.1 GSM基礎知識 270
11.2 建立OpenBTS 272
11.2.1 硬體要求 272
11.2.2 OpenBTS的安裝和配置 273
11.3 協定棧之下的RTOS 276
11.3.1 Nucleus PLUS 276
11.3.2 ThreadX 277
11.3.3 REX/OKL4/Iguana 277
11.3.4 堆的實現 278
11.4 漏洞分析 281
11.4.1 獲得並提取基帶固件 281
11.4.2 將固件鏡像載入IDA Pro 283
11.4.3 套用/基帶處理器接口 283
11.4.4 棧跟蹤與基帶核心轉儲 283
11.4.5 受攻擊面 284
11.4.6 二進制代碼的靜態分析 285
11.4.7 由規範引路的模糊測試 285
11.5 對基帶的漏洞攻擊 286
11.5.1 本地棧緩衝區溢出:AT+XAPP 286
11.5.2 ultrasn0w解鎖工具 287
11.5.3 空中接口可利用的溢出 293
11.6 小結 299
附錄 參考資料 300