《灰帽黑客》书籍《灰帽黑客》

《灰帽黑客》书籍《灰帽黑客》

作者:《灰帽黑客》书籍

出版社:清华大学出版社

出版年:2012-11

评分:7.6

ISBN:9787302301509

所属分类:网络科技

书刊介绍

内容简介

运用最新策略揭示当今最具破坏力的攻击

《灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)》在上一版的基础上做了全面更新,新增了9章内容。本书内容丰富,讲解透彻,浓墨重彩地描述最新漏洞、修复方法以及合法的公开途径,详细介绍恶意软件分析、渗透测试、SCADA、VoIP和Web安全等主题,分析黑客们如何定位系统、破坏保护方案、编写恶意代码以及利用Windows和Linux系统的缺陷。通过本书的学习,您将可以借助最新技术查找和修复安全缺陷,从而能够得心应手地阻止恶意网络攻击。

本书主要内容

 使用BackTrack和Metasploit来模拟漏洞攻击

 分析潜入、社交工程和内部攻击技术

 模拟构建用来发起栈缓冲区溢出攻击的Perl、Python和Ruby脚本

 理解并阻止Adobe、Office和多媒体文件中的恶意内容

 检测和阻止客户端、Web服务器、VoIP和SCADA攻击

 介绍针对Windows和Linux软件的逆向工程、模糊处理及反编译

 讨论SQL注入、跨站脚本和伪造攻击

 使用蜜罐和沙箱技术来捕获恶意软件和加壳软件

作品目录

《灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术(第3版)》

第ⅰ部分 “合乎道德的揭秘行为” 简介 1

第1章 正义黑客的道德规范 3

1.1 理解敌方策略的意义 3

1.2 认识安全领域的灰色区域 7

1.3 本书与正义黑客类图书的关系 8

1.3.1 漏洞评估 8

1.3.2 渗透测试 9

1.4 关于黑客类图书和课程的争议 12

1.4.1 工具的双重性 13

1.4.2 识别攻击 14

1.4.3 模拟攻击 15

1.5 攻击者最喜欢利用的漏洞 15

第2章 合乎道德的正常揭秘行为 19

2.1 各方看待问题的不同角度 20

2.2 cert目前采取的工作流程 21

2.3 完全揭秘策略—rainforest puppy policy 23

2.4 internet安全组织 24

2.4.1 发现漏洞 25

2.4.2 通知 25

.2.4.3 验证 27

2.4.4 解决 29

2.4.5 发布 30

2.5 争议仍将存在 30

2.6 案例分析 34

2.6.1 正当揭秘过程的优缺点 35

2.6.2 供应商更加关注 38

2.7 接下来应该做什么 38

第ⅱ部分 渗透测试及工具 41

第3章 社会工程攻击 43

3.1 社会工程攻击原理 43

3.2 实施社会工程攻击 44

3.3 渗透测试中常用到的攻击手段 46

3.3.1 好心人 47

3.3.2 会议室 51

3.3.3 加入公司 53

3.4 准备好进行面对面的攻击 54

3.5 防御社会工程攻击 56

第4章 潜入攻击 57

4.1 潜入攻击如此重要的原因 57

4.2 实施潜入攻击 58

4.2.1 侦察 58

4.2.2 思想准备 60

4.3 进入目标建筑物的常用方法 60

4.3.1 吸烟区入口 61

4.3.2 人工检查点 62

4.3.3 锁住的门 64

4.3.4 物理方式开锁 66

4.3.5 进入目标之后 69

4.4 防御潜入攻击 69

第5章 内部攻击 71

5.1 模拟内部攻击的重要性 71

5.2 实施内部攻击 72

5.2.1 工具和准备工作 72

5.2.2 了解情况 72

5.2.3 获得本地管理员权限 73

5.2.4 禁用防病毒软件 76

5.2.5 使用cain 77

5.3 防御内部攻击 83

第6章 使用backtrack linux发行 85

6.1 backtrack简介 85

6.2 将backtrack安装到dvd或优盘 86

6.3 直接在虚拟机中使用back track iso映像文件 87

6.3.1 使用virtualbox创建backtrack虚拟机 88

6.3.2 引导backtrack livedvd 系统 88

6.3.3 探索backtrack x窗口环境 89

