描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302527688丛书名: 安全技术经典译丛
《灰帽黑客(第5版)》在上一版本的基础上做了全面细致的更新,新增了13章内容,分析敌方当前的武器、技能和战术,提供切实有效的补救措施、案例研究和可部署的测试实验,并揭示黑客们如何获取访问权限、攻击网络设备、编写和注入恶意代码及侵占Web应用程序和浏览器。这个与时俱进的知识宝库也透彻讲解Android漏洞攻击、逆向工程技术和网络法律等主题,呈现物联网等新主题。
? 利用Ettercap来构建和发动欺骗攻击 ? 使用模糊器来诱发错误条件并使软件崩溃 ? 利用高级逆向工程技术对Windows和Linux上的软件发起漏洞攻击 ? 绕过Windows访问控制和内存保护方案 ? 利用Padding Oracle Attack攻击Web应用程序 ? 研究*近0-day漏洞中使用的“释放后重用”技术 ? 使用高级XSS攻击来劫持Web浏览器 ? 理解勒索软件及其如何控制桌面 ? 使用JEB 和DAD反编译器来剖析Android恶意软件 ? 通过二进制比较来查找1-day漏洞 ? 使用软件无线电(SDR)攻击无线系统 ? 攻击物联网设备 ? 剖析和攻击嵌入式设备 ? 了解漏洞赏金计划 ? 部署下一代蜜罐 ? 剖析ATM恶意软件和常见的ATM攻击 ? 从业务角度分析道德黑客攻击
目 录
第Ⅰ部分 备 战
第1章 灰帽黑客—— 道德和法律 3
1.1 了解敌人 3
1.1.1 当前的安全状况 3
1.1.2 识别攻击 5
1.2 灰帽黑客之道 5
1.2.1 模拟攻击 6
1.2.2 测试频率及关注点 9
1.3 网络安全相关法律的演变 10
1.4 本章小结 13
第2章 编程技能 15
2.1 C编程语言 15
2.1.1 C语言程序的基本结构 15
2.1.2 程序示例 22
2.1.3 使用gcc进行编译 23
2.2 计算机内存 24
2.2.1 随机存取存储器 24
2.2.2 字节序 25
2.2.3 内存分段 25
2.2.4 内存中的程序 25
2.2.5 缓冲区 27
2.2.6 内存中的字符串 27
2.2.7 指针 27
2.2.8 内存知识小结 28
2.3 Intel处理器 29
2.4 汇编语言基础 30
2.4.1 机器语言、汇编语言与C语言 30
2.4.2 AT&T与NASM 30
2.4.3 寻址模式 33
2.4.4 汇编文件结构 34
2.4.5 汇编过程 35
2.5 使用gdb进行调试 35
2.5.1 gdb基础 35
2.5.2 使用gdb进行反汇编 37
2.6 Python编程技能 38
2.6.1 获取Python 39
2.6.2 Python的“Hello world”程序 39
2.6.3 Python对象 39
2.6.4 字符串 40
2.6.5 数值 41
2.6.6 列表 42
2.6.7 字典 44
2.6.8 Python文件操作 44
2.6.9 Python套接字编程 46
2.7 本章小结 47
第3章 下一代模糊测试 49
3.1 模糊测试简介 49
3.2 模糊测试器的类型 50
3.2.1 数据变异模糊测试器 50
3.2.2 数据生成模糊测试器 50
3.2.3 遗传模糊测试 50
3.3 Peach数据变异模糊测试 51
3.4 Peach数据生成模糊测试 56
3.5 AFL遗传或进化模糊测试 64
3.6 本章小结 68
第4章 下一代逆向工程 69
4.1 代码标注 69
4.1.1 使用IDAscope的IDB标注 69
4.1.2 C 代码分析 75
4.2 协作分析 79
4.2.1 利用FIRST协作知识 80
4.2.2 使用BinNavi进行协作 82
4.3 动态分析 84
4.3.1 使用Cuckoo沙箱自动执行动态分析 84
4.3.2 使用Labeless填补静态工具与动态工具之间的空隙 85
4.3.3 实验4-1:将IDA标注应用于x64dbg调试器 86
4.3.4 实验4-2:将调试器内存区域导入IDA 87
4.4 本章小结 88
第5章 软件定义的无线电 89
5.1 SDR入门 89
5.1.1 从何处购买 89
5.1.2 了解管理规则 91
5.2 示例 91
5.2.1 搜索 91
5.2.2 捕获 92
5.2.3 重放 94
5.2.4 分析 96
5.2.5 预览 102
5.2.6 执行 104
5.3 本章小结 105
第Ⅱ部分 从业务角度分析黑客攻击
第6章 成为一名渗透测试人员 109
6.1 从新手成长为专家的历程 109
6.1.1 渗透测试精神 110
6.1.2 渗透测试分类 110
6.1.3 未来的黑客攻击 110
6.1.4 了解技术 111
6.1.5 知道什么是“良好”的 111
6.1.6 渗透测试培训 112
6.1.7 实践 112
6.1.8 学位课程 115
6.1.9 知识传播 115
6.2 渗透测试人员和职业技能 116
6.2.1 个人责任 116
6.2.2 成为一名值得信赖的顾问 117
6.2.3 管理渗透测试 119
6.3 本章小结 122
第7章 红队的行动 123
7.1 红队的基本行动 124
7.1.1 策略、行动和战术重点 124
7.1.2 评估比较 125
7.2 红队的目标 126
7.3 常见问题 127
7.3.1 范围受限 127
7.3.2 时间受限 127
7.3.3 参与者受限 127
7.3.4 克服条件的限制 127
7.4 沟通 128
7.4.1 规划会议 128
7.4.2 确定可衡量的事件 129
7.5 理解威胁 129
7.6 攻击框架 130
7.7 测试环境 131
7.8 自适应测试 132
7.8.1 外部评估 132
7.8.2 物理安全评估 133
7.8.3 社交工程攻击 133
7.8.4 内部评估 134
7.9 吸取的教训 135
7.10 本章小结 136
第8章 紫队的行动 137
8.1 紫队简介 137
8.2 蓝队的基本行动 138
8.2.1 了解敌人 139
8.2.2 了解自己 139
8.2.3 安全程序 140
8.2.4 事故响应程序 140
8.2.5 常见的蓝队挑战 142
8.3 紫队的基本行动 143
8.3.1 决策框架 143
8.3.2 破坏杀伤链 144
8.3.3 杀伤链对策框架 146
8.3.4 沟通 146
8.4 紫队的优化和自动化 147
8.5 本章小结 148
第9章 漏洞赏金计划 149
9.1 漏洞披露的历史 149
9.1.1 完全向供应商披露 150
9.1.2 完全向公众披露 151
9.1.3 负责任的披露方式 152
9.1.4 再没有免费的Bug 152
9.2 漏洞赏金计划 153
9.2.1 漏洞赏金计划的类型 153
9.2.2 激励措施 155
9.2.3 围绕漏洞赏金计划的争议 155
9.2.4 主流的漏洞赏金计划促进者 155
9.3 Bugcrowd详解 156
9.3.1 程序所有者Web界面 156
9.3.2 程序所有者API示例 161
9.3.3 研究人员Web界面 162
9.4 通过发现漏洞谋生 163
9.4.1 选择一个目标 163
9.4.2 如有必要,进行注册 163
9.4.3 理解游戏规则 164
9.4.4 发现漏洞 164
9.4.5 报告漏洞 164
9.4.6 领取赏金 165
9.5 事故响应 165
9.5.1 沟通 165
9.5.2 鉴别和分级 165
9.5.3 修复 166
9.5.4 向用户披露 166
9.5.5 公关 166
9.6 本章小结 167
第Ⅲ部分 漏 洞 攻 击
第10章 不使用漏洞获取权限 171
10.1 捕获口令哈希 171
10.1.1 理解LLMNR和NBNS 171
10.1.2 理解Windows NTLMv1和NTLMv2身份认证 172
10.1.3 使用Responder 173
10.1.4 实验10-1:使用Responder获取口令 175
10.2 使用Winexe 178
10.2.1 实验10-2:使用Winexe访问远程系统 178
10.2.2 实验10-3:使用Winexe提升权限 179
10.3 使用WMI 180
10.3.1 实验10-4:使用WMI查询系统信息 180
10.3.2 实验10-5:使用WMI执行命令 182
10.4 利用WinRM 185
10.4.1 实验10-6:使用WinRM执行命令 185
10.4.2 实验10-7:使用WinRM远程运行PowerShell 186
10.5 本章小结 188
第11章 基本的Linux漏洞攻击 189
11.1 堆栈操作和函数调用过程 189
11.2 缓冲区溢出 191
11.2.1 实验11-1:meet.c溢出 192
11.2.2 缓冲区溢出的后果 196
11.3 本地缓冲区溢出漏洞攻击 197
11.3.1 实验11-2:漏洞攻击的组件 197
11.3.2 实验11-3:在命令行上进行堆栈溢出漏洞攻击 200
11.3.3 实验11-4:使用通用漏洞攻击代码进行堆栈溢出漏洞攻击 203
11.3.4 实验11-5:对小缓冲区进行漏洞攻击 205
11.4 漏洞攻击的开发过程 208
11.5 本章小结 215
第12章 高级的Linux漏洞攻击 217
12.1 格式化字符串漏洞攻击 217
12.1.1 格式化字符串 217
12.1.2 实验12-1:从任意内存读取 222
12.1.3 实验12-2:写入任意内存 224
12.1.4 实验12-3:改变程序执行 226
12.2 内存保护机制 229
12.2.1 编译器的改进 229
12.2.2 实验12-4:绕过栈保护 231
12.2.3 内核补丁和脚本 234
12.2.4 实验12-5:Return to Libc漏洞攻击 235
12.2.5 实验12-6:使用ret2libc保持权限 240
12.2.6 结论 244
12.3 本章小结 245
第13章 基本的Windows漏洞攻击 247
13.1 编译和调试Windows程序 247
13.1.1 实验13-1:在Windows上编译程序 248
13.1.2 Windows编译选项 249
13.1.3 在Windows上使用Immunity Debugger进行调试 250
13.1.4 实验13-2:程序崩溃 253
13.2 编写Windows漏洞攻击程序 256
13.2.1 回顾漏洞攻击程序的开发过程 256
13.2.2 实验13-3:攻击ProSSHD服务器 256
13.3 理解SEH 267
13.4 理解和绕过Windows内存保护 269
13.4.1 SafeSEH 269
13.4.2 绕过SafeSEH 270
13.4.3 SEHOP 271
13.4.4 绕过SEHOP 271
13.4.5 基于堆栈的缓冲区溢出检测(/GS) 278
13.4.6 绕过/GS 280
13.4.7 堆保护 280
13.5 本章小结 281
第14章 高级的Windows漏洞攻击 283
14.1 DEP 283
14.2 ASLR 284
14.3 EMET和Windows Defender Exploit Guard 285
14.4 绕过ASLR 285
14.5 绕过DEP和ASLR 287
14.5.1 VirtualProtect函数 287
14.5.2 ROP 287
14.5.3 指令片段 288
14.5.4 构建ROP链 289
14.6 通过内存泄漏突破ASLR 293
14.6.1 触发缺陷 294
14.6.2 跟踪内存泄漏 297
14.6.3 内存泄漏武器化 308
14.6.4 构建RVA ROP链 311
14.7 本章小结 315
第15章 PowerShell漏洞攻击 317
15.1 为什么使用PowerShell 317
15.1.1 利用现有资源 317
15.1.2 PowerShell日志记录 318
15.1.3 PowerShell的可移植性 319
15.2 加载PowerShell脚本 319
15.2.1 实验15-1:攻击条件 319
15.2.2 实验15-2:在命令行上传递命令 321
15.2.3 实验15-3:编码的命令 322
15.2.4 实验15-4:通过Web启动 323
15.3 使用PowerSploit进行漏洞攻击和后漏洞攻击 325
15.3.1 实验15-5:设置PowerSploit 325
15.3.2 实验15-6:通过PowerShell运行Mimikatz 327
15.3.3 实验15-7:使用PowerSploit创建持续访问 330
15.4 使用Empire实现命令和控制 333
15.4.1 实验15-8:设置Empire 333
15.4.2 实验15-9:使用Empire执行命令和控制 333
15.4.3 实验15-10:使用Empire攻克系统 334
15.5 本章小结 337
第16章 下一代Web应用程序漏洞攻击 339
16.1 XSS演化史 339
16.1.1 设置环境 340
16.1.2 实验16-1:温习XSS 341
16.1.3 实验16-2:XSS规避Internet防线 344
16.1.4 实验16-3:使用XSS更改应用程序逻辑 346
16.1.5 实验16-4:为XSS使用DOM 348
16.2 框架漏洞 351
16.2.1 设置环境 352
16.2.2 实验16-5:CVE-2017-5638漏洞攻击 352
16.2.3 实验16-6:CVE-2017-9805漏洞攻击 354
16.3 Padding Oracle Attack 357
16.4 本章小结 360
第17章 下一代补丁漏洞攻击 361
17.1 有关二进制比较的介绍 361
17.1.1 应用程序比较 361
17.1.2 补丁比较 362
17.2 二进制比较工具 363
17.2.1 BinDiff 364
17.2.2 turbodiff 365
17.2.3 实验17-1:首次文件比较 367
17.3 补丁管理流程 369
17.3.1 微软星期二补丁 370
17.3.2 获得并提取微软补丁 371
17.3.3 实验17-2:比较MS17-010 372
17.4 通过比较补丁进行漏洞攻击 375
17.4.1 DLL旁路漏洞 375
17.4.2 实验17-3:比较MS16-009 377
17.5 本章小结 382
第Ⅳ部分 高级恶意软件分析
第18章 剖析移动平台恶意软件 385
18.1 Android平台简介 385
18.1.1 Android应用程序包 385
18.1.2 应用程序清单 387
18.1.3 分析DEX 389
18.1.4 Java反编译 391
18.1.5 DEX反编译 392
18.1.6 DEX反汇编 394
18.1.7 示例18-1:在模拟器中运行APK 395
18.1.8 恶意软件分析 397
18.1.9 示例18-2:运用Droidbox进行黑盒APK监控 401
18.2 iOS平台 403
18.2.1 iOS安全 403
18.2.2 iOS应用程序 405
18.2.3 实验18-1:分析二进制属性列表文件 405
18.2.4 实验18-2:iPhone 4S越狱 406
18.2.5 实验18-3:解密Apple商店应用程序 407
18.3 本章小结 409
第19章 剖析勒索软件 411
19.1 勒索软件的历史 411
19.2 赎金支付选项 412
19.3 剖析Ransomlock 413
19.3.1 示例19-1:动态分析 413
19.3.2 示例19-2:静态分析 415
19.4 Wannacry 428
19.5 本章小结 434
第20章 ATM恶意软件 435
20.1 ATM概览 435
20.2 XFS概览 437
20.2.1 XFS体系结构 438
20.2.2 XFS管理器 439
20.3 分析ATM恶意软件 443
20.3.1 ATM恶意软件的类型 443
20.3.2 攻击者是如何在ATM上安装恶意软件的 444
20.3.3 剖析恶意软件 446
20.3.4 针对ATM恶意软件的对策 453
20.4 本章小结 454
第21章 欺骗:下一代蜜罐 455
21.1 欺骗简史 455
21.1.1 作为欺骗形式的蜜罐 456
21.1.2 部署时的考虑事项 458
21.1.3 设置虚拟机 458
21.2 开源蜜罐 459
21.2.1 实验21-1:Dionaea 459
21.2.2 实验21-2:ConPot 462
21.2.3 实验21-3:Cowrie 463
21.2.4 实验21-4:T-Pot 466
21.3 可选的商业化产品:TrapX 471
21.4 本章小结 480
第Ⅴ部分 物 联 网
第22章 攻击目标:物联网 483
22.1 IoT 483
22.1.1 连接设备的类型 483
22.1.2 无线协议 484
22.1.3 通信协议 485
22.1.4 安全方面的考虑事项 485
22.2 Shodan IoT搜索引擎 486
22.2.1 Web界面 486
22.2.2 实验22-1:使用Shodan命令行工具 488
22.2.3 Shodan API 489
22.2.4 实验22-2:测试Shodan API 489
22.2.5 实验22-3:使用MQTT 491
22.2.6 未经身份认证访问MQTT带来的启示 492
22.3 IoT蠕虫:只是时间问题 493
22.3.1 实验22-4:Mirai依然存在 493
22.3.2 预防措施 494
22.4 本章小结 494
第23章 剖析嵌入式设备 495
23.1 CPU 495
23.1.1 微处理器 495
23.1.2 微控制器 496
23.1.3 SoC 496
23.1.4 常见的处理器架构 496
23.2 串行接口 497
23.2.1 UART 497
23.2.2 SPI 502
23.2.3 I2C 503
23.3 调试接口 503
23.3.1 JTAG 503
23.3.2 SWD 505
23.4 软件 506
23.4.1 启动加载程序 507
23.4.2 无操作系统 508
23.4.3 实时操作系统 508
23.4.4 通用操作系统 509
23.5 本章小结 509
第24章 攻击嵌入式设备 511
24.1 对嵌入式设备中的漏洞进行静态分析 511
24.1.1 实验24-1:分析更新包 511
24.1.2 实验24-2:执行漏洞分析 515
24.2 使用硬件执行动态分析 518
24.2.1 设置测试环境 518
24.2.2 Ettercap 519
24.3 使用模拟器执行动态分析 523
24.3.1 FIRMADYNE工具 523
24.3.2 实验24-3:设置FIRMADYNE 523
24.3.3 实验24-4:模拟固件 525
24.3.4 实验24-5:攻击固件 528
24.4 本章小结 529
第25章 反制物联网恶意软件 531
25.1 对物联网设备的物理访问 531
25.1.1 RS-232概述 532
25.1.2 RS-232引脚排列 532
25.1.3 练习25-1:排除医疗设备的RS-232端口故障 533
25.2 建立威胁实验室 539
25.2.1 ARM和MIPS概述 540
25.2.2 实验25-1:使用QEMU设置系统 541
25.3 动态分析物联网恶意软件 544
25.3.1 实验25-2:动态分析恶意软件 544
25.3.2 PANDA 545
25.3.3 BeagleBone Black开发板 546
25.4 物联网恶意软件的逆向工程 546
25.4.1 ARM/MIPS指令集速成 546
25.4.2 实验25-3:IDA Pro远程调试和逆向工程 549
25.4.3 练习物联网恶意软件逆向工程 553
25.5 本章小结 555
前 言
我不知道第三次世界大战用什么武器,但我知道第四次世界大战中用的肯定是棍棒和石头。
——阿尔伯特?爱因斯坦
人类文明的确在进步,但这不能保证你的安全……在每次战争中,敌方都会试图借助新武器、新战术消灭你。
——威尔?罗杰
不战而屈人之兵,善之善者也。
——孙子
《灰帽黑客(第5版)》由致力于以道德和负责任的工作方式来提升个人、企业和国家的整体安全性的信息安全专业人员编撰,适合相关专业人士阅读。《灰帽黑客(第5版)》旨在向你提供过去只有少数黑客才了解的信息。无论是个人,还是一家机构的防御者,在面对黑帽黑客时,对敌人的深入了解非常重要,包括他们的策略、技能、工具和动机。因此《灰帽黑客(第5版)》将带你领会灰帽黑客的思路,即道德黑客使用攻击性技术达到防御性目的。道德黑客始终尊重法律和他人的权利,并且相信,通过先行的自我测试和完善,对手将无处下手,知难而退。
《灰帽黑客(第5版)》作者们希望为读者提供我们所认为的这个行业和社会所需的信息:对负责任的而且在意识和物质方面真正合乎道德标准的正义黑客技术的整体性讨论。这也是我们为什么一直坚持在《灰帽黑客(第5版)》每个新版本的开头就给出正义黑客的清晰定义的原因所在,社会上对正义黑客的理解是非常模糊的。
《灰帽黑客(第5版)》对第4版中的内容做了全面细致的更新,并尝试将最新最全的技术、流程、材料以及可重复的实际动手实验组合起来。在第4版的基础上,第5版中增加了13章全新的内容,同时对其他章节的内容也进行了更新。
《灰帽黑客(第5版)》第I部分介绍打赢安全战需要的所有工具和技术,使你通透理解更高级的主题。该部分节奏明快,无论是初出茅庐的新手,还是想将安全技能提高到新水平的专业人员,都必须掌握其中的知识点。第I部分的内容包括:
● 白帽、黑帽和灰帽黑客的定义及特征
● 在实施任何类型的正义黑客行动前应该了解的一些棘手道德问题
● 编程生存技能,这是灰帽黑客编写漏洞攻击程序或审查源代码必备的技能
● 模糊测试,这是挖掘零日漏洞的利器
● 逆向工程,这是剖析恶意软件或研究漏洞的必备技能
● 软件定义的无线电
第II部分从业务角度分析黑客攻击。不管你因为爱好还是谋生而从事黑客攻击,该部分的内容都适合你阅读。如果你是一位资深黑客,该部分的提示将让你功力倍增。该部分介绍一些让道德黑客合法赚钱的软技能:
● 如何进入渗透测试行当
● 通过红队改善企业的安全态势
● 适用于启动阶段的紫队
● 介绍Bug赏金计划,讲述如何以合乎道德的方式通过查找漏洞获得赏金
第III部分讨论开发程序来攻击系统漏洞所需的技能。其他书籍都介绍过此类主题,但旧式漏洞攻击程序到现在已经过时,不再奏效。因此,该部分将更新内容,介绍如何突破系统保护。该部分介绍的主题如下:
● 如何在不使用漏洞攻击程序的情况下获得shell访问权限
● 基本和高级Linux漏洞攻击程序
● 基本和高级Windows漏洞攻击程序
● 使用PowerShell攻击系统漏洞
● 现代Web漏洞攻击
● 使用补丁开发漏洞攻击程序
第IV部分分析高级恶意软件。在很多方面,这是网络安全领域最高级的主题。在网络战中,恶意软件扮演着冲锋陷阵的角色。该部分介绍用于执行恶意软件分析所需要的工具和技术。该部分介绍的主题如下:
● 分析移动恶意软件
● 分析最新的勒索软件
● 分析ATM恶意软件
● 使用下一代蜜罐在网络上查找高级攻击者和恶意软件
第V部分讨论物联网(Internet of Things,IoT)攻击主题。物联网会受到攻击,其中的漏洞会被人利用。该部分介绍的主题如下:
● 受到攻击的物联网
● 剖析嵌入式设备
● 攻击嵌入式设备
● 分析针对物联网设备的恶意软件
希望你能体会到《灰帽黑客(第5版)》呈现的新内容的价值,并在阅读新章节的过程中享受乐趣。如果你刚进入网络安全领域,或想更进一步深刻理解道德黑客攻击主题,《灰帽黑客(第5版)》将是你的良师益友。
注意:为确保你正确配置系统,从而执行实验步骤,《灰帽黑客(第5版)》配套网站提供了所需的文件。要获得实验材料和勘误信息,可访问GitHub库https://github.com/GrayHatHacking/GHHv5,也可访问出版商的网站www.mhprofessional.com。另外,还可扫描《灰帽黑客(第5版)》封底的二维码来下载它们。
评论
还没有评论。