黑客之道 漏洞發(fā)掘的藝術(shù) 第2版(異步圖書(shū)出品)
定 價(jià):119 元
- 作者:[美] 喬恩·埃里克森(Jon Erickson) 著,吳秀蓮 譯
- 出版時(shí)間:2020/7/1
- ISBN:9787115535559
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP393.08
- 頁(yè)碼:452
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
作為一本黑客破解方面的暢銷(xiāo)書(shū)和長(zhǎng)銷(xiāo)書(shū),《黑客之道:漏洞發(fā)掘的藝術(shù)(第2版)》完全從程序開(kāi)發(fā)的角度講述黑客技術(shù),雖然篇幅不長(zhǎng),但內(nèi)容豐富,涉及了緩沖區(qū)、堆、棧溢出、格式化字符串的編寫(xiě)等編程知識(shí),網(wǎng)絡(luò)**、端口掃描、拒絕服務(wù)攻擊等網(wǎng)絡(luò)知識(shí),以及信息論、密碼破譯、各種加密方法等密碼學(xué)方面的知識(shí)。
通過(guò)閱讀《黑客之道:漏洞發(fā)掘的藝術(shù)(第2版)》,讀者可以了解黑客攻擊的精髓、各種黑客技術(shù)的作用原理,甚至利用并欣賞各種黑客技術(shù),使自己的網(wǎng)絡(luò)系統(tǒng)的安全性更高,軟件穩(wěn)定性更好,問(wèn)題解決方案更有創(chuàng)造性。
值得一提的是,書(shū)中的代碼示例都是在基于運(yùn)行Linux系統(tǒng)的x86計(jì)算機(jī)上完成的,與本書(shū)配套的LiveCD(可從異步社區(qū)下載)提供了已配置好的Linux環(huán)境,鼓勵(lì)讀者在擁有類(lèi)似結(jié)構(gòu)的計(jì)算機(jī)上進(jìn)行實(shí)踐。讀者將看到自己的工作成果,并不斷實(shí)驗(yàn)和嘗試新的技術(shù),而這正是黑客所崇尚的精神。
《黑客之道:漏洞發(fā)掘的藝術(shù)(第2版)》適合具有一定編程基礎(chǔ)且對(duì)黑客技術(shù)感興趣的讀者閱讀。
1.美亞全五星好評(píng),暢銷(xiāo)10余年,銷(xiāo)量10余萬(wàn)冊(cè);
2.隨書(shū)附贈(zèng)配套完整的Linux環(huán)境,供讀者編程和調(diào)試使用;
3.本書(shū)從黑客角度介紹了C編程的基礎(chǔ)知識(shí);
4.不僅介紹了如何運(yùn)行現(xiàn)有的漏洞,還解釋了神秘的黑客技術(shù)是如何工作的;
5.眾多知名技術(shù)媒體和平臺(tái)聯(lián)袂推薦。
所謂黑客之道,指的是創(chuàng)造性地解決問(wèn)題的藝術(shù),無(wú)論這意味著是獨(dú)辟蹊徑解決了一個(gè)難題,還是使用編程技術(shù)來(lái)發(fā)掘漏洞。盡管很多人都自稱黑客,但卻很少有人具有堅(jiān)實(shí)的技術(shù)基礎(chǔ)來(lái)真正推動(dòng)黑客之道。
本書(shū)不僅介紹了如何運(yùn)行現(xiàn)有的漏洞,還解釋了神秘的黑客技術(shù)是如何工作的。本書(shū)從黑客角度介紹了C編程的基礎(chǔ)知識(shí)。
與本書(shū)配套的光盤(pán)資源(可從異步社區(qū)下載)提供了一個(gè)完整的Linux編程和調(diào)試環(huán)境,從而使我們免于修改自己的操作系統(tǒng)。通過(guò)在這個(gè)Linux環(huán)境中練習(xí)本書(shū)中的示例,我們可以在掌握理論知識(shí)的同時(shí),自行探索黑客技術(shù)。通過(guò)親自動(dòng)手調(diào)試代碼、溢出緩沖區(qū)、劫持網(wǎng)絡(luò)通信、繞過(guò)保護(hù)機(jī)制、發(fā)掘利用密碼弱點(diǎn),我們甚至可以發(fā)現(xiàn)新的漏洞。
本書(shū)介紹了如下內(nèi)容:
使用C語(yǔ)言、匯編語(yǔ)言和shell腳本編寫(xiě)程序;
使用緩沖區(qū)溢出和格式字符串來(lái)破壞系統(tǒng)內(nèi)存,使其運(yùn)行任意代碼;
使用調(diào)試器來(lái)檢查處理器寄存器和系統(tǒng)內(nèi)存,以便徹底理解所發(fā)生的事情;
繞過(guò)常見(jiàn)的安全措施,比如不可執(zhí)行的堆棧和入侵檢測(cè)系統(tǒng);
使用端口綁定或回連shellcode來(lái)訪問(wèn)服務(wù)器,并更改服務(wù)器的日志記錄行為來(lái)藏匿自身;
重定向網(wǎng)絡(luò)流量、隱藏開(kāi)放的端口自并劫持TCP連接;
使用FMS攻擊破解加密的無(wú)線流浪,并使用密碼概率矩陣來(lái)加速暴力攻擊。
黑客總是在不斷地突破界限,調(diào)查未知事物并提升其技能。即使你還不知道如何進(jìn)行編程,也可以通過(guò)本書(shū)學(xué)到編程、機(jī)器架構(gòu)、網(wǎng)絡(luò)通信和黑客技術(shù)等知識(shí)。將這些知識(shí)與本書(shū)提供的Linux環(huán)境接合起來(lái),盡情釋放你的創(chuàng)造力吧!
Jon Erickson受過(guò)正規(guī)的計(jì)算機(jī)科學(xué)教育,從5歲起就開(kāi)始從事黑客和編程相關(guān)的事情。他經(jīng)常在計(jì)算機(jī)安全會(huì)議上發(fā)言,并在世界各地培訓(xùn)安全團(tuán)隊(duì)。他當(dāng)前在加利福尼亞北部擔(dān)任漏洞研究員和安全專(zhuān)家。
第 1章 簡(jiǎn)介 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ù)運(yùn)算符 11
2.4.3 比較運(yùn)算符 13
2.4.4 函數(shù) 15
2.5 動(dòng)手練習(xí) 18
2.5.1 了解全局 19
2.5.2 x86處理器 22
2.5.3 匯編語(yǔ)言 23
2.6 接著學(xué)習(xí)基礎(chǔ)知識(shí) 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)制類(lèi)型轉(zhuǎn)換 49
2.6.6 命令行參數(shù) 56
2.6.7 變量作用域 60
2.7 內(nèi)存分段 68
2.7.1 C語(yǔ)言中的內(nèi)存分段 73
2.7.2 使用堆 75
2.7.3 對(duì)malloc()進(jìn)行錯(cuò)誤檢查 78
2.8 運(yùn)用基礎(chǔ)知識(shí)構(gòu)建程序 79
2.8.1 文件訪問(wèn) 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)存地址寫(xiě)入 171
3.5.5 直接參數(shù)訪問(wèn) 178
3.5.6 使用short寫(xiě)入 181
3.5.7 使用.dtors 182
3.5.8 notesearch程序的另一個(gè)漏洞 187
3.5.9 重寫(xiě)全局偏移表 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 一個(gè)簡(jiǎn)單的服務(wù)器示例 201
4.2.6 一個(gè)Web客戶端示例 204
4.2.7 一個(gè)微型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 對(duì)層進(jìn)行解碼 227
4.4.4 活動(dòng)嗅探 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 主動(dòng)防御(shroud) 266
4.8 發(fā)動(dòng)攻擊 272
4.8.1 利用GDB進(jìn)行分析 273
4.8.2 投彈 275
4.8.3 將shellcode綁定到端口 278
第5章 shellcode 281
5.1 對(duì)比匯編語(yǔ)言和C語(yǔ)言 281
5.2 開(kāi)始編寫(xiě)shellcode 286
5.2.1 使用堆棧的匯編語(yǔ)言指令 286
5.2.2 使用GDB進(jìn)行分析 289
5.2.3 刪除null字節(jié) 290
5.3 衍生shell的shellcode 295
5.3.1 特權(quán)問(wè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章 對(duì)策 320
6.1 用于檢測(cè)入侵的對(duì)策 320
6.2 系統(tǒng)守護(hù)程序 321
6.2.1 信號(hào)簡(jiǎn)介 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 高級(jí)偽裝 349
6.6.1 偽造記錄的IP地址 349
6.6.2 無(wú)日志記錄的漏洞發(fā)掘 354
6.7 完整的基礎(chǔ)設(shè)施 357
6.8 偷運(yùn)有效載荷 361
6.8.1 字符串編碼 362
6.8.2 隱藏NOP雪橇的方式 365
6.9 緩沖區(qū)約束 366
6.10 加固對(duì)策 379
6.11 不可執(zhí)行堆!380
6.11.1 ret2libc 380
6.11.2 進(jìn)入system() 380
6.12 隨機(jī)排列的堆棧空間 382
6.12.1 用BASH和GDB進(jìn)行研究 384
6.12.2 探測(cè)linux-gate 388
6.12.3 運(yùn)用知識(shí) 391
6.12.4 第 一次嘗試 392
6.12.5 多次嘗試終獲成功 393
第7章 密碼學(xué) 396
7.1 信息理論 397
7.1.1 絕對(duì)安全 397
7.1.2 一次性密碼簿 397
7.1.3 量子密鑰分發(fā) 397
7.1.4 計(jì)算安全性 398
7.2 算法運(yùn)行時(shí)間 399
7.3 對(duì)稱加密 400
7.4 非對(duì)稱加密 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 無(wú)線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章 寫(xiě)在最后 451