6.3.4 启动网络服务 90

6.4 永久性更改backtrack90

6.4.1 将backtrack完整地安装在硬盘或者优盘中 91

6.4.2 新建一个包含永久性更改信息的iso文件 92

6.4.3 使用自定义文件自动保存和恢复更改 94

6.5 研究backtrack引导菜单 95

6.6 更新backtrack 97

第7章 使用metasploit 99

7.1 metasploit简介 99

7.2 获取metasploit 99

7.3 使用metasploit控制台加载攻击工具 100

7.4 使用metasploit攻击客户端漏洞 105

7.5 使用metasploit meterpreter进行渗透测试 107

7.5.1 使用meterpreter进行键盘记录 110

7.5.2 使用meterpreter以不同的已登录用户身份运行代码 110

7.5.3 使用meterpreter的hashdump命令和metasploit的psexec命令以及共享口令登录 112

7.6 metasploit的自动化与脚本化 113

7.7 更进一步探讨metasploit 115

第8章 渗透测试管理 117

8.1 制定渗透测试计划 117

8.1.1 渗透测试的类型 117

8.1.2 渗透测试的范围 118

8.1.3 渗透测试的位置 118

8.1.4 渗透测试小组成员构成 118

8.1.5 方法和标准 118

8.1.6 渗透测试的各个阶段 119

8.1.7 渗透测试计划 120

8.2 签署渗透测试协议 121

8.2.1 工作声明 121

8.2.2 “保释信” 121

8.3 实施渗透测试 122

8.3.1 测试启动会议 122

8.3.2 渗透测试中的资源访问 122

8.3.3 测试预期值管理 123

8.3.4 测试问题管理 123

8.3.5 欲速则不达 123

8.3.6 外部和内部协同 123

8.4 在渗透测试中进行信息共享 124

8.5 生成渗透测试结果报告 128

8.5.1 报告格式 128

8.5.2 报告摘要 128

第ⅲ部分 漏洞攻击 129

第 9 章 编程技能 131

9.1 c编程语言 131

9.1.1 c语言基本结构 131

9.1.2 程序范例 135

9.1.3 使用gcc进行编译 136

9.2 计算机内存 137

9.2.1 随机存取存储器(ram) 137

9.2.2 字节序 137

9.2.3 内存分段 138

9.2.4 内存中的程序 138

9.2.5缓冲区 139

9.2.6内存中的字符串 139

9.2.7 指针 139

9.2.8 内存知识小结 140

9.3 intel处理器 141

9.3.1 寄存器 141

9.4 汇编语言基础 142

9.4.1 机器指令、汇编语言与 c语言 142

9.4.2 at&t与nasm 142

9.4.3 寻址模式 144

9.4.4 汇编文件结构 145

9.4.5 汇编过程 146

9.5 使用gdb进行调试 146

9.5.1 gdb基础 146

9.5.2 使用gdb进行反汇编 148

9.6 python编程技能 149

9.6.1 获取python 149

9.6.2 python中的hello world程序 149

9.6.3 python对象 150

9.6.4 字符串 150

9.6.5 数字 151

9.6.6 列表 152

9.6.7 字典 153

9.6.8 python文件操作 154

9.6.9 python套接字编程 155

第10章 基本的linux漏洞攻击 157

10.1 栈操作 157

10.1.1 函数调用过程 158

10.2 缓冲区溢出 159

10.2.1 meet.c溢出 160

10.2.2 缓冲区溢出的后果 163

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

10.3.1 漏洞攻击组成部分 165

10.3.2 在命令行上进行栈溢出漏洞攻击 167

10.3.3 使用通用漏洞攻击代码进行栈溢出漏洞攻击 168

10.3.4 对小缓冲区进行漏洞攻击 170

10.4 漏洞攻击开发过程 173

10.4.1 控制eip 173

10.4.2 确定偏移 173

10.4.3 确定攻击途径 176

10.4.4 构建漏洞攻击三明治 176

10.4.5 测试漏洞攻击 177

第11章 高级linux漏洞攻击 179

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

11.1.1 问题描述 179

11.1.2 从任意内存读取 183

11.1.3 写入任意内存 184

11.1.4 利用.dtors获得根特权级 186

