有史以來最好的黑客書籍之一《黑客之道漏:洞發掘的藝術 第2版》

程序員書屋 發佈 2020-06-24T13:27:06+00:00

可借用一個數學問題來演示「黑客行為」的本質:使用數字 1、3、4 和 6,以及 4 個基本數學運算符,要求最終得到結果 24。

提起「黑客行為」(hacking),人們的腦海中會立即閃現出一幅刻板的畫面:黑客們身上有刺青,頭髮染得花花綠綠的,從事各種惡意的電子破壞活動或間諜活動。大多數人都將黑客行為與違法行為聯繫在一起,主觀地認定從事黑客活動的人都是罪犯。誠然,有人用黑客技術干違法的勾當,但「黑客行為」本身並非都是如此。大多數黑客都是守法的。黑客攻擊的本質是尋找法律未涵蓋的範圍或遺漏之處,在給定情況下以創造性的、有新意的方式解決各種問題。

可借用一個數學問題來演示「黑客行為」的本質:

使用數字 1、3、4 和 6(每個數字只用一次),以及 4 個基本數學運算符(加、減、乘和除),要求最終得到結果 24。你可以自行規定運算順序;例如,算式 3 ×(4 + 6) + 1 = 31 是有效的,但不正確,因為它的結果不等於 24。

這個數學問題的規則簡單清晰,很多人卻答不上來。像該問題的解法一樣(參見本書最後一頁),黑客完全遵循系統的規則來解決問題,但他們以違反直覺、打破常規的方式使用這些規則;這種方式為黑客賦予利器,使他們能以傳統思維和方法無法想像的方式來解決問題。

今天給大家推出一本重磅新書:《黑客之道 漏洞發掘的藝術 第2版》。

原書在豆瓣的評分9.3,原書有多人推薦,有文章評論他是有史以來最好的黑客書籍之一。

第一版的讚譽:

 

本書堪稱最全面完整的黑客技術指南,不僅向你介紹如何使用漏洞發掘工具,還講述

如何開發漏洞發掘工具。」——PHRACK


「這是一本具有深遠影響的黑客工具書,它讓我以前購買的一大堆書黯然失色。」——SECURITY FORUMS


「特別建議你認真研讀本書第 2 章中的編程內容。」——UNIX REVIEW


「強烈推薦本書。字字珠璣,句句精湛,是作者的匠心之作;書中的代碼、介紹的工具

和示例都十分有用。」——IEEE CIPHER


「這本優秀指南簡潔明了,直擊要害,包含大量緊密結合實踐的代碼,呈現黑客技術,

並解釋技術原理。」——COMPUTER POWER USER (CPU) MAGAZINE


「一本出類拔萃的經典著作。如果你有志於將自己的技術提高到更高層次,就應當全面

透徹地研讀本書。」——ABOUT.COM INTERNET/NETWORK SECURITY

《黑客之道 漏洞發掘的藝術 第2版》不僅介紹了如何運行現有的漏洞,還解釋了神秘的黑客技術是如何工作的。本書從黑客角度介紹了C編程的基礎知識。

與本書配套的光碟資源(可從異步社區下載)提供了一個完整的Linux編程和調試環境,從而使我們免於修改自己的作業系統。通過在這個Linux環境中練習本書中的示例,我們可以在掌握理論知識的同時,自行探索黑客技術。通過親自動手調試代碼、溢出緩衝區、劫持網絡通信、繞過保護機制、發掘利用密碼弱點,我們甚至可以發現新的漏洞。

《黑客之道 漏洞發掘的藝術 第2版》介紹了如下內容:

  • 使用C語言、彙編語言和shell腳本編寫程序;
  • 使用緩衝區溢出和格式字符串來破壞系統內存,使其運行任意代碼;
  • 使用調試器來檢查處理器寄存器和系統內存,以便徹底理解所發生的事情;
  • 繞過常見的安全措施,比如不可執行的堆棧和入侵檢測系統;
  • 使用埠綁定或回連shellcode來訪問伺服器,並更改伺服器的日誌記錄行為來藏匿自身;
  • 重定向網絡流量、隱藏開放的埠自並劫持TCP連接;
  • 使用FMS攻擊破解加密的無線流浪,並使用密碼機率矩陣來加速暴力攻擊。

黑客總是在不斷地突破界限,調查未知事物並提升其技能。即使你還不知道如何進行編程,也可以通過本書學到編程、機器架構、網絡通信和黑客技術等知識。將這些知識與本書提供的Linux環境接合起來,盡情釋放你的創造力吧!

以前有些書小編都是放簡要目錄,這一本我感覺放全目錄比較合適。

目錄

