第1部分 shellcode簡介
第1章 必需的工具 3
1.1 編程語言 7
1.2 分析,調試,逆向工程的工具 8
1.3 必讀書目和其他的參考資料 10
第2章 匯編語言——概覽 12
2.1 匯編語言基本原理 13
2.2 用C程序解釋匯編概念 14
2.3 以內聯(lián)匯編為平臺 16
第3章 揭秘利用GPRS的入侵 18
3.1 匿名為什么也不安全 18
3.2 利用GPRS入侵 21
3.2.1 GPRS調制解調器VS手機 22
3.2.2 深入了解手機 22
3.2.3 從鍵盤改寫NAM 24
3.2.4 手動改寫NAM 26
3.2.5 參考資料 29
第2部分 溢出錯誤
第4章 受溢出影響的緩沖區(qū)(怪圈) 33
4.1 溢出錯誤分類(極度無聊) 34
4.2 產生溢出錯誤的歷史必然性 36
4.3 有關溢出錯誤的神話與傳說 37
4.4 攻擊的目標和可能性 39
4.4.1 讀敏感變量 39
4.4.2 修改秘密變量 39
4.4.3 把控制權傳給程序中的秘密函數 40
4.4.4 把控制權傳給入侵者的代碼 40
4.4.5 溢出攻擊的目標 40
4.4.6 不同溢出類型的特征 48
第5章 利用SEH 56
5.1 關于結構化異常的簡短信息 56
5.2 捕獲控制 62
5.3 抑制應用程序異常終止 63
第6章 受控的格式符 64
6.1 支持格式化輸出的函數 65
6.2 Cfingerd補丁 66
6.3 潛在的威脅源 66
6.3.1 強制偽造格式符 66
6.3.2 DoS實現 67
6.3.3 Peek實現 69
6.3.4 Poke實現 71
6.3.5 不均衡的格式符 73
6.3.6 目標緩沖區(qū)溢出 73
第7章 溢出實例 75
7.1 威脅源 75
7.2 技術細節(jié) 76
7.3 攻擊代碼 77
7.4 使攻擊代碼復活 80
7.5 編寫shellcode 81
7.6 勝利或失敗 81
7.7 路在何方? 83
第8章 搜索溢出的緩沖區(qū) 84
8.1 埋沒在打印紙下 85
8.2 二進制代碼歷險 87
8.2.1 代碼分析step by step 88
8.2.2 重要提示 95
8.3 溢出錯誤的實例 96
第9章 保護緩沖區(qū)免遭溢出之害 102
9.1 反黑客的技術 103
9.1.1 StackGuard 103
9.1.2 不可執(zhí)行棧(Nonexecutable Stack) 104
9.1.3 ITS4軟件安全工具 104
9.1.4 Flawfinder 104
9.2 內存分配的問題 105
9.2.1 CCured 105
9.2.2 Memwatch 105
9.2.3 Dmalloc,the Debug Malloc Library 106
9.2.4 Checker 106
第3部分 設計shellcode的秘密
第10章 編寫shellcode的問題 113
10.1 無效的字符 113
改寫地址的技巧 113
10.2 大小很重要 118
10.3 尋找自我 119
10.4 調用系統(tǒng)函數的技術 121
10.4.1 在不同的操作系統(tǒng)里實現系統(tǒng)調用 127
10.4.2 溢出之后恢復脆弱的程序 132
10.5 關于shellcoding的有趣參考 132
第11章 寫可移植shellcode的技巧 134
11.1 可移植shellcode的需求 135
11.2 達成可移植之路 135
11.3 硬編碼的缺點 136
11.4 直接在內存里搜索 138
11.5 Over Open Sights: PEB 140
11.6 展開SEH棧 141
11.7 原始API 142
11.8 確保可移植的不同方法 143
第12章 自修改基礎 144
12.1 了解自修改代碼 144
12.2 建立自修改代碼的原則 147
12.2.1 The Matrix 153
12.2.2 通過因特網修改
12.2.2 代碼的問題 156
12.2.3 關于自修改的筆記 157
第13章 在Linux里捉迷藏 159
13.1 可加載內核模塊 160
13.2 從任務列表里移走進程 164
13.3 捕獲系統(tǒng)調用 168
13.4 捕獲文件系統(tǒng)請求 169
13.5 當模塊不可用時 171
13.6 其他的隱藏方法 174
第14章 在Linux里捕獲Ring 0 176
14.1 Hacking的正道 176
14.2 Linux下內核藍牙本地攻擊 177
14.3 ELFs Fall into the Dump 178
14.4 多線程的問題 179
14.5 在多處理器機器上得到root 181
14.6 有趣的資源 183
第15章 編譯與反編譯shellcode 184
反編譯shellcode 188
第4部分 網絡蠕蟲和本地病毒
第16章 蠕蟲的生存周期 193
16.1 真實介紹前的閑言碎語 194
16.2 蠕蟲介紹 195
16.2.1 蠕蟲的結構解剖 196
16.2.2 蠕蟲傳播機理 204
16.2.3 蠕蟲的到達 205
16.2.4 感染的策略與戰(zhàn)術 206
16.2.5 為自然生態(tài)環(huán)境而努力:在同伴面前的決擇,生或死 209
16.2.6 怎樣發(fā)現蠕蟲 213
16.2.7 怎樣戰(zhàn)勝蠕蟲 216
16.2.8 暴風雨前的平靜結束了? 217
16.2.9 有趣的因特網資源 219
第17章 UNIX里的本地病毒 221
病毒活動需要的條件 223
第18章 scripts里的病毒 225
第19章 ELF文件 231
19.1 ELF文件的結構 233
19.2 常見結構和病毒行為的策略 235
19.2.1 通過合并來感染 236
19.2.2 通過擴展文件的最后一節(jié)來感染 238
19.2.3 通過壓縮原始文件的部分內容來感染 241
19.2.4 通過延伸文件的代碼節(jié)來感染 246
19.2.5 通過把代碼節(jié)下移來感染 249
19.2.6 通過創(chuàng)建定制的節(jié)來感染 251
19.2.7 在文件和頭部之間插入來感染 251
第20章 獲取控制權的方法 253
20.1 替換進入點(Entry Point) 253
20.2 在進入點附近插入病毒碼 254
20.3 修改導入表(Import Table) 254
第21章 被病毒感染的主要征兆 256
21.1 反病毒程序有用嗎? 261
21.2 有關病毒感染的因特網資源 262
第22章 最簡單的windows NT病毒 263
22.1 病毒操作的算法 264
22.2 實驗室病毒的源碼 265
22.3 編譯并測試這個病毒 268
22.4 枚舉流 270
22.5 有用的資源 270
第5部分 防火墻,蜜罐,和其他保護系統(tǒng)
第23章 繞過防火墻 273
23.1 防火墻能防御和不能防御的威脅 274
23.2 探測并識別防火墻 276
23.3 穿過防火墻的掃描和跟蹤 280
23.4 滲透防火墻 281
23.5 關于防火墻的連接 282
第24章 從防火墻逃脫 283
24.1 防火墻做與不做什么 283
24.2 與遠程主機建立連接 285
24.2.1 綁定exploit,或“幼稚的攻擊” 285
24.2.2 反向exploit 288
24.2.3 Find Exploit 290
24.2.4 重用Exploit 292
24.2.5 Fork Exploit 294
24.2.6 Sniffer Exploit,或被動掃描 295
第25章 在UNIX和Windows NT下組織遠程shell 296
25.1 Blind Shell 296
25.2 多功能shell 297
第26章 黑客喜歡蜂蜜 300
26.1 罐里有什么? 301
26.2 準備攻擊 302
26.3 對蜜罐的認識(Casting light on honeypots) 303
26.4 騙人的詭計 303
26.5 攻擊蜜罐 303
26.6 在蜜中淹死 304
第27章 竊聽LAN 305
27.1 攻擊的目標和方法 305
HUB和相關的缺陷 306
27.2 被動竊聽 307
檢測被動竊聽 314
27.3 主動竊聽或ARP欺騙 315
檢測主動竊聽 317
27.4 克隆網卡 318
檢測克隆并抵制它 318
27.5 竊聽Dial-up流量 318
27.6 sniffers無用時(When sniffers are useless) 319
27.7 秘密竊聽 319
27.8 與竊聽有關的資源 320
第28章 攻擊之下的數據庫 321
28.1 薄弱的密碼加密算法 322
28.2 密碼竊聽 322
28.3 Hacking a script 323
28.4 難忘的查詢或SQL注入 324
28.5 怎樣檢測SQL服務器的存在 327
28.6 抵抗入侵 328
第6部分 可用于插入的外來對象
第29章 攻擊藍牙 331
29.1 什么是藍牙? 332
29.2 精確射擊型天線 333
與天線有關的有趣的連接 335
29.3 認證和授權 335
關于加密算法的有趣連接 337
29.4 攻擊方法 338
與藍牙安全相關的連接 339
29.5 藍牙hacking工具概述 339
WIDCOMM里的溢出錯誤 340
第30章 節(jié)省GPRS費用 342
30.1 通過代理服務器工作 342
30.2 Google Web Accelerator 343
其他的Web加速器 344
30.3 通過telnet隧道 345
30.4 通過ICMP隧道 346
黑客軟件 347
第31章 關于flashing BIOS傳說與神話 348
31.1 升級BIOS的好處 351
31.1.1 支持新設備 352
31.1.2 新操作模塊 353
31.1.3 解決沖突 353
31.2 什么時候升級BIOS 355
31.3 Hacking BIOS 355
31.3.1 深入了解刷新工具 358
31.3.2 刷新BIOS的技巧 358
31.3.3 自我維護的BIOS 360
31.3.4 不能自我維護的BIOS 362
第32章 病毒感染BIOS 363
32.1 怎么進行 364
32.2 深入BIOS 365
32.3 Baptizing by fire, or creating an ISA ROM module 369
32.4 修改啟動塊 373
升高柵欄 374
32.5 系統(tǒng)超頻 375
32.6 與BIOS有關的有用的連接 376
CD內容 377