11.2 内存保护机制 189

11.2.1 编译器改进 190

11.2.2 内核补丁和脚本 193

11.2.3“返回到libc”漏洞攻击 194

11.2.4 综合比较 202

第12章 shellcode策略 203

12.1 用户空间shellcode 203

12.1.1 系统调用 203

12.1.2 基本shellcode 204

12.1.3 端口绑定shellcode 205

12.1.4 反向shellcode 206

12.1.5 查找套接字shellcode 207

12.1.6 命令执行代码 208

12.1.7 文件传输代码 208

12.1.8 多级shellcode 209

12.1.9 系统调用代理shellcode 209

12.1.10 进程注入shellcode 210

12.2 其他shellcode考虑因素 211

12.2.1 shellcode编码 211

12.2.2 自我破坏shellcode 212

12.2.3 反汇编shellcode 213

12.3 内核空间shellcode 214

12.3.1 内核空间考虑因素 214

第13章 编写linux shellcode 217

13.1 基本的linux shellcode 217

13.1.1 系统调用 217

13.1.2 使用c进行系统调用 218

13.1.3 使用汇编语言进行系统调用 219

13.1.4 系统调用exit 219

13.1.5 系统调用setreuid 221

13.1.6 利用execve实现创建shell的shellcode 222

13.2 实现端口绑定shellcode 226

13.2.1 linux套接字编程 226

13.2.2 采用汇编语言编程建立一个套接字 228

13.2.3 测试shellcode 231

13.3 实现反向连接shellcode 234

13.3.1 反向连接c语言编程 234

13.3.2 反向连接汇编程序 235

13.4 shellcode编码 237

13.4.1 简单的xor编码 237

13.4.2 编码后shellcode的结构 238

13.4.3 jmp/call xor解码器示例 238

13.4.4 fnstenv xor示例 239

13.4.5 将代码组合起来 241

13.5 利用metasploit自动生成shellcode 244

13.5.1 利用metasploit生成shellcode 244

13.5.2 利用metasploit对shellcode进行编码 245

第14章 windows漏洞攻击 247

14.1 windows程序编译与调试 247

14.1.1 在windows上进行编译 247

14.1.2 在windows上用ollydbg进行调试 249

14.2 编写windows漏洞攻击程序 253

14.2.1 漏洞攻击程序开发过程回顾 254

14.2.2 prosshd服务器 254

14.2.3 控制eip 255

14.2.4 确定偏移 257

14.2.5 确定攻击途径 258

14.2.6 构建攻击三明治 261

14.2.7 根据需要调试漏洞攻击程序 262

14.3 理解seh 264

14.3.1 seh的实现 264

14.4 理解windows内存保护(xp sp3、vista、7和server 2008) 266

14.4.1 基于栈的缓冲区溢出检测(/gs) 266

14.4.2 safeseh 268

14.4.3 sehop 268

14.4.4 堆保护 268

14.4.5 dep 268

14.4.6 aslr 269

14.5 绕开windows内存保护 270

14.5.1 绕开/gs 270

14.5.2 绕开safeseh 271

14.5.3 绕开aslr 272

14.2.4 绕开dep272

14.5.5 绕开sehop 278

14.5.6 内存保护绕开方法小结 285

第15章 content-type攻击原理与检测 287

15.1 content-type攻击原理 287

15.2 现今可被攻击的文件格式 289

15.3 pdf文件格式简介 290

15.4 恶意pdf漏洞攻击分析 293

15.5 恶意pdf文件检测工具 296

15.5.1 pdfid 296

15.5.2 pdf-parser.py 300

15.6 content-type攻击防御测试工具 303

15.7 content-type攻击防御方法 304

15.7.1 安装所有的安全更新 304

15.7.2 在adobe reader中禁用javascript 305

15.7.3 针对微软office应用程序和adobe reader启用dep 305

第16章 web应用程序安全漏洞307

16.1 最流行的web应用程序安全漏洞概述 307

16.1.1 注入漏洞 307

16.1.2 跨站脚本漏洞 308

16.1.3 owasp十大隐患中的其他内容 308

16.2 sql注入漏洞攻击 308

16.2.1 sql数据库与语句 310

16.2.2 测试web应用程序,搜寻sql注入漏洞 312

