黑客之道 漏洞發(fā)掘的藝術(shù) 第2版(異步圖書出品)
定 價:119 元
- 作者:[美] 喬恩·埃里克森(Jon Erickson) 著,吳秀蓮 譯
- 出版時間:2020/7/1
- ISBN:9787115535559
- 出 版 社:人民郵電出版社
- 中圖法分類:TP393.08
- 頁碼:452
- 紙張:膠版紙
- 版次:1
- 開本:16開
作為一本黑客破解方面的暢銷書和長銷書,《黑客之道:漏洞發(fā)掘的藝術(shù)(第2版)》完全從程序開發(fā)的角度講述黑客技術(shù),雖然篇幅不長,但內(nèi)容豐富,涉及了緩沖區(qū)、堆、棧溢出、格式化字符串的編寫等編程知識,網(wǎng)絡(luò)**、端口掃描、拒絕服務(wù)攻擊等網(wǎng)絡(luò)知識,以及信息論、密碼破譯、各種加密方法等密碼學(xué)方面的知識。
通過閱讀《黑客之道:漏洞發(fā)掘的藝術(shù)(第2版)》,讀者可以了解黑客攻擊的精髓、各種黑客技術(shù)的作用原理,甚至利用并欣賞各種黑客技術(shù),使自己的網(wǎng)絡(luò)系統(tǒng)的安全性更高,軟件穩(wěn)定性更好,問題解決方案更有創(chuàng)造性。
值得一提的是,書中的代碼示例都是在基于運行Linux系統(tǒng)的x86計算機(jī)上完成的,與本書配套的LiveCD(可從異步社區(qū)下載)提供了已配置好的Linux環(huán)境,鼓勵讀者在擁有類似結(jié)構(gòu)的計算機(jī)上進(jìn)行實踐。讀者將看到自己的工作成果,并不斷實驗和嘗試新的技術(shù),而這正是黑客所崇尚的精神。
《黑客之道:漏洞發(fā)掘的藝術(shù)(第2版)》適合具有一定編程基礎(chǔ)且對黑客技術(shù)感興趣的讀者閱讀。
1.美亞全五星好評,暢銷10余年,銷量10余萬冊;
2.隨書附贈配套完整的Linux環(huán)境,供讀者編程和調(diào)試使用;
3.本書從黑客角度介紹了C編程的基礎(chǔ)知識;
4.不僅介紹了如何運行現(xiàn)有的漏洞,還解釋了神秘的黑客技術(shù)是如何工作的;
5.眾多知名技術(shù)媒體和平臺聯(lián)袂推薦。
所謂黑客之道,指的是創(chuàng)造性地解決問題的藝術(shù),無論這意味著是獨辟蹊徑解決了一個難題,還是使用編程技術(shù)來發(fā)掘漏洞。盡管很多人都自稱黑客,但卻很少有人具有堅實的技術(shù)基礎(chǔ)來真正推動黑客之道。
本書不僅介紹了如何運行現(xiàn)有的漏洞,還解釋了神秘的黑客技術(shù)是如何工作的。本書從黑客角度介紹了C編程的基礎(chǔ)知識。
與本書配套的光盤資源(可從異步社區(qū)下載)提供了一個完整的Linux編程和調(diào)試環(huán)境,從而使我們免于修改自己的操作系統(tǒng)。通過在這個Linux環(huán)境中練習(xí)本書中的示例,我們可以在掌握理論知識的同時,自行探索黑客技術(shù)。通過親自動手調(diào)試代碼、溢出緩沖區(qū)、劫持網(wǎng)絡(luò)通信、繞過保護(hù)機(jī)制、發(fā)掘利用密碼弱點,我們甚至可以發(fā)現(xiàn)新的漏洞。
本書介紹了如下內(nèi)容:
使用C語言、匯編語言和shell腳本編寫程序;
使用緩沖區(qū)溢出和格式字符串來破壞系統(tǒng)內(nèi)存,使其運行任意代碼;
使用調(diào)試器來檢查處理器寄存器和系統(tǒng)內(nèi)存,以便徹底理解所發(fā)生的事情;
繞過常見的安全措施,比如不可執(zhí)行的堆棧和入侵檢測系統(tǒng);
使用端口綁定或回連shellcode來訪問服務(wù)器,并更改服務(wù)器的日志記錄行為來藏匿自身;
重定向網(wǎng)絡(luò)流量、隱藏開放的端口自并劫持TCP連接;
使用FMS攻擊破解加密的無線流浪,并使用密碼概率矩陣來加速暴力攻擊。
黑客總是在不斷地突破界限,調(diào)查未知事物并提升其技能。即使你還不知道如何進(jìn)行編程,也可以通過本書學(xué)到編程、機(jī)器架構(gòu)、網(wǎng)絡(luò)通信和黑客技術(shù)等知識。將這些知識與本書提供的Linux環(huán)境接合起來,盡情釋放你的創(chuàng)造力吧!
Jon Erickson受過正規(guī)的計算機(jī)科學(xué)教育,從5歲起就開始從事黑客和編程相關(guān)的事情。他經(jīng)常在計算機(jī)安全會議上發(fā)言,并在世界各地培訓(xùn)安全團(tuán)隊。他當(dāng)前在加利福尼亞北部擔(dān)任漏洞研究員和安全專家。
第 1章 簡介 1
第 2章 編程 5
2.1 編程的含義 5
2.2 偽代碼 6
2.3 控制結(jié)構(gòu) 7
2.3.1 If-Then-Else 7
2.3.2 While/Until循環(huán) 9
2.3.3 For循環(huán) 9
2.4 更多編程基本概念 10
2.4.1 變量 11
2.4.2 算術(shù)運算符 11
2.4.3 比較運算符 13
2.4.4 函數(shù) 15
2.5 動手練習(xí) 18
2.5.1 了解全局 19
2.5.2 x86處理器 22
2.5.3 匯編語言 23
2.6 接著學(xué)習(xí)基礎(chǔ)知識 36
2.6.1 字符串 36
2.6.2 signed、unsigned、long和short 40
2.6.3 指針 41
2.6.4 格式化字符串 46
2.6.5 強(qiáng)制類型轉(zhuǎn)換 49
2.6.6 命令行參數(shù) 56
2.6.7 變量作用域 60
2.7 內(nèi)存分段 68
2.7.1 C語言中的內(nèi)存分段 73
2.7.2 使用堆 75
2.7.3 對malloc()進(jìn)行錯誤檢查 78
2.8 運用基礎(chǔ)知識構(gòu)建程序 79
2.8.1 文件訪問 80
2.8.2 文件權(quán)限 85
2.8.3 用戶ID 86
2.8.4 結(jié)構(gòu) 94
2.8.5 函數(shù)指針 98
2.8.6 偽隨機(jī)數(shù) 99
2.8.7 猜?lián)淇擞螒颉?00
第3章 漏洞發(fā)掘 113
3.1 通用的漏洞發(fā)掘技術(shù) 115
3.2 緩沖區(qū)溢出 116
3.3 嘗試使用BASH 131
3.4 其他內(nèi)存段中的溢出 147
3.4.1 一種基本的基于堆的溢出 148
3.4.2 函數(shù)指針溢出 153
3.5 格式化字符串 166
3.5.1 格式化參數(shù) 166
3.5.2 格式化參數(shù)漏洞 168
3.5.3 讀取任意內(nèi)存地址的內(nèi)容 170
3.5.4 向任意內(nèi)存地址寫入 171
3.5.5 直接參數(shù)訪問 178
3.5.6 使用short寫入 181
3.5.7 使用.dtors 182
3.5.8 notesearch程序的另一個漏洞 187
3.5.9 重寫全局偏移表 189
第4章 網(wǎng)絡(luò) 193
4.1 OSI模型 193
4.2 套接字 195
4.2.1 套接字函數(shù) 196
4.2.2 套接字地址 198
4.2.3 網(wǎng)絡(luò)字節(jié)順序 200
4.2.4 Internet地址轉(zhuǎn)換 200
4.2.5 一個簡單的服務(wù)器示例 201
4.2.6 一個Web客戶端示例 204
4.2.7 一個微型Web服務(wù)器 210
4.3 分析較低層的處理細(xì)節(jié) 214
4.3.1 數(shù)據(jù)鏈路層 215
4.3.2 網(wǎng)絡(luò)層 216
4.3.3 傳輸層 218
4.4 網(wǎng)絡(luò)嗅探 221
4.4.1 原始套接字嗅探 223
4.4.2 libpcap嗅探器 225
4.4.3 對層進(jìn)行解碼 227
4.4.4 活動嗅探 237
4.5 拒絕服務(wù) 250
4.5.1 SYN泛洪 250
4.5.2 死亡之ping 254
4.5.3 淚滴攻擊 255
4.5.4 ping泛洪 255
4.5.5 放大攻擊 255
4.5.6 分布式DoS泛洪 256
4.6 TCP/IP劫持 256
4.6.1 RST劫持 257
4.6.2 持續(xù)劫持 262
4.7 端口掃描 262
4.7.1 秘密SYN掃描 263
4.7.2 FIN、X-mas和null掃描 263
4.7.3 欺騙誘餌 264
4.7.4 空閑掃描 264
4.7.5 主動防御(shroud) 266
4.8 發(fā)動攻擊 272
4.8.1 利用GDB進(jìn)行分析 273
4.8.2 投彈 275
4.8.3 將shellcode綁定到端口 278
第5章 shellcode 281
5.1 對比匯編語言和C語言 281
5.2 開始編寫shellcode 286
5.2.1 使用堆棧的匯編語言指令 286
5.2.2 使用GDB進(jìn)行分析 289
5.2.3 刪除null字節(jié) 290
5.3 衍生shell的shellcode 295
5.3.1 特權(quán)問題 299
5.3.2 進(jìn)一步縮短代碼 302
5.4 端口綁定shellcode 303
5.4.1 復(fù)制標(biāo)準(zhǔn)文件描述符 308
5.4.2 分支控制結(jié)構(gòu) 310
5.5 反向連接shellcode 315
第6章 對策 320
6.1 用于檢測入侵的對策 320
6.2 系統(tǒng)守護(hù)程序 321
6.2.1 信號簡介 322
6.2.2 tinyweb守護(hù)程序 325
6.3 攻擊工具 329
6.4 日志文件 335
6.5 忽略明顯征兆 337
6.5.1 分步進(jìn)行 337
6.5.2 恢復(fù)原樣 342
6.5.3 子進(jìn)程 348
6.6 高級偽裝 349
6.6.1 偽造記錄的IP地址 349
6.6.2 無日志記錄的漏洞發(fā)掘 354
6.7 完整的基礎(chǔ)設(shè)施 357
6.8 偷運有效載荷 361
6.8.1 字符串編碼 362
6.8.2 隱藏NOP雪橇的方式 365
6.9 緩沖區(qū)約束 366
6.10 加固對策 379
6.11 不可執(zhí)行堆棧 380
6.11.1 ret2libc 380
6.11.2 進(jìn)入system() 380
6.12 隨機(jī)排列的堆?臻g 382
6.12.1 用BASH和GDB進(jìn)行研究 384
6.12.2 探測linux-gate 388
6.12.3 運用知識 391
6.12.4 第 一次嘗試 392
6.12.5 多次嘗試終獲成功 393
第7章 密碼學(xué) 396
7.1 信息理論 397
7.1.1 絕對安全 397
7.1.2 一次性密碼簿 397
7.1.3 量子密鑰分發(fā) 397
7.1.4 計算安全性 398
7.2 算法運行時間 399
7.3 對稱加密 400
7.4 非對稱加密 402
7.4.1 RSA 402
7.4.2 Peter Shor的量子因子算法 405
7.5 混合密碼 406
7.5.1 中間人攻擊 407
7.5.2 不同的SSH協(xié)議主機(jī)指紋 411
7.5.3 模糊指紋 414
7.6 密碼攻擊 419
7.6.1 字典攻擊 420
7.6.2 窮舉暴力攻擊 423
7.6.3 散列查找表 424
7.6.4 密碼概率矩陣 425
7.7 無線802.11b加密 435
7.7.1 WEP 435
7.7.2 RC4流密碼 436
7.8 WEP攻擊 437
7.8.1 離線暴力攻擊 437
7.8.2 密鑰流重用 438
7.8.3 基于IV的解密字典表 439
7.8.4 IP重定向 439
7.8.5 FMS攻擊 440
第8章 寫在最后 451