新書推薦:
《
九色鹿·星槎竞帆 无远弗届:大航海时代亚洲区间贸易
》
售價:NT$
657.0
《
壹卷YeBook——宋学与宋代文学观念(修订版)论世衡史丛书
》
售價:NT$
418.0
《
政通四海:清代公文、驿递和朝贡体系
》
售價:NT$
454.0
《
超级大国的撕裂:美国250年政党政治史(历史学堂)
》
售價:NT$
296.0
《
征服密码 亚欧强盛的六大要素
》
售價:NT$
383.0
《
国医名师肿瘤临证传薪录
》
售價:NT$
500.0
《
大国智造:中国制造的新质生产力转型密码
》
售價:NT$
347.0
《
阿特伍德写作课(玛格丽特·阿特伍德作品系列)
》
售價:NT$
398.0
編輯推薦:
网络和数据安全技术逐渐成为各界关注的焦点,《灰帽渗透测试技术》 系列丛书作为网络与数据安全领域的经典著作之一,在安全行业中拥有举足轻重的地位。《灰帽渗透测试技术》系列丛书与《CISSP信息系统安全专家认证All-in-One》系列丛书作为CISSP 考试和CCSP考试的经典教材,以及数字安全人才评价的知识图谱标准而广为流传。在此,《灰帽渗透测试技术(第6版)》的译者序,旨在向高校师生、CISSP和CCSP考生、诸位安全专家、 人才选拔与评价专家,以及广大读者介绍本书的主要内容与知识要点。
首先,《灰帽渗透测试技术(第6版)》的内容相较于之前的版本做出了更为全面的补充、 更新和重构。
其次,《灰帽渗透测试技术(第6版)》更为注重理论与实践相结合。
再次,《灰帽渗透测试技术(第6版)》更加关注学习效果,措辞深入浅出,语言通俗易懂。
总之,《灰帽渗透测试技术(第6版)》一书的出版对于提升我国的网络安全与数据安全水平、推动网络与数据安全产业发展具有重要意义。衷心希望本书能够为广大师生、考生和读者提供有益的知识和实用的方法,成为各位师生、考生、读者与安全从业人员在网络安全与数据安全领域
內容簡介:
通过使用本权威指南中所包含的、经过验证的安全技术和最佳实践,安全专家能够及时发现关键的安全漏洞并加固组织的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)等平台
關於作者:
Allen Harper博士:T-Rex Solutions 公司的网络安全执行副总裁,拥有30余年行业经验。
Ryan Linn:在安全领域从业20年,历任系统程序员、企业安全负责人与网络安全顾问。
Stephen Sims:SANS研究院的进攻性安全课程负责人。
Michael Baucom:专注于嵌入式系统与移动设备安全的研究员,自动化渗透测试专家。
Huáscar Tejeda:F2TC网络安全公司的联合创始人兼CEO。
Daniel Fernandez:专攻虚拟机管理程序漏洞利用的安全研究员。
Moses Frost:SANS研究院的资深讲师与技术作家。
目錄 :
第Ⅰ部分 预 备 知 识
第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
第Ⅰ部分 预 备 知 识
第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
內容試閱 :
近年来,随着数字化转型的加速,我国在数字科技领域迅速发展,带来了无数机遇与挑战。数字化转型不仅推动了以数据为核心要素的新质生产力的发展,也使得数字化水平和数据化水平成为提升各类组织竞争力的关键因素。然而,数据的广泛应用及其重要程度也导致了网络和数据安全问题愈发突出,恶意攻击事件频繁发生,严重威胁到个人、组织乃至国家的安全。
在这样的背景下,网络和数据安全技术逐渐成为各界关注的焦点,《灰帽渗透测试技术》系列丛书作为网络与数据安全领域的经典著作之一,在安全行业中拥有举足轻重的地位。《灰帽渗透测试技术》系列丛书与《CISSP信息系统安全专家认证All-in-One》系列丛书作为CISSP考试和CCSP考试的经典教材,以及数字安全人才评价的知识图谱标准而广为流传。在此,《灰帽渗透测试技术(第6版)》的译者序,旨在向高校师生、CISSP和CCSP考生、诸位安全专家、人才选拔与评价专家,以及广大读者介绍本书的主要内容与知识要点。
首先,《灰帽渗透测试技术(第6版)》的内容相较于之前的版本做出了更为全面的补充、更新和重构。本书针对当前网络安全与数据安全态势展开了深入的分析,并全面梳理和讲解了各类网络和数据安全的攻击与防御技术,包括MITRE ATT&CK框架、网络攻击、漏洞利用、逆向工程、指挥与控制(Command and Control,C2)技术、物联网安全、云计算安全、威胁狩猎实验室等各个方面。同时,针对最新的数字安全技术和工具,本书也充实了相应的章节和内容,用以帮助师生、考生和读者能够及时掌握最新的研究成果和实践应用场景。
其次,《灰帽渗透测试技术(第6版)》更为注重理论与实践相结合。在深入剖析各种攻击技术的同时,本书也给出了大量具体的实战案例和实践指导,帮助师生、考生和读者更好地理解攻击方实施攻击的原理和方法,并提供了相应的防护策略和安全控制措施。这部分内容也是CISSP和CCSP认证的重点考查内容。
再次,《灰帽渗透测试技术(第6版)》更加关注学习效果,措辞深入浅出,语言通俗易懂。尽管网络和数据安全攻防技术是一个极其复杂的专业纵深领域,但是,本书借用通俗易懂的语言和生动的案例,帮助师生、考生和读者轻松理解和掌握其中的知识和技巧,无论是初学者,还是具备一定基础的专业人士都能从中受益。本书是数字安全从业人员的重要参考文献。
总之,《灰帽渗透测试技术(第6版)》一书的出版对于提升我国的网络安全与数据安全水平、推动网络与数据安全产业发展具有重要意义。衷心希望本书能够为广大师生、考生和读者提供有益的知识和实用的方法,成为各位师生、考生、读者与安全从业人员在网络安全与数据安全领域的参考工具和学习资料。同时,希望广大师生、考生和读者能够加强对网络安全与数据安全的重视,提高自身的安全意识,共同为我国构建一个安全可信的网络环境。
有鉴于此,清华大学出版社引进并主持翻译了《灰帽渗透测试技术(第6版)》一书。本书全面深入地探索了灰帽黑客的世界,从历史渊源开始,系统地介绍了灰帽黑客的基本概念和原则;通过案例和技术解析,详细描述了灰帽黑客的工作方法和技术手段;深入探讨了灰帽黑客与网络安全技术和数据安全技术的交融,以及对网络安全与数据安全的影响和启示,全方位地展现了灰帽黑客的多面形象。通过探讨灰帽黑客的道德观和行为准则,分享了在数字安全(覆盖业务安全、数据安全、人工智能安全、网络安全、信息安全等)领域中的最佳实践和建议,引导师生、考生和读者思考如何运用灰帽黑客的知识和经验,帮助社会、组织和个人提升网络安全与数据安全方面的能力水平和防护效果。
本书的翻译工作历时11个月全部完成。翻译过程中译者团队力求忠于原著,尽可能传达作者的原意。在此,感谢参与本书翻译的安全专家,正是有了他们的辛勤付出才有本书的出版。同时,感谢参与本书校对的安全专家,他们保证了本书稿件内容表达的一致性和文字的流畅。感谢栾浩、徐坦、赵超杰、牛承伟、余莉莎在翻译、校对和统稿等工作上投入的大量时间和精力,他们保证了全书在技术上符合网络与数据安全工作实务要求,以及在内容表达上的准确、一致和连贯。
同时,还要感谢本书的审校单位上海珪梵科技有限公司(简称“上海珪梵”)。上海珪梵是一家集数字化转型、数字化软件技术与数字科技风险管理于一体的专业服务机构,专注于数字化、数据化、软件技术与数字安全领域的研究与实践,并提供数字化转型、数字科技建设、数字安全规划与建设、软件研发技术、网络安全技术、数据与数据安全治理、软件项目造价、数据安全审计、信息系统审计、人工智能安全、数字安全与数据安全人才培养与评价等工作。上海珪梵是数据安全人才培养运营中心单位。在本书的译校过程中,上海珪梵投入了多名专家助力本书的译校工作。
在此,一并感谢北京金联融科技有限公司、江西首赞科技有限公司、河北新数科技有限公司、江西立赞科技有限公司在本书译校工作中给予的大力支持。
最后,感谢清华大学出版社和王军等编辑的严格把关,悉心指导,正是有了他们的辛勤努力和付出,才有了本书中文译本的出版发行。