16.3 跨站脚本漏洞攻击 317

16.3.1 “脚本”的含义 317

16.3.2 跨站脚本的含义 318

第17章 oip攻击 323

17.1 voip的含义 323

17.2 voip使用的协议 324

17.2.1 sip 324

17.2.2 megaco h.248 325

17.2.3 h.323 325

17.2.4 tls和dtls 326

17.2.5 srtp 327

17.2.6 zrtp 327

17.3 voip攻击类型 327

17.3.1 枚举 328

17.3.2 sip口令破解 328

17.3.3 窃听与分组捕获 329

17.3.4 拒绝服务 329

17.4 如何防范voip攻击 335

第18章 scada攻击 337

18.1 scada的含义 337

18.2 scada使用的协议 338

18.2.1 opc 338

18.2.2 iccp 338

18.2.3 modbus 338

18.2.4 dnp3 339

18.3 scada fuzzing测试 340

18.3.1 使用autodafé进行scada fuzzing测试 340

18.3.2 使用tftp daemon fuzzer进行scada fuzzing测试 346

18.4 stuxnet恶意软件(网络恐怖主义新浪潮) 349

18.5 防范scada攻击 349

第ⅳ部分 漏洞分析 351

第19章 被动分析 353

19.1 道德的逆向工程 353

19.2 使用逆向工程的原因 354

19.2.1 逆向工程注意事项 354

19.3 源代码分析 355

19.3.1 源代码审计工具 355

19.3.2 源代码审计工具的实用性 357

19.3.3 手工源代码审计 359

19.3.4 自动化源代码分析 363

19.4 二进制分析 365

19.4.1 二进制代码的手工审计 365

19.4.2 自动化的二进制分析工具 376

第20章 使用ida pro进行高级静态分析 381

20.1 静态分析难点 381

20.1.1 剥离的二进制文件 381

20.1.2 静态链接程序和flair 383

20.1.3 数据结构分析 389

20.1.4 已编译的c++代码的诡异之处 393

20.2 扩展ida pro 396

20.2.1 idc脚本编程 396

20.2.2 ida pro插件模块及ida pro sdk 398

20.2.3 构建ida pro插件 400

20.2.4 ida pro加载器及处理器模块 402

第21章 高级逆向工程技术 405

21.1 软件攻击的目的 405

21.2 软件开发过程概述 406

21.3 检测工具 407

21.3.1 调试器 407

21.3.2 代码覆盖分析工具 409

21.3.3 统计分析工具 410

21.3.4 流程分析工具 410

21.3.5 内存使用监视工具 412

21.4 模糊测试 416

21.5 定制的模糊测试工具和技术 417

21.5.1 一个简单的url模糊测试工具 417

21.5.2 对未知协议进行模糊测试 420

21.5.3 spike 421

21.5.4 spike静态内容原语 421

21.5.5 spike proxy 424

21.5.6 sharefuzz 424

第22章 客户端浏览器的漏洞攻击 427

22.1 客户端软件漏洞的重要性 427

22.1.1 客户端漏洞可以规避防火墙保护 427

22.1.2 客户端应用程序经常在管理权限下运行 428

22.1.3 客户端漏洞易于针对特定人群或机构目标 428

22.2 internet explorer的安全概念 429

22.2.1 activex控件 429

22.2.2 internet explorer安全区域 430

22.3 客户端漏洞攻击的历史与发展趋势 431

22.3.1 客户端漏洞的流行 431

22.3.2 历史上针对客户端攻击的著名漏洞431

22.4 挖掘基于浏览器的新漏洞 437

22.4.1 mangleme 437

22.4.2 mozilla安全团队的模糊测试工具 440

22.4.3 axenum 441

22.4.4 axfuzz 446

22.4.5 axman 446

22.5 可利用的堆喷射技术 451

22.5.1 internetexploiter 451

22.6 防范客户端漏洞攻击 452

22.6.1 同步更新安全补丁 452

22.6.2 获取最新信息 453

22.6.3 在缩减权限下运行internet应用 453

第23章 攻击windows访问控制模型 455

23.1 攻击访问控制机制的理由 455

23.1.1 多数人不理解访问控制机制 455

23.1.2 访问控制漏洞易于攻击 456

