灰帽滲透測試技術(第6版)

[美] 艾倫·哈珀,瑞安·林,斯蒂芬·西姆斯,邁克爾·鮑科姆,瓦斯卡爾·特赫達,丹尼爾·費爾南德斯,摩西·弗羅斯特 著 徐坦 趙超傑 欒浩 牛承偉 余莉莎 譯

  • 灰帽滲透測試技術(第6版)-preview-1
  • 灰帽滲透測試技術(第6版)-preview-2
  • 灰帽滲透測試技術(第6版)-preview-3
灰帽滲透測試技術(第6版)-preview-1

相關主題

商品描述

"通過使用本**指南中所包含的、經過驗證的安全技術和**實踐,安全專家能夠及時發現關鍵的安全漏洞並加固組織的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

最後瀏覽商品 (20)