灰帽滲透測試技術(第6版)
[美] 艾倫·哈珀,瑞安·林,斯蒂芬·西姆斯,邁克爾·鮑科姆,瓦斯卡爾·特赫達,丹尼爾·費爾南德斯,摩西·弗羅斯特 著 徐坦 趙超傑 欒浩 牛承偉 余莉莎 譯
- 出版商: 清華大學
- 出版日期: 2025-06-01
- 售價: $948
- 語言: 簡體中文
- ISBN: 7302693315
- ISBN-13: 9787302693314
-
相關分類:
Penetration-test
- 此書翻譯自: Gray Hat Hacking: The Ethical Hacker's Handbook, 6/e (Paperback)
下單後立即進貨 (約4週~6週)
相關主題
商品描述
"通過使用本**指南中所包含的、經過驗證的安全技術和**實踐,安全專家能夠及時發現關鍵的安全漏洞並加固組織的IT框架。《灰帽滲透測試技術(第6版)》經過全新升級以適應當前的威脅環境,詳細解釋了攻擊方的武器、技能和戰術,並提供了經過實地測試的解決方案、案例研究和測試實驗。通過深入學習本書的知識體系,廣大師生、考生與讀者將掌握網絡犯罪分子如何獲取訪問權限、劫持設備和軟件、註入惡意代碼、竊取關鍵數據以及入侵整個網絡。此外,本書也將全面覆蓋物聯網、虛擬機管理程序和雲計算安全等多個知識領域。 ● 編寫並部署定制化的腳本以定位安全漏洞 ● 使用動態信息收集工具開展偵察工作 ● 使用Ghidra和IDA Pro執行軟件逆向工程 ● 掌握指揮與控制(Command and Control,C2)和免殺技術 ● 組建紅隊和紫隊,並開展道德黑客攻擊行動 ● 構建高效的威脅狩獵實驗室,以發現入侵網絡的攻擊方 ● 使用基礎和高級漏洞利用技術入侵Linux系統 ● 針對Windows系統、應用程序和Windows內核執行漏洞利用 ● 執行後滲透偵查、提權以及Active Directory權限維持 ● 運用應用程序與補丁差異分析(Application and Patch Diffing)以識別漏洞 ● 入侵物聯網(Internet of Thing,IoT)和嵌入式設備 ● 攻擊虛擬機管理程序(Hypervisor)和Kubernetes系統 ● 利用軟件定義的無線電(SDR)技術攻擊無線系統 ● 入侵雲基礎架構(Cloud Infrastructure),包括Amazon Web Services(AWS)等平臺"
目錄大綱
目 錄
第Ⅰ部分 預 備 知 識
第1章 灰帽黑客 3
1.1 灰帽黑客概述 3
1.1.1 黑客的歷史 4
1.1.2 道德黑客的歷史 6
1.1.3 漏洞披露的歷史 6
1.2 漏洞賞金計劃 10
1.2.1 激勵措施 10
1.2.2 圍繞漏洞賞金計劃所引發的爭議 10
1.3 了解敵人:黑帽黑客 11
1.3.1 高級持續威脅 11
1.3.2 Lockheed Martin公司的網絡殺傷鏈 11
1.3.3 網絡殺傷鏈的行動路線 13
1.3.4 MITRE ATT&CK框架 15
1.4 總結 18
第2章 編程必備技能 19
2.1 C程序設計語言 19
2.1.1 C語言程序代碼的基本結構 19
2.1.2 程序代碼示例 27
2.1.3 使用gcc編譯 28
2.2 計算機存儲器 29
2.2.1 隨機存取存儲器 30
2.2.2 字節序 30
2.2.3 內存分段 30
2.2.4 內存中的程序代碼 31
2.2.5 緩沖區 32
2.2.6 內存中的字符串 32
2.2.7 指針 33
2.2.8 存儲器知識小結 33
2.3 Intel處理器 34
2.4 匯編語言基礎 35
2.4.1 機器語言、匯編語言和C語言 36
2.4.2 AT&T與NASM 36
2.4.3 尋址模式 39
2.4.4 匯編文件結構 39
2.5 運用gdb調試 40
2.6 Python編程必備技能 44
2.6.1 獲取Python 44
2.6.2 Python對象 45
2.7 總結 53
第3章 Linux漏洞利用研發工具集 55
3.1 二進制動態信息收集工具 55
3.1.1 實驗3-1: Hello.c 55
3.1.2 實驗3-2: ldd 56
3.1.3 實驗3-3: objdump 56
3.1.4 實驗3-4: strace 58
3.1.5 實驗3-5: ltrace 59
3.1.6 實驗3-6: checksec 60
3.1.7 實驗3-7: libc-database 60
3.1.8 實驗3-8: patchelf 61
3.1.9 實驗3-9: one_gadget 62
3.1.10 實驗3-10: Ropper 63
3.2 運用Python擴展gdb 64
3.3 Pwntools CTF框架和漏洞利用程序研發庫 64
3.3.1 功能總結 65
3.3.2 實驗3-11: leak-bof.c 65
3.4 HeapME(Heap Made Easy)堆分析和協作工具 67
3.4.1 安裝HeapME工具 67
3.4.2 實驗3-12: heapme_demo.c 68
3.5 總結 70
第4章 Ghidra簡介 71
4.1 創建首個項目 71
4.2 安裝和快速啟動 72
4.2.1 設置項目工作區 72
4.2.2 功能闡述 72
4.2.3 實驗4-1: 使用註釋提高可讀性 79
4.2.4 實驗4-2: 二進制差異和補丁分析 82
4.3 總結 86
第5章 IDA Pro工具 87
5.1 IDA Pro逆向工程簡介 87
5.2 反匯編的概念 88
5.3 IDA Pro功能導航 90
5.4 IDA Pro特性和功能 94
5.4.1 交叉引用(Xrefs) 95
5.4.2 函數調用 95
5.4.3 Proximity瀏覽器 96
5.4.4 操作碼和尋址 97
5.4.5 快捷鍵 98
5.4.6 註釋 99
5.5 使用IDA Pro調試 100
5.6 總結 104
第Ⅱ部分 道德黑客
第6章 紅隊與紫隊 107
6.1 紅隊簡介 107
6.1.1 漏洞掃描 109
6.1.2 漏洞掃描驗證 109
6.1.3 滲透測試 110
6.1.4 威脅模擬與仿真 114
6.1.5 紫隊 117
6.2 通過紅隊盈利 117
6.2.1 企業紅隊 117
6.2.2 紅隊顧問 118
6.3 紫隊的基礎 119
6.3.1 紫隊的技能 119
6.3.2 紫隊活動 120
6.3.3 新興威脅研究 120
6.3.4 檢測工程 121
6.4 總結 121
第7章 指揮與控制(C2) 123
7.1 指揮與控制系統 123
7.1.1 Metasploit 124
7.1.2 PowerShell Empire 127
7.1.3 Covenant工具 128
7.2 混淆有效載荷 132
7.3 創建C#加載器 137
7.3.1 創建Go加載器 139
7.3.2 創建Nim加載器 141
7.4 網絡免殺 143
7.4.1 加密技術 143
7.4.2 備用協議 144
7.4.3 C2模板 144
7.5 EDR免殺 145
7.5.1 禁用EDR產品 145
7.5.2 繞過鉤子 146
7.6 總結 146
第8章 構建威脅狩獵實驗室 147
8.1 威脅狩獵和實驗室 147
8.1.1 選擇威脅狩獵實驗室 147
8.1.2 本章其余部分的方法 148
8.2 基本威脅狩獵實驗室:DetectionLab 148
8.2.1 前提條件 148
8.2.2 擴展實驗室 154
8.2.3 HELK 155
8.2.4 索引模式 159
8.2.5 基本查詢 160
8.3 總結 163
第9章 威脅狩獵簡介 165
9.1 威脅狩獵的基礎知識 165
9.1.1 威脅狩獵的類型 166
9.1.2 威脅狩獵的工作流程 167
9.1.3 使用OSSEM規範化數據源 167
9.1.4 實驗9-1:使用OSSEM可視化數據源 169
9.1.5 實驗9-2:AtomicRedTeam攻擊方仿真 172
9.2 探索假說驅動的狩獵 174
9.2.1 實驗9-3:假說攻擊方對SAM文件執行復制行為 175
9.2.2 爬行(Crawl)、行走(Walk)和奔跑(Run) 176
9.3 進入Mordor 177
9.4 威脅獵手行動手冊 181
9.5 開始使用HELK 181
9.6 Spark and Jupyter工具 181
9.7 總結 185
第Ⅲ部分 入侵系統
第10章 Linux漏洞利用基礎技術 189
10.1 棧操作和函數調用工作程序 189
10.2 緩沖區溢出 191
10.2.1 實驗10-1:meet.c溢出 193
10.2.2 緩沖區溢出的後果 196
10.3 本地緩沖區溢出漏洞利用技術 197
10.3.1 實驗10-2:漏洞利用的組件 197
10.3.2 實驗10-3:在命令行執行棧溢出漏洞利用 198
10.3.3 實驗10-4:通過Pwntools編寫漏洞利用代碼 200
10.3.4 實驗10-5:攻擊較小長度的緩沖區 201
10.4 漏洞利用程序代碼的研發流程 203
10.5 總結 208
第11章 Linux漏洞利用高級技術 209
11.1 實驗11-1:漏洞程序代碼和環境部署 209
11.1.1 安裝GDB 210
11.1.2 覆蓋RIP 210
11.2 實驗11-2:使用面向返回編程(ROP)繞過不可執行棧(NX) 212
11.3 實驗11-3:擊敗棧預警 215
11.4 實驗11-4:利用信息泄露繞過ASLR 219
11.4.1 第1階段 219
11.4.2 第2階段 219
11.5 實驗11-5:利用信息泄露繞過PIE 220
11.6 總結 222
第12章 Linux內核漏洞利用技術 223
12.1 實驗12-1:環境設置和脆弱的procfs模塊 223
12.1.1 安裝GDB 224
12.1.2 覆蓋RIP 226
12.2 實驗12-2:ret2usr 226
12.3 實驗12-3:擊敗stack canaries 229
12.4 實驗12-4:繞過超級用戶模式執行保護(SMEP)和內核頁表隔離(KPTI) 231
12.5 實驗12-5:繞過超級用戶模式訪問保護(SMAP) 234
12.6 實驗12-6:擊敗內核地址空間布局隨機化(KASLR) 237
12.7 總結 239
第13章 Windows漏洞利用基礎技術 241
13.1 編譯與調試Windows程序代碼 242
13.1.1 Windows 編譯器選項 243
13.1.2 運用Immunity Debugger調試Windows程序代碼 244
13.2 編寫Windows漏洞利用程序代碼 250
13.3 理解結構化異常處理 261
13.3.1 理解和繞過常見的Windows內存保護 262
13.3.2 數據執行防護 264
13.4 總結 270
第14章 Windows內核漏洞利用技術 271
14.1 Windows內核 271
14.2 內核驅動程序 272
14.3 內核調試 274
14.4 選擇目標 275
14.5 令牌竊取 285
14.6 總結 291
第15章 PowerShell漏洞利用技術 293
15.1 選擇PowerShell的原因 293
15.1.1 無文件落地 293
15.1.2 PowerShell日誌 294
15.1.3 PowerShell的可移植性 295
15.2 加載PowerShell腳本 295
15.3 PowerSploit執行漏洞利用與後滲透漏洞利用 301
15.4 使用PowerShell Empire實現C2 304
15.5 總結 311
第16章 無漏洞利用獲取shell技術 313
16.1 捕獲口令哈希 313
16.1.1 理解LLMNR和NBNS 313
16.1.2 理解Windows NTLMv1和NTLMv2身份驗證 314
16.1.3 利用Responder 315
16.2 利用Winexe工具 319
16.2.1 實驗16-2:使用Winexe訪問遠程系統 320
16.2.2 實驗16-3:利用Winexe獲得工具提權 321
16.3 利用WMI工具 321
16.3.1 實驗16-4:利用WMI命令查詢系統信息 322
16.3.2 實驗16-5:WMI執行命令 324
16.4 利用WinRM工具的優勢 326
16.4.1 實驗16-6:執行WinRM命令 326
16.4.2 實驗16-7:利用Evil-WinRM執行代碼 327
16.5 總結 329
第17章 現代Windows環境中的後滲透技術 331
17.1 後滲透技術 331
17.2 主機偵察 332
17.3 用戶偵察 332
17.3.1 實驗17-1:使用whoami識別權限 332
17.3.2 實驗17-2:使用Seatbelt查找用戶信息 335
17.4 系統偵察 336
17.4.1 實驗17-3:使用PowerShell執行系統偵察 336
17.4.2 實驗17-4:使用Seatbelt執行系統偵查 338
17.5 域偵察 339
17.5.1 實驗17-5:使用PowerShell獲取域信息 340
17.5.2 實驗17-6:利用PowerView 執行AD偵察 343
17.5.3 實驗17-7:SharpHound收集AD數據 345
17.6 提權 346
17.6.1 本地特權提升 346
17.6.2 活動目錄特權提升 348
17.7 活動目錄權限維持 353
17.7.1 實驗17-13:濫用AdminSDHolder 353
17.7.2 實驗17-14:濫用SIDHistory特性 355
17.8 總結 357
第18章 下一代補丁漏洞利用技術 359
18.1 二進制差異分析介紹 359
18.1.1 應用程序差異分析 359
18.1.2 補丁差異分析 360
18.2 二進制差異分析工具 361
18.2.1 BinDiff 362
18.2.2 turbodiff 363
18.2.3 實驗18-1:第一個差異分析示例 365
18.3 補丁管理流程 367
18.3.1 Microsoft的星期二補丁 367
18.3.2 獲取和提取Microsoft補丁368
18.4 總結 376
第Ⅳ部分 攻擊物聯網
第19章 攻擊目標:物聯網 379
19.1 物聯網 379
19.1.1 聯網設備的類型 379
19.1.2 無線協議 380
19.1.3 通信協議 381
19.2 安全方面的考慮事項 381
19.3 Shodan IoT搜索引擎 382
19.3.1 Web界面 382
19.3.2 Shodan命令行工具 385
19.3.3 Shodan API 386
19.3.4 未經授權訪問MQTT可能引發的問題 388
19.4 IoT蠕蟲:只是時間問題 389
19.5 總結 390
第20章 剖析嵌入式設備 391
20.1 中央處理器(CPU) 391
20.1.1 微處理器 392
20.1.2 微控制器 392
20.1.3 系統級芯片 392
20.1.4 常見的處理器架構 392
20.2 串行接口 393
20.2.1 UART 393
20.2.2 串行外設接口(SPI) 398
20.2.3 I2C 399
20.3 調試接口 400
20.3.1 聯合測試行動組(JTAG) 400
20.3.2 串行線調試(SWD) 402
20.4 軟件 402
20.4.1 引導加載程序 403
20.4.2 無操作系統 404
20.4.3 實時操作系統 404
20.4.4 通用操作系統 405
20.5 總結 405
第21章 攻擊嵌入式設備 407
21.1 嵌入式設備漏洞的靜態分析 407
21.1.1 實驗21-1:分析更新包 407
21.1.2 實驗21-2:執行漏洞分析 412
21.2 基於硬件的動態分析 416
21.2.1 設置測試環境 416
21.2.2 Ettercap工具 416
21.3 使用仿真器執行動態分析 420
21.3.1 FirmAE工具 420
21.3.2 實驗21-3:安裝FirmAE工具 420
21.3.3 實驗21-4:仿真固件 420
21.3.4 實驗21-5:攻擊固件 424
21.4 總結 425
第22章 軟件定義的無線電 427
22.1 SDR入門 427
22.1.1 從何處購買 427
22.1.2 了解管理規則 429
22.2 示例學習 429
22.2.1 搜索 429
22.2.2 捕獲 430
22.2.3 重放 432
22.2.4 分析 435
22.2.5 預覽 440
22.2.6 執行 443
22.3 總結 443
第Ⅴ部分 入侵虛擬機管理程序
第23章 虛擬機管理程序 447
23.1 虛擬機管理程序 448
23.1.1 Popek和Goldberg的虛擬化定理 448
23.1.2 Goldberg的硬件虛擬化器 450
23.1.3 Ⅰ型和Ⅱ型虛擬機監視器452
23.2 x86架構的虛擬化技術 453
23.2.1 動態二進制轉譯 453
23.2.2 環壓縮 454
23.2.3 影子分頁 455
23.2.4 半虛擬化技術 457
23.3 硬件輔助虛擬化技術 457
23.3.1 虛擬機擴展(VMX) 457
23.3.2 擴展頁表(EPT) 459
23.4 總結 461
第24章 創建研究框架 463
24.1 虛擬機管理程序攻擊面 463
24.2 單內核 465
24.2.1 引導消息實現 474
24.2.2 處理請求 476
24.3 客戶端(Python) 477
24.4 模糊測試(Fuzzing) 486
24.4.1 Fuzzer基類 486
24.4.2 模糊測試的提示和改進 492
24.5 總結 493
第25章 Hyper-V揭秘 495
25.1 環境安裝 495
25.2 Hyper-V應用程序架構 497
25.2.1 Hyper-V組件 498
25.2.2 虛擬信任級別 499
25.2.3 第一代虛擬機 500
25.2.4 第二代虛擬機 501
25.3 Hyper-V合成接口 502
25.3.1 合成MSR 502
25.3.2 超級調用 506
25.3.3 VMBus機制 509
25.4 總結 516
第26章 入侵虛擬機管理程序案例研究 517
26.1 Bug分析 517
26.2 編寫觸發器 521
26.2.1 建立目標 521
26.2.2 EHCI控制器 523
26.2.3 觸發軟件漏洞 524
26.3 漏洞利用 528
26.3.1 相對寫原語 528
26.3.2 相對讀原語 529
26.3.3 任意讀取 531
26.3.4 完整地址空間泄漏原語 532
26.3.5 模塊基址泄漏 535
26.3.6 RET2LIB 535
26.4 總結 539
第Ⅵ部分 入侵雲
第27章 入侵Amazon Web服務 543
27.1 Amazon Web服務 543
27.1.1 服務、物理位置與基礎架構 544
27.1.2 AWS的授權方式 544
27.1.3 濫用AWS最佳實踐 546
27.2 濫用身份驗證控制措施 547
27.2.1 密鑰與密鑰介質的種類 548
27.2.2 攻擊方工具 551
27.3 總結 559
第28章 入侵Azure 561
28.1 Microsoft Azure 561
28.1.1 Azure和AWS的區別 562
28.1.2 Microsoft Azure AD概述 566
28.1.3 Azure權限 567
28.2 構建對Azure宿主系統的攻擊 568
28.3 控制平面和托管標識 573
28.4 總結 576
第29章 入侵容器 577
29.1 Linux容器 577
29.1.1 容器的內部細節 578
29.1.2 Cgroups 578
29.1.3 命名空間 581
29.1.4 存儲 581
29.2 應用程序 584
29.3 容器安全 587
29.4 功能 590
29.5 總結 594
第30章 入侵Kubernetes 595
30.1 Kubernetes架構 595
30.2 指紋識別Kubernetes API Server 596
30.3 從內部入侵Kubernetes 601
30.4 總結 609