23.1.3 访问控制漏洞数量巨大 456

23.2 windows访问控制的工作机制 456

23.2.1 安全标识符 456

23.2.2 访问令牌 457

23.2.3 安全描述符 460

23.2.4 访问检查 463

23.3 访问控制配置分析工具 465

23.3.1 转储进程令牌 466

23.3.2 转储安全描述符 468

23.4 特殊sid、特殊访问权限和“禁止访问”问题 469

23.4.1 特殊的sid469

23.4.2 特殊访问权限 471

23.4.3 “禁止访问”的原理 472

23.5 访问控制引起的提权漏洞 477

23.6 各种对象类型的攻击模式 478

23.6.1 服务攻击 478

23.6.2 windows注册表dacl攻击 484

23.6.3 目录dacl攻击 488

23.6.4 文件dacl攻击 493

23.7 其他对象类型的枚举方法 497

23.7.1 共享内存段 497

23.7.2 命名管道 498

23.7.3 进程 499

23.7.4 其他已命名的内核对象(信号量、互斥锁、事件、设备) 500

第24章 智能模糊测试框架sulley 503

24.1 协议分析 503

24.2 sulley模糊测试框架 504

24.2.1 安装sulley 505

24.2.2 强大的模糊测试工具 505

24.2.3 块结构 507

24.2.4 监视进程中的错误 511

24.2.5 监视网络流量 512

24.2.6 控制vmware 512

24.2.7 综述 513

24.2.8 崩溃事件的事后分析 515

24.2.9 网络使用分析 516

24.2.10 进一步研究 517

第25章 漏洞的可利用性和漏洞攻击程序 519

25.1 漏洞的可利用性 519

25.1.1 通过调试分析可利用性 520

25.1.2 初始分析 520

25.2 理解漏洞攻击问题 524

25.2.1 先决条件和后置条件 524

25.2.2 可重复性 525

25.3 构造漏洞攻击程序有效载荷的有关考虑 533

25.3.1 漏洞攻击程序有效载荷的协议元素 533

25.3.2 缓冲区的方向 534

25.3.3 自毁式shellcode 534

25.4 对问题进行归档 535

25.4.1 背景知识 535

25.4.2 环境 536

25.4.3 研究结果 536

第26章 关闭漏洞:缓解问题 537

26.1 各种缓解方案 537

26.1.1 端口碰撞技术 537

26.1.2 迁移 538

26.2 打补丁 539

26.2.1 对源代码打补丁的注意事项 539

26.2.2 给二进制程序打补丁的注意事项 541

26.2.3 二进制变异 545

26.2.4 第三方打补丁方案 549

第ⅴ部分 恶意软件分析 551

第27章 收集恶意软件和初步分析 553

27.1 恶意软件 553

27.1.1 恶意软件类型 553

27.1.2 恶意软件的防护技术 554

27.2 蜜网技术的最新发展趋势 555

27.2.1 蜜罐 555

27.2.2 蜜网 555

27.2.3 为什么要使用蜜罐 555

27.2.4 蜜罐的局限性 556

27.2.5 低交互性蜜罐 556

27.2.6 高交互性蜜罐 557

27.2.7 蜜网的类型 557

27.2.8 规避vmware检测技术 559

27.3 捕捉恶意软件:设置陷阱 561

27.3.1 vmware宿主机设置 561

27.3.2 vmware客户机设置 561

27.3.3 使用nepenthes进行捕获 562

27.4 恶意软件的初步分析 563

27.4.1 静态分析 563

27.4.2 动态分析 565

27.4.3 norman sandbox技术 569

第28章 破解恶意软件 573

28.1 恶意软件的发展趋势 573

28.1.1 嵌入的组件 573

28.1.2 加密的使用 574

28.1.3 用户空间隐藏技术 574

28.1.4 rootkit技术的应用574

28.1.5 持久化措施 575

28.2 对恶意软件进行去混淆处理 575

28.2.1 加壳程序基础 576

28.2.2 对二进制文件进行 脱壳处理 577

28.3 对恶意软件进行逆向工程 584

28.3.1 恶意软件的设置阶段 584

28.3.2 恶意软件的运行阶段 584

28.3.3 自动化的恶意软件分析 585

相关推荐

微信二维码