Rootkit 系统灰色地带的潜伏者 原书第2版PDF电子书下载
- 电子书积分:17 积分如何计算积分?
- 作 者:(美)布伦登著;姚领田,刘安,李潇等译
- 出 版 社:北京:机械工业出版社
- 出版年份:2013
- ISBN:9787111441786
- 页数:570 页
第一部分 基础知识 1
第1章 清空思想 1
1.1 不速之客 1
1.2 提炼一个更确切的定义 2
1.2.1 攻击循环 3
1.2.2 rootkit在攻击循环中的角色 4
1.2.3 单级释放器与多级释放器 4
1.2.4 其他部署方法 5
1.2.5 确切的学术性定义 6
1.2.6 不要混淆设计目标与实现 7
1.2.7 rootkit技术——力量倍增器 7
1.2.8 金·费尔比式比喻:破坏与毁坏 8
1.2.9 为何使用隐身技术?rootkit不能被发现吗 8
1.3 rootkit不等于恶意软件 9
1.3.1 感染源 9
1.3.2 广告软件和间谍软件 10
1.3.3 僵尸网络的兴起 10
1.3.4 引入:愚人飞客病毒 11
1.3.5 恶意软件与rootkit 11
1.4 谁在开发和使用rootkit 12
1.4.1 市场营销 12
1.4.2 数字版权管理 12
1.4.3 不是rootkit,而是种功能 13
1.4.4 法律实施 13
1.4.5 商业间谍 14
1.4.6 政治间谍 14
1.4.7 网络犯罪 15
1.4.8 谁开发了颇具艺术感的rootkit 16
1.4.9 rootkit的道德性 17
1.5 慑魄惊魂:战场伤员分类 17
1.6 总结 21
第2章 反取证综述 22
2.1 事件响应 23
2.1.1 入侵检测系统(和入侵防御系统) 23
2.1.2 异常行为 23
2.1.3 发生故障 24
2.2 计算机取证 24
2.2.1 rootkit不是隐身的吗?为什么还要进行反取证 24
2.2.2 假定最糟糕案例的场景 25
2.2.3 取证技术分类:第一种方法 26
2.2.4 取证技术分类:第二种方法 26
2.2.5 在线取证 27
2.2.6 当关机不再是种选择 28
2.2.7 关于拔掉电源插头的争论 28
2.2.8 崩溃转储或者不进行崩溃转储 28
2.2.9 事后检查分析 28
2.2.1 0非本地数据 29
2.3 AF策略 29
2.3.1 数据销毁 30
2.3.2 数据隐藏 30
2.3.3 数据转换 31
2.3.4 数据伪造 31
2.3.5 数据源消除 31
2.4 AF技术的总体建议 31
2.4.1 使用定制工具 31
2.4.2 低且慢与焦土策略 32
2.4.3 避免特定实例攻击 32
2.4.4 使用分层防御 33
2.5 不明身份者具有优势 33
2.5.1 攻击者能够专注于攻击 33
2.5.2 防御者面临制度性挑战 33
2.5.3 安全是一种过程(而且还是一种令人讨厌的过程) 34
2.5.4 持续增加的复杂度 34
2.6 总结 35
第3章 硬件概述 36
3.1 物理内存 36
3.2 IA-32内存模型 38
3.2.1 平面内存模型 38
3.2.2 分段内存模型 38
3.2.3 操作模式 39
3.3 实模式 39
3.3.1 案例研究:MS-DOS 40
3.3.2 这不是浪费时间吗?为什么学习实模式 42
3.3.3 实模式执行环境 42
3.3.4 实模式中断 44
3.3.5 分段和程序控制 46
3.3.6 案例研究:转储IVT 47
3.3.7 案例研究:用TSR记录击键 48
3.3.8 案例研究:隐藏TSR 52
3.3.9 案例研究:为TREE.COM命令打补丁 56
3.3.1 0小结 58
3.4 保护模式 59
3.4.1 保护模式执行环境 59
3.4.2 保护模式分段 61
3.4.3 保护模式分页 64
3.4.4 地址扩展分页 66
3.4.5 进一步研究页表 67
3.4.6 进一步研究控制寄存器 68
3.5 实现内存保护 70
3.5.1 通过分段实现保护 70
3.5.2 界限检查 70
3.5.3 类型检查 70
3.5.4 特权检查 71
3.5.5 受限指令检查 72
3.5.6 门描述符 72
3.5.7 保护模式中断表 75
3.5.8 分页保护 76
3.5.9 总结 77
第4章 系统概述 79
4.1 Windows系统下的物理内存 80
4.1.1 失落的大陆(内存) 80
4.1.2 Windows如何使用物理地址扩展 81
4.1.3 页、页帧、页帧号 82
4.2 Windows下的分段和分页 82
4.2.1 分段 83
4.2.2 分页 84
4.2.3 线性地址到物理地址的转换 87
4.2.4 一个更快的方法 88
4.2.5 关于EPROCESS和KPROCESS的讨论 88
4.3 用户空间和内核空间 89
4.3.1 4GB调优(4GT) 90
4.3.2 各得其所 91
4.3.3 跨越篱笆 91
4.3.4 用户空间剖析 92
4.3.5 内核空间动态分配 93
4.3.6 地址窗口化扩展 94
4.3.7 PAE、4GT和AWE的对比 94
4.4 用户模式和内核模式 94
4.4.1 执行方式与执行位置 95
4.4.2 内核模式组件 95
4.4.3 用户模式组件 98
4.5 其他内存保护特征 99
4.5.1 数据执行保护 100
4.5.2 地址空间布局随机化 103
4.5.3 /GS编译选项 105
4.5.4 /SAFESEH链接器选项 107
4.6 本机API 108
4.6.1 中断向量表的发展 108
4.6.2 进一步研究中断描述表 109
4.6.3 通过中断进行系统调用 110
4.6.4 SYSENTER指令 110
4.6.5 系统服务调度表 111
4.6.6 枚举本机API 114
4.6.7 Nt*()系统调用与Zw*()系统调用 114
4.6.8 系统调用的生命周期 115
4.6.9 其他内核模式例程 117
4.6.1 0内核模式API文档 119
4.7 引导过程 121
4.7.1 BIOS固件启动 121
4.7.2 EFI固件启动 122
4.7.3 Windows启动管理器 122
4.7.4 Windows启动加载器 124
4.7.5 初始化执行体 125
4.7.6 会话管理器 126
4.7.7 wininit.exe 128
4.7.8 winlogon.exe 128
4.7.9 启动过程概括 129
4.8 设计决策 130
4.8.1 藏在人群中:类型0 131
4.8.2 主动隐藏:类型1和类型2 131
4.8.3 跳出边界:类型3 132
4.8.4 前景展望 133
第5章 行业工具 134
5.1 开发工具 134
5.1.1 诊断工具 135
5.1.2 磁盘映像工具 135
5.1.3 更快速救灾:虚拟机 136
5.1.4 工具综述 137
5.2 调试器 138
5.2.1 配置CDB.exe 139
5.2.2 符号文件 140
5.2.3 Windows符号 140
5.2.4 激活CDB.exe 141
5.2.5 控制 CDB.exe 142
5.2.6 有用的调试器命令 143
5.2.7 检查符号命令(x) 143
5.2.8 列举已加载的模块(1m和!lmi) 144
5.2.9 显示类型命令(dt) 146
5.2.10 反汇编命令(u) 146
5.2.11 显示命令(d*) 147
5.2.12 寄存器命令(r) 148
5.3 KD.exe内核调试器 148
5.3.1 使用内核调试器的不同方法 148
5.3.2 物理宿主机-目标机配置 150
5.3.3 准备硬件 150
5.3.4 准备软件 152
5.3.5 启动内核调试会话 153
5.3.6 控制目标机 154
5.3.7 虚拟宿主机—目标机配置 155
5.3.8 有用的内核模式调试器命令 156
5.3.9 列举已加载模块命令 156
5.3.10 !process扩展命令 156
5.3.11 寄存器命令(r) 158
5.3.12 使用崩溃转储 159
5.3.13 方法1:PS/2键盘技巧 159
5.3.14 方法2:KD.exe命令 160
5.3.15 方法3:NotMyFault.exe 161
5.3.16 崩溃转储分析 161
第6章 内核空间中的玄机 162
6.1 KMD模板 162
6.1.1 内核模式驱动程序:全局概览 163
6.1.2 WDK框架 164
6.1.3 真正最小的KMD 164
6.1.4 处理IRP 167
6.1.5 与用户模式代码通信 171
6.1.6 从用户模式发送命令 174
6.2 加载内核模式驱动程序 177
6.3 服务控制管理器 177
6.3.1 在命令行使用sc.exe 177
6.3.2 编程使用SCM 179
6.3.3 注册表踪迹 181
6.4 使用导出驱动程序 181
6.5 综合利用内核中的漏洞 184
6.6 Windows内核模式安全 185
6.6.1 内核模式代码签名 185
6.6.2 KMCS的应对措施 187
6.6.3 内核补丁保护 189
6.6.4 KPP的应对措施 189
6.7 同步 190
6.7.1 中断请求级 190
6.7.2 延迟过程调用 193
6.7.3 实现 193
6.8 总结 198
第二部分 事后分析 199
第7章 阻止磁盘分析 199
7.1 事后调查:概述 199
7.2 取证副本 200
7.3 卷分析 202
7.3.1 Windows下的存储卷 203
7.3.2 手工分析卷 204
7.3.3 应对措施:破坏分区表 205
7.3.4 Windows下的原始磁盘访问 205
7.3.5 原始磁盘访问:突破常规 206
7.4 文件系统分析 208
7.4.1 恢复删除的文件 209
7.4.2 恢复删除的文件:应对措施 209
7.4.3 枚举可选数据流 210
7.4.4 枚举可选数据流:应对措施 212
7.4.5 恢复文件系统对象 212
7.4.6 恢复文件系统对象:应对措施 212
7.4.7 带外隐藏 213
7.4.8 带内隐藏 217
7.4.9 引入:FragFS 225
7.4.10 应用层隐藏 226
7.4.11 获取元数据 226
7.4.12 获取元数据:应对措施 229
7.4.13 改变时间戳 230
7.4.14 改变校验和 232
7.4.15 识别已知文件 232
7.4.16 交叉时间差异与交叉视图差异 233
7.4.17 识别已知文件:应对措施 234
7.5 文件签名分析 235
7.6 总结 236
第8章 阻止可执行文件分析 237
8.1 静态分析 237
8.1.1 扫描相关人工痕迹 237
8.1.2 验证数字签名 238
8.1.3 转储字符串数据 239
8.1.4 检查文件头 239
8.1.5 反汇编和反编译 240
8.2 破坏静态分析 242
8.2.1 数据转换:加壳 242
8.2.2 加壳:加密程序 243
8.2.3 密钥管理 249
8.2.4 加壳:压缩程序 249
8.2.5 加壳:变形代码 251
8.2.6 定制工具的需求 253
8.2.7 关于加壳的争论 254
8.2.8 数据伪造 254
8.2.9 虚旗攻击 256
8.2.1 0数据源清除:多级加载器 256
8.2.1 1深度防御 257
8.3 运行时分析 258
8.3.1 运行环境 258
8.3.2 手工与自动运行时分析 260
8.3.3 手工分析:基本概要 260
8.3.4 手工分析:跟踪 261
8.3.5 手工分析:内存转储 263
8.3.6 手工分析:捕捉网络活动 264
8.3.7 自动化分析 265
8.3.8 运行时复合分析 266
8.4 破坏运行时分析 267
8.4.1 跟踪的应对措施 267
8.4.2 API跟踪:规避迂回补丁 268
8.4.3 API跟踪:多级加载器 272
8.4.4 指令级跟踪:攻击调试器 273
8.4.5 断点 273
8.4.6 检测用户模式调试器 273
8.4.7 检测内核模式调试器 276
8.4.8 检测用户模式调试器或者内核模式调试器 276
8.4.9 通过代码校验和检测调试器 277
8.4.10 关于反调试器技术的争论 278
8.4.11 指令级跟踪:混淆 278
8.4.12 混淆应用数据 278
8.4.13 混淆应用代码 279
8.4.14 阻止自动化 282
8.4.15 应对运行时复合分析 282
8.5 总结 283
第三部分 在线取证 285
第9章 阻止在线取证 285
9.1 在线取证:基本过程 290
9.2 用户模式加载器 294
9.2.1 UML破坏现有的API 294
9.2.2 关于加载器API模块的争论 295
9.2.3 纵览Windows PE文件格式 296
9.2.4 相对虚拟地址 296
9.2.5 PE文件头 297
9.2.6 导入数据节(.idata) 300
9.2.7 基址重定位节(.reloc) 302
9.2.8 实现独立的UML 303
9.3 最小化加载器踪迹 307
9.3.1 数据节育:献给The Grugq的颂歌 307
9.3.2 下一步:通过漏洞利用程序加载 308
9.4 关于独立PE加载器的争论 308
第10章 用C语言创建shellcode 309
10.1 用户模式shellcode 311
10.1.1 Visual Studio工程设置 312
10.1.2 使用相对地址 313
10.1.3 寻找kernel32.dll:通往TEB和PEB的旅程 316
10.1.4 扩展地址表 321
10.1.5 解析kernel32.dll导出表 322
10.1.6 提取shellcode 325
10.1.7 危险空间 327
10.1.8 构建自动化 329
10.2 内核模式shellcode 329
10.2.1 工程设置:$(NTMAKEENV)makefile.new 330
10.2.2 工程设置:SOURCES 331
10.2.3 地址解析 332
10.2.4 加载内核模式shellcode 334
10.3 特殊武器和策略 337
10.4 展望 338
第11章 更改调用表 340
11.1 在用户空间挂钩:IAT 342
11.1.1 DLL基础 342
11.1.2 访问导出例程 344
11.1.3 注入DLL 345
11.1.4 走查磁盘上PE文件的IAT 349
11.1.5 挂钩IAT 354
11.2 内核空间的调用表 357
11.3 挂钩IDT 358
11.3.1 处理多处理器:方案#1 359
11.3.2 裸例程 363
11.3.3 关于挂钩IDT的问题 365
11.4 挂钩处理器MSR 366
11.5 挂钩SSDT 372
11.5.1 禁用WP位:技巧#1 373
11.5.2 禁用WP位:技巧#2 374
11.5.3 挂钩SSDT项 376
11.5.4 SSDT示例:跟踪系统调用 377
11.5.5 SSDT示例:隐藏进程 380
11.5.6 SSDT示例:隐藏网络连接 385
11.6 挂钩IRP处理程序 385
11.7 挂钩GDT:安装调用门 387
11.8 挂钩的应对措施 395
11.8.1 检查内核模式挂钩 396
11.8 .2检查IA32 SYSENTER EIP 398
11.8.3 检查INT 0×2E 399
11.8.4 检查SSDT 401
11.8.5 检查IRP处理程序 402
11.8.6 检查用户模式钩子 404
11.8.7 解析PEB:第1部分 406
11.8.8 解析PEB:第2部分 408
11.9 反应对措施 408
11.9.1 假设最坏的案例 409
11.9.2 最坏案例应对措施#1 409
11.9.3 最坏案例应对措施#2 409
第12章 更改代码 410
12.1 跟踪调用 415
12.1.1 迂回实现 418
12.1.2 获取NtSetValueKey()的地址 421
12.1.3 初始化补丁元数据结构 421
12.1.4 对照已知签名核实原始机器码 423
12.1.5 保存原始序言和尾声代码 423
12.1.6 更新补丁元数据结构 423
12.1.7 锁定访问并禁用写保护 424
12.1.8 注入迂回 424
12.1.9 序言迂回 425
12.1.10 尾声迂回 426
12.1.11 事后总结 430
12.2 破坏组策略 430
12.2.1 迂回实现 432
12.2.2 初始化补丁元数据结构 432
12.2.3 尾声迂回 433
12.2.4 将注册表值映射到组策略 436
12.3 绕过内核模式API记录器 437
12.3.1 故障安全规避 438
12.3.2 更上一层楼 441
12.4 指令补丁应对措施 441
第13章 更改内核对象 442
13.1 隐形的代价 442
13.1.1 问题#1:陡峭的学习曲线 442
13.1.2 问题#2:并发性 443
13.1.3 问题#3:可移植性和指针运算 443
13.1.4 特有技术:DKOM 445
13.1.5 对象 445
13.2 再访EPROCESS对象 446
13.2.1 获取EPROCESS指针 446
13.2.2 EPROCESS相关域 448
13.2.3 UniqueProcessId 448
13.2.4 ActiveProcessLinks 448
13.2.5 Token 449
13.2.6 ImageFileName 450
13.3 DRIVER SECTION对象 450
13.4 令牌对象 452
13.4.1 Windows授权 452
13.4.2 定位令牌对象 455
13.4.3 令牌对象中的相关域 457
13.5 隐藏进程 460
13.6 隐藏驱动程序 464
13.7 操纵访问令牌 467
13.8 使用No-FU 470
13.9 内核模式回调 472
13.10 应对措施 475
13.10.1 交叉视图检测 475
13.10.2 高级枚举:CreateToolhelp32Snapshot() 475
13.10.3 高级枚举:PID暴力 477
13.10.4 低级枚举:进程 480
13.10.5 低级枚举:线程 481
13.10.6 相关软件 487
13.10.7 域校验和 488
13.11 反应对措施 488
13.11.1 最好的防护:饿死对手 489
13.11.2 评论:超越双环模型 489
13.11.3 最后一道防线 490
第14章 隐秘通道 491
14.1 普通恶意软件通道 491
14.1.1 互联网中继聊天 491
14.1.2 对等通信 492
14.1.3 HTTP 492
14.2 最坏案例场景:截获所有数据内容 495
14.2.1 协议隧道 495
14.2.2 DNS 496
14.2.3 ICMP 496
14.2.4 外围设备问题 498
14.3 Windows TCP/IP栈 499
14.3.1 Windows Sockets 2 499
14.3.2 原始套接字 500
14.3.3 Winsock内核API 501
14.3.4 NDIS 502
14.3.5 不同任务使用不同的工具 503
14.4 DNS隧道 504
14.4.1 DNS查询 504
14.4.2 DNS应答 506
14.5 DNS隧道:用户模式 507
14.6 DNS隧道:WSK实现 511
14.6.1 初始化应用程序的上下文 517
14.6.2 创建内核模式套接字 517
14.6.3 确定本地传输地址 519
14.6.4 绑定套接字与传输地址 520
14.6.5 设置远程地址(C2客户端) 521
14.6.6 发送DNS查询 522
14.6.7 接收DNS应答 523
14.7 NDIS协议驱动程序 525
14.7.1 创建并运行NDISProt6.0示例 526
14.7.2 客户端代码概要 528
14.7.3 驱动程序代码概要 531
14.7.4 Protocol*()例程 533
14.7.5 缺失的特征 537
14.8 被动的隐秘通道 538
第15章 转到带外 540
15.1 附加处理器模式 541
15.1.1 系统管理模式 542
15.1.2 流氓管理程序 546
15.1.3 白帽成员对策 548
15.1.4 流氓管理程序与SMM rootkit 549
15.2 固件 550
15.2.1 主板BIOS 550
15.2.2 ACPI组件 551
15.2.3 扩展ROM 552
15.2.4 UEFI固件 553
15.3 远程管理设施 554
15.4 不太明显的备用方案 554
15.4.1 板载闪存 555
15.4.2 电路级伎俩 555
15.5 总结 556
第四部分 结束语 559
第16章 rootkit之道 559
16.1 核心策略 563
16.1.1 尊重你的对手 563
16.1.2 五指穿心掌 563
16.1.3 忍耐强行夺取的欲望 564
16.1.4 研究你的目标 564
16.2 识别隐藏之门 564
16.2.1 对付专有系统 565
16.2.2 监视内核 565
16.2.3 重要特点:硬件是新软件 566
16.2.4 充分利用现有研究 566
16.3 建筑领域的训诫 566
16.3.1 首先加载,深度加载 566
16.3.2 为自主性而奋斗 567
16.3.3 Butler Lampson:策略与机制分离 567
16.4 设计rootkit 567
16.4.1 隐身与开发努力 568
16.4.2 使用定制工具 568
16.4.3 稳定性很重要:致力于最佳实践 568
16.4.4 逐步提高 569
16.4.5 容错移转:自我修复的rootkit 570
16.5 处理感染 570
- 《管理信息系统习题集》郭晓军 2016
- 《信息系统安全技术管理策略 信息安全经济学视角》赵柳榕著 2020
- 《系统解剖学速记》阿虎医考研究组编 2019
- 《慢性呼吸系统疾病物理治疗工作手册》(荷)瑞克·考斯林克(RikGosselink) 2020
- 《社会文化系统中的翻译》姜秋霞,杨正军 2019
- 《中国生态系统定位观测与研究数据集 森林生态系统卷 云南西双版纳》邓晓保·唐建维 2010
- 《大气氮沉降及其对生态系统的影响》方琨,王道波 2019
- 《学校教育指标系统的构建》杨向东著 2019
- 《系统故障 诗歌与影像》(中国)梁小曼 2019
- 《Access数据库系统设计与应用教程》李勇帆,廖瑞华主编 2019
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019