灰帽黑客
灰帽黑客封面图

灰帽黑客

(美) 里加拉多 (Regalado,D.) , (美) 哈里斯 (Harris,S.) , 著

出版社:清华大学出版社

年代:2016

定价:79.8

书籍简介:

全书分为5大部分:第1部分制定灰帽黑客必要的伦理和期望基础,第2部分介绍如今其他安全书籍中没有讲到的更高级的渗透测试方法和工具,第3部分深入底层代码,讲解各种浏览器、操作系统和应用的特定部件的工作原理以及如何加以利用,第4部分介绍黑客技术的最高级主题,包括逆向工程和反汇编、二进制文件漏洞等,第5部分讲解恶意软件分析。

作者介绍:

Daniel Regalado(又名Danux)已获得CISSP、OSCP、OSCE和CREA认证,是FireEye的高级恶意软件和漏洞研究人员。   Shon Harris已获得CISSP认证,是Logical Security的CEO和创始人,也是一名畅销书作家和教育工作者。Shon曾担任美国空军信息战部队的工程师。   Allen Harper已获得CISSP、PCI QSA认证,是Tangible Security公司的执行副总裁。  Chris Eagle是加州海军研究生院(NPS)计算机科学系的高级讲师。  Jonathan Ness已获得CHFI认证,是微软安全响应中心的首席软件安全工程师。   Branko Spasojevic是一名谷歌安全工程师。   Ryan Linn已获得CISSP、CSSLP、OSCE认证,目前是一位网络渗透测试管理顾问。  Stephen Sims是SANS机构的高级讲师及课程作者。

书籍目录:

目    录

第Ⅰ部分  速成课:备战

第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  随机存取存储器(RAM)   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  IDAPython脚本  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

第Ⅱ部分  漏洞攻击

第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  破解NTLMv1和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:使用turbodiff比较MS14-006     445

19.3.5  内核调试    447

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

19.4  本章小结 454

19.5  参考文献 454

19.6  扩展阅读 454

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

第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  IDA Toolbag     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

内容摘要:

发现和修复关键安全漏洞的前沿技术 多位安全专家披露的久经考验的安全策略助你加固网络并避免数字灾难。 灰帽黑客(第4版):正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术 在上一版本的基础上做了全面细致的更新,新增了12章内容,分析敌方当前的武器、技能和战术,提供切实有效的补救措施、案例研究和可部署的测试实验,并揭示黑客们如何获取访问权限、攻击网络设备、编写和注入恶意代码及侵占Web应用程序和浏览器。这个与时俱进的知识宝库也透彻讲解Android漏洞攻击、逆向工程技术和网络法律等主题。 主要内容   ● 利用Ettercap和Evilgrade来构建和发动欺骗攻击   ● 使用模糊器来诱发错误条件并使软件崩溃   ● 入侵思科路由器、交换机等网络硬件设备   ● 利用高级逆向工程技术对Windows和Linux上的软件发起漏洞攻击   ● 绕过Windows访问控制和内存保护方案   ● 使用Fiddler及其x5s插件来扫描Web应用的漏洞   ● 研究*近零日漏洞中使用的“释放后重用”技术   ● 通过MySQL类型转换和MD5注入攻击来绕过Web身份验证   ● 利用*新的堆喷射技术将shellcode注入浏览器内存   ● 使用Metasploit和BeEF注入框架来劫持Web浏览器   ● 在勒索软件控制你的桌面前使其失效   ● 使用JEB 和DAD反编译器来剖析Android恶意软件   ● 通过二进制比较来查找1-day漏洞

编辑推荐:

“在日新月异的信息安全领域,《灰帽黑客》系列丛书无疑是及时了解相关信息的可靠资源。强烈建议所有希望快速掌握安全技术的人士阅读本书。”
                                           ——OpenRCE和Zero Day Initiative创始人Pedram Amini

书籍规格:

书籍详细信息
书名灰帽黑客站内查询相似图书
丛书名安全技术经典译丛
9787302428671
如需购买下载《灰帽黑客》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位清华大学出版社
版次1版印次1
定价(元)79.8语种简体中文
尺寸26 × 19装帧平装
页数印数 3500

书籍信息归属:

灰帽黑客是清华大学出版社于2016.出版的中图分类号为 TP393.08 的主题关于 计算机网络-安全技术 的书籍。