内容简介 · · · · · ·
《ROOTKITS-Windows内核的安全防护》是目前第一本关于rootkit的详尽指南,包括rootkit的概念、它们是怎样工作的、如何构建和检测它们。世界顶级软件安全专家、rootkit.com创始人Greg Hoglund和James Butler向大家详细介绍攻击者是如何进入系统并长期驻留而不会被检测到的,以及黑客是如何摧毁Windows XP和Windows 2000内核系统的,其概念可以应用于现代任何主流操作系统。通过《ROOTKITS-Windows内核的安全防护》,读者可以全面掌握rootkit,提升自己的计算机安全防范能力。
目录 · · · · · ·
目录
第1章 销声匿迹 1
1.1 攻击者的动机 1
1.1.1 潜行的角色 2
1.1.2 不需潜行的情况 3
1.2 rootkit的定义 3
1.3 rootkit存在的原因 4
1.3.1 远程命令和控制 4
1.3.2 软件窃听 5
1.3.3 rootkit的合法使用 5
1.4 rootkit的存在历史 6
1.5 rootkit的工作方式 7
1.5.1 打补丁 7
1.5.2 复活节彩蛋 7
1.5.3 间谍件修改 7
1.5.4 源代码修改 8
1.5.5 软件修改的合法性 8
1.6 rootkit与其他技术的区别 9
1.6.1 rootkit不是软件利用工具 9
1.6.2 rootkit不是病毒 10
1.7 rootkit与软件利用工具 11
1.8 攻击型rootkit技术 14
1.8.1 HIPS 14
1.8.2 NIDS 15
1.8.3 绕过IDS/IPS 15
1.8.4 绕过取证分析工具 16
1.9 小结 17
第2章 破坏内核 19
2.1 重要的内核组件 20
2.2 rootkit的结构设计 20
2.3 在内核中引入代码 23
2.4 构建Windows设备驱动程序 24
2.4.1 设备驱动程序开发工具包 24
2.4.2 构建环境 24
2.4.3 文件 25
2.5 加载和卸载驱动程序 28
2.6 对调试语句进行日志记录 28
2.7 融合rootkit:用户和内核模式的融合 29
2.7.1 I/O请求报文 30
2.7.2 创建文件句柄 33
2.7.3 添加符号链接 35
2.8 加载rootkit 36
2.8.1 草率方式 36
2.8.2 正确方式 38
2.9 从资源中解压缩.sys文件 40
2.10 系统重启后的考验 42
2.11 小结 43
第3章 硬件相关问题 45
3.1 环0级 46
3.2 CPU表和系统表 47
3.3 内存页 48
3.3.1 内存访问检查 49
3.3.2 分页和地址转换 50
3.3.3 页表查询 51
3.3.4 页目录项 52
3.3.5 页表项 53
3.3.6 重要表的只读访问 53
3.3.7 多个进程使用多个页目录 54
3.3.8 进程和线程 54
3.4 内存描述符表 55
3.4.1 全局描述符表 55
3.4.2 本地描述符表 56
3.4.3 代码段 56
3.4.4 调用门 56
3.5 中断描述符表 56
3.6 系统服务调度表 60
3.7 控制寄存器 60
3.7.1 控制寄存器0 60
3.7.2 其他控制寄存器 61
3.7.3 EFlags寄存器 61
3.8 多处理器系统 61
3.9 小结 63
第4章 古老的钩子艺术 65
4.1 用户空间钩子 65
4.1.1 导入地址表钩子 67
4.1.2 内联函数钩子 68
4.1.3 将DLL注入到用户空间进程中 70
4.2 内核钩子 74
4.2.1 钩住系统服务描述符表 75
4.2.2 修改SSDT内存保护机制 76
4.2.3 钩住SSDT 79
4.3 混合式钩子方法 99
4.3.1 进入进程的地址空间 99
4.3.2 钩子的内存空间 103
4.4 小结 105
第5章 运行时补丁 107
5.1 detour补丁 108
5.1.1 用MigBot重定控制流程路径 109
5.1.2 检查函数字节 110
5.1.3 记录被重写的指令 112
5.1.4 使用NonPagedPool内存 114
5.1.5 运行时地址修正 115
5.2 跳转模板 119
5.3 补丁方法的变型 126
5.4 小结 127
第6章 分层驱动程序 129
6.1 键盘嗅探器 130
6.2 剖析KLOG rootkit 134
6.3 文件过滤器驱动程序 146
6.4 小结 161
第7章 直接内核对象操作 163
7.1 DKOM的优缺点 163
7.2 确定操作系统的版本 165
7.2.1 用户模式的自确定 165
7.2.2 内核模式的自确定 167
7.2.3 在注册表中查询操作系统版本 167
7.3 用户空间与设备驱动程序的通信 169
7.4 DKOM隐藏技术 173
7.4.1 隐藏进程 173
7.4.2 隐藏设备驱动程序 179
7.4.3 同步问题 183
7.5 使用DKOM提升令牌权限和组 187
7.5.1 修改进程令牌 187
7.5.2 伪造Windows Event Viewer 201
7.6 小结 203
第8章 操纵硬件 205
8.1 为何使用硬件 206
8.2 修改固件 207
8.3 访问硬件 208
8.3.1 硬件地址 208
8.3.2 访问硬件与访问RAM的区别 209
8.3.3 定时问题 210
8.3.4 I/O总线 210
8.3.5 访问BIOS 212
8.3.6 访问PCI和PCMCIA设备 213
8.4 访问键盘控制器示例 213
8.4.1 8259键盘控制器 213
8.4.2 修改LED指示器 214
8.4.3 强制重启 220
8.4.4 击键监视器 220
8.5 微码更新 227
8.6 小结 228
第9章 隐秘通道 229
9.1 远程命令、控制和数据窃取 230
9.2 伪装TCP/IP协议 231
9.2.1 注意通信量模式 231
9.2.2 不以明文发送数据 232
9.2.3 充分利用时间因素 232
9.2.4 隐藏在DNS请求中 233
9.2.5 对ASCII编码有效负载进行隐写操作 233
9.2.6 使用其他TCP/IP通道 234
9.3 TCP/IP内核中支持rootkit的TDI接口 235
9.3.1 构建地址结构 235
9.3.2 创建本地地址对象 237
9.3.3 根据上下文创建TDI端点 240
9.3.4 将端点与本地地址进行关联 243
9.3.5 连接到远程服务器(发送TCP握手消息) 245
9.3.6 将数据发送到远程服务器 247
9.4 原始网络操作 250
9.4.1 在Windows XP上实现原始套接字 250
9.4.2 绑定到接口 251
9.4.3 使用原始套接字进行嗅探 252
9.4.4 使用原始套接字进行杂乱嗅探 253
9.4.5 使用原始套接字发送报文 254
9.4.6 伪造源信息 254
9.4.7 弹回报文 254
9.5 TCP/IP内核中支持rootkit的NDIS接口 255
9.5.1 注册协议 255
9.5.2 协议驱动程序回调函数 260
9.5.3 移动完整报文 266
9.6 主机仿真 273
9.6.1 创建MAC地址 273
9.6.2 处理ARP协议 273
9.6.3 IP网关 276
9.6.4 发送报文 276
9.7 小结 280
第10章 rootkit检测 281
10.1 检测rootkit的存在 281
10.1.1 守护门口 282
10.1.2 扫描“空间” 284
10.1.3 查找钩子 284
10.2 检测rootkit的行为 293
10.2.1 检测隐藏的文件和注册表键 294
10.2.2 检测隐藏的进程 294
10.3 小结 297
· · · · · · (收起)
第1章 销声匿迹 1
1.1 攻击者的动机 1
1.1.1 潜行的角色 2
1.1.2 不需潜行的情况 3
1.2 rootkit的定义 3
1.3 rootkit存在的原因 4
1.3.1 远程命令和控制 4
1.3.2 软件窃听 5
1.3.3 rootkit的合法使用 5
1.4 rootkit的存在历史 6
1.5 rootkit的工作方式 7
1.5.1 打补丁 7
1.5.2 复活节彩蛋 7
1.5.3 间谍件修改 7
1.5.4 源代码修改 8
1.5.5 软件修改的合法性 8
1.6 rootkit与其他技术的区别 9
1.6.1 rootkit不是软件利用工具 9
1.6.2 rootkit不是病毒 10
1.7 rootkit与软件利用工具 11
1.8 攻击型rootkit技术 14
1.8.1 HIPS 14
1.8.2 NIDS 15
1.8.3 绕过IDS/IPS 15
1.8.4 绕过取证分析工具 16
1.9 小结 17
第2章 破坏内核 19
2.1 重要的内核组件 20
2.2 rootkit的结构设计 20
2.3 在内核中引入代码 23
2.4 构建Windows设备驱动程序 24
2.4.1 设备驱动程序开发工具包 24
2.4.2 构建环境 24
2.4.3 文件 25
2.5 加载和卸载驱动程序 28
2.6 对调试语句进行日志记录 28
2.7 融合rootkit:用户和内核模式的融合 29
2.7.1 I/O请求报文 30
2.7.2 创建文件句柄 33
2.7.3 添加符号链接 35
2.8 加载rootkit 36
2.8.1 草率方式 36
2.8.2 正确方式 38
2.9 从资源中解压缩.sys文件 40
2.10 系统重启后的考验 42
2.11 小结 43
第3章 硬件相关问题 45
3.1 环0级 46
3.2 CPU表和系统表 47
3.3 内存页 48
3.3.1 内存访问检查 49
3.3.2 分页和地址转换 50
3.3.3 页表查询 51
3.3.4 页目录项 52
3.3.5 页表项 53
3.3.6 重要表的只读访问 53
3.3.7 多个进程使用多个页目录 54
3.3.8 进程和线程 54
3.4 内存描述符表 55
3.4.1 全局描述符表 55
3.4.2 本地描述符表 56
3.4.3 代码段 56
3.4.4 调用门 56
3.5 中断描述符表 56
3.6 系统服务调度表 60
3.7 控制寄存器 60
3.7.1 控制寄存器0 60
3.7.2 其他控制寄存器 61
3.7.3 EFlags寄存器 61
3.8 多处理器系统 61
3.9 小结 63
第4章 古老的钩子艺术 65
4.1 用户空间钩子 65
4.1.1 导入地址表钩子 67
4.1.2 内联函数钩子 68
4.1.3 将DLL注入到用户空间进程中 70
4.2 内核钩子 74
4.2.1 钩住系统服务描述符表 75
4.2.2 修改SSDT内存保护机制 76
4.2.3 钩住SSDT 79
4.3 混合式钩子方法 99
4.3.1 进入进程的地址空间 99
4.3.2 钩子的内存空间 103
4.4 小结 105
第5章 运行时补丁 107
5.1 detour补丁 108
5.1.1 用MigBot重定控制流程路径 109
5.1.2 检查函数字节 110
5.1.3 记录被重写的指令 112
5.1.4 使用NonPagedPool内存 114
5.1.5 运行时地址修正 115
5.2 跳转模板 119
5.3 补丁方法的变型 126
5.4 小结 127
第6章 分层驱动程序 129
6.1 键盘嗅探器 130
6.2 剖析KLOG rootkit 134
6.3 文件过滤器驱动程序 146
6.4 小结 161
第7章 直接内核对象操作 163
7.1 DKOM的优缺点 163
7.2 确定操作系统的版本 165
7.2.1 用户模式的自确定 165
7.2.2 内核模式的自确定 167
7.2.3 在注册表中查询操作系统版本 167
7.3 用户空间与设备驱动程序的通信 169
7.4 DKOM隐藏技术 173
7.4.1 隐藏进程 173
7.4.2 隐藏设备驱动程序 179
7.4.3 同步问题 183
7.5 使用DKOM提升令牌权限和组 187
7.5.1 修改进程令牌 187
7.5.2 伪造Windows Event Viewer 201
7.6 小结 203
第8章 操纵硬件 205
8.1 为何使用硬件 206
8.2 修改固件 207
8.3 访问硬件 208
8.3.1 硬件地址 208
8.3.2 访问硬件与访问RAM的区别 209
8.3.3 定时问题 210
8.3.4 I/O总线 210
8.3.5 访问BIOS 212
8.3.6 访问PCI和PCMCIA设备 213
8.4 访问键盘控制器示例 213
8.4.1 8259键盘控制器 213
8.4.2 修改LED指示器 214
8.4.3 强制重启 220
8.4.4 击键监视器 220
8.5 微码更新 227
8.6 小结 228
第9章 隐秘通道 229
9.1 远程命令、控制和数据窃取 230
9.2 伪装TCP/IP协议 231
9.2.1 注意通信量模式 231
9.2.2 不以明文发送数据 232
9.2.3 充分利用时间因素 232
9.2.4 隐藏在DNS请求中 233
9.2.5 对ASCII编码有效负载进行隐写操作 233
9.2.6 使用其他TCP/IP通道 234
9.3 TCP/IP内核中支持rootkit的TDI接口 235
9.3.1 构建地址结构 235
9.3.2 创建本地地址对象 237
9.3.3 根据上下文创建TDI端点 240
9.3.4 将端点与本地地址进行关联 243
9.3.5 连接到远程服务器(发送TCP握手消息) 245
9.3.6 将数据发送到远程服务器 247
9.4 原始网络操作 250
9.4.1 在Windows XP上实现原始套接字 250
9.4.2 绑定到接口 251
9.4.3 使用原始套接字进行嗅探 252
9.4.4 使用原始套接字进行杂乱嗅探 253
9.4.5 使用原始套接字发送报文 254
9.4.6 伪造源信息 254
9.4.7 弹回报文 254
9.5 TCP/IP内核中支持rootkit的NDIS接口 255
9.5.1 注册协议 255
9.5.2 协议驱动程序回调函数 260
9.5.3 移动完整报文 266
9.6 主机仿真 273
9.6.1 创建MAC地址 273
9.6.2 处理ARP协议 273
9.6.3 IP网关 276
9.6.4 发送报文 276
9.7 小结 280
第10章 rootkit检测 281
10.1 检测rootkit的存在 281
10.1.1 守护门口 282
10.1.2 扫描“空间” 284
10.1.3 查找钩子 284
10.2 检测rootkit的行为 293
10.2.1 检测隐藏的文件和注册表键 294
10.2.2 检测隐藏的进程 294
10.3 小结 297
· · · · · · (收起)
喜欢读"ROOTKITS"的人也喜欢的电子书 · · · · · ·
支持 Web、iPhone、iPad、Android 阅读器
喜欢读"ROOTKITS"的人也喜欢 · · · · · ·
- 深入解析Windows操作系统 9.1
- 0day安全:软件漏洞分析技术 8.0
- 加密与解密 8.4
- Windows核心编程(第5版) 9.2
- Reversing 8.5
- 黑客反汇编揭秘 7.8
- 自己动手写操作系统 8.1
- 应用密码学 9.0
- 算法:C语言实现 8.6
ROOTKITS的书评 · · · · · · ( 全部 6 条 )
虽然说是windows内核防护,意义远不止此
书是好书,选题很好,但是,翻译就真的有问题,只能说差强人意,以这个篇幅来介绍rookits,而且基本上都说清楚了,有人可能觉得rookits这么高深的课题讲得还远远不够,须知道,这种课题只能点到为止,对于某些专业人士来说,缺的只是那么一点儿提示,不是技术细节,这个领域重要的是想像力,...
(展开)
刚拿到书,发现纸张真差
在卓越上买的,订单后看了一下英文版的,发现没必要买纸质书了,但是货已经发出来了…… 英文版的用的都是很简单的单词,很容易看懂,觉得买中文版有点亏了…… 清华大学出版社,能不能把纸张弄好一点啊!
(展开)
> 更多书评 6篇
论坛 · · · · · ·
对这本书感兴趣的人这么少么? | 来自CrackMe | 2 回应 | 2010-11-02 10:48:39 |
书不错,但被翻译给糟蹋了,建议看原版 | 来自江南白衣 | 2010-08-27 12:03:43 |
这本书的其他版本 · · · · · · ( 全部2 )
-
Addison-Wesley Professional (2005)8.8分 16人读过
在哪儿借这本书 · · · · · ·
以下书单推荐 · · · · · · ( 全部 )
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于ROOTKITS的评论:
feed: rss 2.0
2 有用 第五象限 2014-06-04 22:20:41
这书看之前要熟读windows 核心编程
0 有用 appleleaf 2015-08-11 15:39:14
内容细致,都是Windows相关的。
0 有用 bzsyun 2009-05-25 15:44:41
买了! 1、电子书:英文版 2、图书馆:本部
0 有用 王晓辰 2011-03-14 16:39:45
rootkit quick start
0 有用 usless 2019-06-18 15:02:32
读非其时
0 有用 squirrel-prog 2020-05-07 14:58:17
当时没有买到英文版,到打印店打印装订了四本。现在觉得欠作者一本书的钱。
0 有用 usless 2019-06-18 15:02:32
读非其时
0 有用 appleleaf 2015-08-11 15:39:14
内容细致,都是Windows相关的。
2 有用 第五象限 2014-06-04 22:20:41
这书看之前要熟读windows 核心编程
0 有用 展莲 2012-06-04 08:58:14
对于RootKit非常不错的一本书,值得推荐