第 1章 簡介 1
第 2章 編程 5
 2.1 編程的含義 5
 2.2 偽代碼 6
 2.3 控制結構 7
   2.3.1 If-Then-Else 7
2.3.2 While/Until循環 9
2.3.3 For循環 9
 2.4 更多編程基本概念 10
2.4.1 變量 11
2.4.2 算術運算符 11
2.4.3 比較運算符 13
2.4.4 函數 15
 2.5 動手練習 18
2.5.1 了解全局 19
2.5.2 x86處理器 22
2.5.3 彙編語言 23
 2.6 接著學習基礎知識 36
2.6.1 字符串 36
2.6.2 signed、unsigned、long和short 40

2.6.3 指針 41
2.6.4 格式化字符串 46
2.6.5 強制類型轉換 49
2.6.6 命令行參數 56
2.6.7 變量作用域 60
 2.7 內存分段 68
2.7.1 C語言中的內存分段 73
2.7.2 使用堆 75
2.7.3 對malloc()進行錯誤檢查 78
 2.8 運用基礎知識構建程序 79
2.8.1 文件訪問 80
2.8.2 文件權限 85
2.8.3 用戶ID 86
2.8.4 結構 94
2.8.5 函數指針 98
2.8.6 偽隨機數 99
2.8.7 猜撲克遊戲 100
第3章 漏洞發掘 113
 3.1 通用的漏洞發掘技術 115
 3.2 緩衝區溢出 116
 3.3 嘗試使用BASH 131
 3.4 其他內存段中的溢出 147
3.4.1 一種基本的基於堆的溢出 148
3.4.2 函數指針溢出 153
3.5 格式化字符串 166
3.5.1 格式化參數 166
3.5.2 格式化參數漏洞 168
3.5.3 讀取任意內存地址的內容 170
3.5.4 向任意內存地址寫入 171
3.5.5 直接參數訪問 178
3.5.6 使用short寫入 181
3.5.7 使用.dtors 182
3.5.8 notesearch程序的另一個漏洞 187
3.5.9 重寫全局偏移表 189
第4章 網絡 193
 4.1 OSI模型 193
 4.2 套接字 195
4.2.1 套接字函數 196
4.2.2 套接字地址 198
4.2.3 網絡字節順序 200
4.2.4 Internet地址轉換 200
4.2.5 一個簡單的伺服器示例 201
4.2.6 一個Web客戶端示例 204
4.2.7 一個微型Web伺服器 210
 4.3 分析較低層的處理細節 214
4.3.1 數據鏈路層 215
4.3.2 網絡層 216
4.3.3 傳輸層 218
4.4 網絡嗅探 221
4.4.1 原始套接字嗅探 223
4.4.2 libpcap嗅探器 225
4.4.3 對層進行解碼 227
4.4.4 活動嗅探 237
 4.5 拒絕服務 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 持續劫持 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 發動攻擊 272
4.8.1 利用GDB進行分析 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進行分析 289
5.2.3 刪除null字節 290
 5.3 衍生shell的shellcode 295
5.3.1 特權問題 299
5.3.2 進一步縮短代碼 302
 5.4 埠綁定shellcode 303
5.4.1 複製標準文件描述符 308
5.4.2 分支控制結構 310
 5.5 反向連接shellcode 315
第6章 對策 320
 6.1 用於檢測入侵的對策 320
6.2 系統守護程序 321
6.2.1 信號簡介 322
6.2.2 tinyweb守護程序 325
 6.3 攻擊工具 329
 6.4 日誌文件 335
 6.5 忽略明顯徵兆 337
6.5.1 分步進行 337
6.5.2 恢復原樣 342
6.5.3 子進程 348
 6.6 高級偽裝 349
6.6.1 偽造記錄的IP位址 349
6.6.2 無日誌記錄的漏洞發掘 354
 6.7 完整的基礎設施 357
 6.8 偷運有效載荷 361
6.8.1 字符串編碼 362
6.8.2 隱藏NOP雪橇的方式 365
 6.9 緩衝區約束 366
 6.10 加固對策 379
 6.11 不可執行堆棧 380
6.11.1 ret2libc 380
6.11.2 進入system() 380
 6.12 隨機排列的堆棧空間 382
6.12.1 用BASH和GDB進行研究 384
6.12.2 探測linux-gate 388
6.12.3 運用知識 391
6.12.4 第 一次嘗試 392
6.12.5 多次嘗試終獲成功 393
第7章 密碼學 396
 7.1 信息理論 397
7.1.1 絕對安全 397
7.1.2 一次性密碼簿 397
7.1.3 量子密鑰分發 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協議主機指紋 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

關鍵字: