《灰帽黑客 正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术 第4版》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(美)DANIELREGALADO,SHONHARRIS等著;李枫译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:7302428670
  • 页数:528 页
图书介绍:全书分为5大部分:第1部分制定灰帽黑客必要的伦理和期望基础,第2部分介绍如今其他安全书籍中没有讲到的更高级的渗透测试方法和工具,第3部分深入底层代码,讲解各种浏览器、操作系统和应用的特定部件的工作原理以及如何加以利用,第4部分介绍黑客技术的最高级主题,包括逆向工程和反汇编、二进制文件漏洞等,第5部分讲解恶意软件分析。

第Ⅰ部分 速成课:备战 3

第1章 道德黑客和法律制度 3

1.1理解敌方策略的意义 3

1.2正义黑客过程 4

1.2.1渗透测试过程 5

1.2.2不道德黑客的做法 7

1.3网络法的兴起 8

1.3.1了解各种网络法 8

1.3.2关于“黑客”工具的争论 13

1.4漏洞披露 13

1.4.1各方看待问题的不同角度 14

1.4.2个中缘由 14

1.4.3 CERT目前采取的工作流程 15

1.4.4 Internet安全组织 16

1.4.5争议仍将存在 17

1.4.6再没有免费的bug了 18

1.4.7 bug赏金计划 19

1.5本章小结 19

1.6参考文献 20

1.7扩展阅读 21

第2章 编程技能 23

2.1 C编程语言 23

2.1.1 C语言基本结构 23

2.1.2程序范例 27

2.1.3使用gcc进行编译 28

2.2计算机内存 29

2.2.1随机存取存储器(RM) 29

2.2.2字节序 29

2.2.3内存分段 30

2.2.4内存中的程序 30

2.2.5缓冲区 31

2.2.6内存中的字符串 31

2.2.7指针 31

2.2.8内存知识小结 32

2.3 Intel处理器 32

2.4汇编语言基础 33

2.4.1机器指令、汇编语言与C语言 33

2.4.2 AT&T与NASM 33

2.4.3寻址模式 36

2.4.4汇编文件结构 37

2.4.5汇编过程 37

2.5使用gdb进行调试 37

2.5.1 gdb基础 38

2.5.2使用gdb进行反汇编 39

2.6 Python编程技能 40

2.6.1获取Python 40

2.6.2 Python的Hello World程序 40

2.6.3 Python对象 41

2.6.4字符串 41

2.6.5数字 42

2.6.6列表 43

2.6.7字典 44

2.6.8 Python文件操作 45

2.6.9 Python套接字编程 46

2.7本章小结 47

2.8参考文献 47

2.9扩展阅读 47

第3章 静态分析 49

3.1道德的逆向工程 49

3.2使用逆向工程的原因 50

3.3源代码分析 51

3.3.1源代码审计工具 51

3.3.2源代码审计工具的实用性 53

3.3.3手工源代码审计 54

3.3.4自动化源代码分析 59

3.4二进制分析 60

3.4.1二进制代码的手工审计 60

3.4.2自动化的二进制分析工具 72

3.5本章 小结 74

3.6扩展阅读 74

第4章 使用IDA Pro进行高级分析 75

4.1静态分析难点 75

4.1.1剥离的二进制文件 75

4.1.2静态链接程序和FLAIR 77

4.1.3数据结构分析 83

4.1.4己编译的C++代码的怪异之处 87

4.2扩展IDA Pro 89

4.2.1 1DAPython脚本 90

4.2.2执行Python代码 98

4.3本章 小结 98

4.4扩展阅读 98

第5章 模糊测试的世界 101

5.1模糊测试简介 101

5.2选择目标 102

5.2.1输入类型 102

5.2.2易于自动化 102

5.2.3复杂性 103

5.3模糊器的类型 104

5.3.1变异模糊器 104

5.3.2生成模糊器 105

5.4开始 105

5.4.1寻找模糊测试模板 106

5.4.2实验5-1:从互联网档案馆获取样本 107

5.4.3利用代码覆盖率选取最优模板集 108

5.4.4实验5-2:为模糊测试选取最优样本 109

5.5 Peach模糊测试框架 110

5.5.1 Peach模糊测试策略 115

5.5.2速度的重要性 116

5.5.3崩溃分析 116

5.5.4实验5-3: Peach变异模糊测试 120

5.5.5其他变异模糊器 121

5.6生成模糊器 121

5.7本章小结 122

5.8扩展阅读 122

第6章 shellcode策略 125

6.1用户空间shellcode 125

6.1.1系统调用 125

6.1.2基本shellcode 126

6.1.3端口绑定shellcode 126

6.1.4反向shellcode 128

6.1.5查找套接字shellcode 129

6.1.6命令执行代码 130

6.1.7文件传输代码 130

6.1.8多级shellcode 130

6.1.9系统调用代理shellcode 131

6.1.10进程注入shellcode 131

6.2其他shellcode考虑因素 132

6.2.1 shellcode编码 132

6.2.2自我破坏shellcode 133

6.2.3反汇编shellcode 134

6.3内核空间shellcode 135

6.4本章小结 136

6.5参考文献 136

6.6扩展阅读 137

第7章 编写Linux shellcode 139

7.1基本的Linux shellcode 139

7.1.1系统调用 139

7.1.2使用C进行系统调用 140

7.1.3使用汇编语言进行系统调用 141

7.1.4 exit系统调用 141

7.1.5 setreuid系统调用 143

7.1.6利用execve实现创建shell的shellcode 144

7.2实现端口绑定shellcode 147

7.2.1 Linux套接字编程 147

7.2.2用汇编程序创建套接字 150

7.2.3测试shellcode 152

7.3实现反向连接shellcode 155

7.3.1反向连接的C代码 155

7.3.2反向连接的汇编程序 156

7.4 shellcode编码 158

7.4.1简单的异或编码 158

7.4.2编码后shellcode的结构 158

7.4.3 JMP/CALL XOR解码器示例 159

7.4.4 FNSTENV XOR示例 160

7.4.5将代码整合起来 162

7.5利用Metasploit自动生成shellcode 164

7.5.1利用Metasploit生成 shellcode 164

7.5.2利用Metasploit对 shellcode进行编码 166

7.6本章小结 167

7.7扩展阅读 167

第Ⅱ部分 漏洞攻击 171

第8章 基于欺骗的攻击 171

8.1什么是欺骗 171

8.2 ARP欺骗 172

8.2.1实验8-1:使用Ettercap的ARP欺骗 173

8.2.2查看网络流量 174

8.2.3修改网络流量 175

8.3 DNS欺骗 181

8.3.1实验8-2:使用Ettercap进行DNS欺骗 182

8.3.2执行攻击 183

8.4 NetBIOS名称欺骗和LLMNR欺骗 184

8.4.1实验8-3:使用Responder攻击NetBIOS和LLMNR 185

8.4.2破解NTLMvl和NTLMv2哈希 188

8.5本章小结 188

8.6扩展阅读 189

第9章 攻击Cisco路由器 191

9.1攻击团体字符串和密码 191

9.1.1实验9-1:使用Ncrack和Metasploit来猜测凭据 191

9.1.2实验9-2:使用onesixtyone和Metasploit猜测团体字符串 193

9.2 SNMP和TFTP 195

9.2.1实验9-3:使用Metasploit下载配置文件 195

9.2.2实验9-4:使用SNMP和TFTP修改配置 197

9.3攻击Cisco密码 199

9.3.1攻击CiscoType 7密码 199

9.3.2实验9-5:使用Cain破解Type 7密码 200

9.3.3实验9-6:使用Metasploit解密Type 7密码 200

9.3.4攻击CiscoType 5密码 201

9.3.5实验9-7:使用John the Ripper攻击CiscoType 5密码 201

9.4使用隧道中转流量 202

9.4.1实验9-8:建立GRE隧道 203

9.4.2实验9-9:在GRE隧道上路由流量 205

9.5漏洞攻击和其他攻击 209

9.5.1 Cisco漏洞攻击 209

9.5.2保持对Cisco设备的访问 210

9.6本章小结 210

9.7扩展阅读 211

第10章 基本的Linux漏洞攻击 213

10.1栈操作 213

10.2缓冲区溢出 214

10.2.1实验10-1:meet.c溢出 216

10.2.2缓冲区溢出的后果 219

10.3本地缓冲区溢出漏洞攻击 220

10.3.1实验10-2:漏洞攻击的组件 220

10.3.2实验10-3:在命令行上进行栈溢出漏洞攻击 222

10.3.3实验10-4:使用通用漏洞攻击代码进行栈溢出漏洞攻击 224

10.3.4实验10-5:对小缓冲区进行漏洞攻击 225

10.4漏洞攻击的开发过程 228

10.4.1实验10-6:构建定制漏洞攻击 228

10.4.2确定偏移 229

10.4.3确定攻击向量 231

10.4.4生成shellcode 232

10.4.5验证漏洞攻击 233

10.5本章小结 234

10.6扩展阅读 234

第11章 高级Linux漏洞攻击 235

11.1格式化字符串漏洞攻击 235

11.1.1问题描述 235

11.1.2实验11-1:从任意内存读取 238

11.1.3实验11-2:写入任意内存 241

11.1.4实验11-3:改变程序执行 242

11.2内存保护机制 245

11.2.1编译器的改进 245

11.2.2实验11-4:绕过堆栈保护 247

11.2.3内核补丁和脚本 249

11.2.4实验11-5:“Return to libc”漏洞攻击 250

11.2.5实验11-6:使用ret2libc保持权限 254

11.2.6结论 258

11.3本章小结 259

11.4参考文献 259

11.5扩展阅读 259

第12章 Windows漏洞攻击 261

12.1 Windows程序编译与调试 261

12.1.1实验12-1:在Windows 上编译程序 261

12.1.2在Windows上使用Immunity Debugger 进行调试 263

12.1.3实验12-2:程序崩溃 265

12.2编写Windows漏洞攻击程序 268

12.2.1漏洞攻击程序开发过程回顾 268

12.2.2实验12-3:攻击ProSSHD服务器 268

12.3理解结构化异常处理(SEH) 277

12.4本章小结 279

12.5参考文献 279

12.6扩展阅读 279

第13章 绕过Windows内存保护 281

13.1理解Windows内存保护(XP SP3、 Vista、 Windows 7/8、Server 2008和Server 2012) 281

13.1.1基于栈的缓冲区溢出检测(/GS) 281

13.1.2 SafeSEH 282

13.1.3 SEHOP 283

13.1.4堆保护 283

13.1.5 DEP 283

13.1.6 ASLR 284

13.1.7 EMET 285

13.2绕过Windows内存保护 285

13.2.1绕过/GS 285

13.2.2绕过SafeSEH 286

13.2.3绕过ASLR 287

13.2.4绕过DEP 287

13.2.5绕过EMET 293

13.2.6绕过SEHOP 294

13.3本章小结 300

13.4参考文献 300

13.5扩展阅读 301

第14章 攻击Windows访问控制模型 303

14.1为何黑客要攻击访问控制机制 303

14.1.1多数人并不理解访问控制机制 303

14.1.2访问控制漏洞易于攻击 304

14.1.3访问控制漏洞的数量巨大 304

14.2 Windows访问控制的工作机制 304

14.2.1安全标识符 304

14.2.2访问令牌 305

14.2.3安全描述符 308

14.2.4访问检查 311

14.3访问控制配置的分析工具 314

14.3.1转储进程令牌 314

14.3.2转储SD 317

14.4特殊SID、特殊访问权限和“禁止访问” 318

14.4.1特殊的SID 318

14.4.2特殊访问权限 320

14.4.3剖析“禁止访问” 321

14.5分析访问控制引起的提权漏洞 327

14.6各种关注的对象类型的攻击模式 328

14.6.1针对服务的攻击 328

14.6.2针对Windows注册表DACL的攻击 334

14.6.3针对目录DACL的攻击 337

14.6.4针对文件DACL的攻击 342

14.7其他对象类型的枚举方法 346

14.7.1枚举共享内存段 346

14.7.2枚举命名管道 347

14.7.3枚举进程 347

14.7.4枚举其他命名的内核对象(信号量、互斥锁、事件、设备) 348

14.8本章小结 349

14.9扩展阅读 349

第15章 攻击Web应用程序 351

15.1概述十大Web漏洞 351

15.2 MD5哈希注入 352

15.2.1实验15-1:注入哈希 352

15.3多字节编码注入 357

15.3.1理解漏洞 357

15.3.2实验15-2:利用多字节编码 358

15.4搜捕跨站脚本攻击(XSS) 362

15.4.1实验15-3: JavaScript块中的基本xSS注入 363

15.5 Unicode规范化形式攻击 364

15.5.1实验15-4:利用Unicode规范化 364

15.5.2 Unicode规范化简介 365

15.5.3规范化形式 366

15.5.4准备好测试的环境 367

15.5.5通过x5s插件执行xss 测试 368

15.5.6手动发起攻击 369

15.5.7添加自己的测试用例 370

15.6本章小结 371

15.7参考文献 372

15.8扩展阅读 372

第16章 攻击IE:堆溢出攻击 373

16.1设置环境 373

16.1.1 WinDbg配置 373

16.1.2将浏览器附加到WinDbg 374

16.2堆喷射简介 374

16.3使用HTML5喷射 376

16.3.1实验16-1:使用HTML5执行堆喷射 377

16.4 DOM元素属性喷射(DEPS) 379

16.4.1实验16-2:使用DEPS技术的堆喷射 380

16.5 HeapLib2技术 382

16.5.1通过耗尽缓存块来强制执行新的分配 383

16.5.2实验16-3: HeapLib2喷射 383

16.6使用字节数组的Flash喷射 384

16.6.1实验16-4:使用Flash执行基本的堆喷射 385

16.7使用整数向量的Flash喷射 386

16.7.1实验16-5:使用Flash向量的堆喷射 385

16.8利用低碎片堆(LFH) 388

16.9本章小结 389

16.10参考文献 389

16.11扩展阅读 389

第17章 攻击IE:释放后重用技术 391

17.1释放后重用概述 391

17.2分析释放后重用攻击(UAF) 394

17.3利用UAF漏洞 402

17.4本章小结 407

17.5参考文献 407

17.6扩展阅读 408

第18章 使用BeEF进行高级客户端攻击 409

18.1 BeEF基础 409

18.1.1实验18-1:设置BeEF 409

18.1.2实验18-2:使用BeEF控制台 411

18.2挂钩浏览器 414

18.2.1实验18-3:基本的XSS挂钩 414

18.2.2实验18-4:使用网站欺骗挂钩浏览器 415

18.2.3实验18-5:使用shank自动注入挂钩 417

18.3使用BeEF获得指纹 419

18.3.1实验18-6:使用BeEF获得浏览器指纹 419

18.3.2实验18-7:使用BeEF获得用户指纹 420

18.3.3实验18-8:使用BeEF获得计算机指纹 421

18.4攻击浏览器 423

18.4.1实验18-9:使用BeEF和Java来攻击浏览器 423

18.4.2使用BeEF和Metasploit攻击浏览器 426

18.5自动化攻击 430

18.6本章小结 432

18.7扩展阅读 432

第19章 基于补丁比较的1-day漏洞开发 433

19.1有关二进制比较的介绍 433

19.1.1应用程序比较 433

19.1.2补丁比较 434

19.2二进制比较工具 434

19.2.1 BinDiff 435

19.2.2 turbodiff 436

19.2.3实验19-1:首次文件比较 438

19.3补丁管理流程 440

19.3.1微软周二补丁 440

19.3.2实验19-2:获得并提取微软补丁 441

19.3.3检查补丁 443

19.3.4实验19-3:使用turbodi比较MS14-006 445

19.3.5内核调试 447

19.3.6实验19-4:内核调试 MS14-006 451

19.4本章小结 454

19.5参考文献 454

19.6扩展阅读 454

第Ⅲ部分 高级恶意软件分析 457

第20章 剖析Android恶意软件 457

20.1 Android平台简介 457

20.1.1 Android应用程序包 457

20.1.2应用程序清单 459

20.1.3分析DEX 460

20.1.4 Java反编译 462

20.1.5 DEX反编译 463

20.1.6 DEX反汇编 465

20.1.7练习20-1:在模拟器中运行APK 466

20.2恶意软件分析 468

20.2.1恶意软件分析入门 468

20.2.2练习20-2:运用Droidbox进行黑盒APK监控 471

20.3本章小结 472

20.4扩展阅读 473

第21章 剖析勒索软件 475

21.1勒索软件的历史 475

21.2赎金支付选项 476

21.3剖析Ransomlock 476

20.2.1实验21-1:动态分析 477

20.2.2实验21-2:静态分析 479

21.4 CryptoLocker 491

21.5本章小结 493

21.6扩展阅读 493

第22章 分析64位恶意软件 495

22.1 AMD64架构概述 495

22.2解密C&C服务器 498

22.3本章小结 511

22.4扩展阅读 511

第23章 下一代逆向工程 513

23.1著名的IDA插件 513

23.1.1 IDAscope 513

23.1.2 IDAToolbag 519

23.1.3协作 522

23.2基于TrapX的蜜罐和沙箱技术 523

23.2.1免费的动态分析工具 523

23.2.2商业替代品:TrapX Malware Trap 524

23.3本章小结 527

23.4参考文献 527

23.5扩展阅读 527