注重体验与质量的电子书资源下载网站
分类于: 云计算&大数据 其它
简介
内核漏洞的利用与防范 豆 0.0分
资源最后更新于 2020-10-22 19:33:29
作者:Enrico Perla
译者:吴世忠
出版社:机械工业出版社华章公司
出版日期:2012-01
ISBN:9787111374299
文件格式: pdf
标签: 安全 kernel 内核 计算机 内核驱动 操作系统 反汇编 信息安全
简介· · · · · ·
本书系统地讲解内核级别漏洞利用所需的理论技术和方法,并将其应用于主流操作系统——UNIX家族、Mac OS X和 Windows。本书分4个部分:第一部分介绍漏洞利用的目标、内核以及理论基础;第二部分深入介绍了目前主流操作系统的细节,并针对不同错误类别分别编写了漏洞利用程序。第三部分将关注点从本地场景转移到远程利用的情景;第四部分介绍未来内核的攻防模式。本书不仅从软件安全研究人员的角度谈论如何发现软件漏洞,也从软件开发者的角度给出了防止软件出现漏洞的方法,以帮助软件编程人员开发出安全的软件系统。
本书内容详实,实例丰富,可操作性强,涉及主流操作系统内核漏洞利用的各个方面,适合软件开发人员、测试人员、安全工程师等阅读。
目录
译者序
序言
前言
致谢
作者简介
第一部分 内核态
第1章 从用户态利用到内核态利用2
引言2
内核和内核漏洞利用的世界2
漏洞利用的艺术4
为什么用户态漏洞利用不再有效7
内核态漏洞利用和用户态漏洞利用8
一个漏洞利用者的内核观10
用户态进程和调度10
虚拟内存11
开源操作系统和闭源操作系统14
小结14
相关阅读15
尾注15
第2章 内核漏洞分类16
引言16
未初始化的/未验证的/已损坏的指针解引用17
内存破坏漏洞20
内核栈漏洞20
内核堆漏洞21
整数误用22
算术/整数溢出23
符号转换错误24
竞态条件26
逻辑bug31
引用计数器溢出31
物理设备输入验证32
内核生成的用户态漏洞33
小结35
尾注36
第3章 成功内核利用进阶37
引言37
架构级概览38
基本概念38
x86和x86-6443
执行阶段46
放置shellcode46
伪造shellcode52
触发阶段55
内存破坏55
竞态条件66
信息收集阶段69
环境告诉我们什么70
环境不想告诉我们的:信息泄露74
小结75
相关阅读76
第二部分 UNIX家族、Mac OS X和Windows
第4章 UNIX家族78
引言78
UNIX家族成员79
Linux79
Solaris/OpenSolaris87
BSD衍生操作系统97
执行步骤97
滥用Linux的权限模型98
实战UNIX108
内核堆利用108
利用OpenSolaris的slab分配器109
利用Linux 2.6 SLAB^H^HUB 分配器127
Linux的栈溢出利用142
重拾 CVE-2009-3234148
小结156
尾注157
第5章 Mac OS X158
引言158
XNU概述159
Mach160
BSD160
IOKit160
系统调用表161
内核调试162
内核扩展 (kext)169
IOKit174
内核扩展审计174
执行步骤185
利用注释186
随意的内存重写186
基于栈的缓冲区溢出195
内存分配符利用208
竞态条件219
Snow Leopard利用219
小结219
尾注220
第6章 Windows221
引言221
Windows内核概述223
内核信息收集 223
DVWD介绍227
内核内部组织攻略228
内核调试232
执行阶段234
Windows验证模型234
编写shellcode242
Windows 漏洞利用实践253
重写任意内存253
栈缓冲区溢出261
小结278
尾注278
第三部分 远程内核漏洞利用
第7章 远程内核漏洞利用面临的挑战280
引言280
利用远程漏洞281
缺少公开信息281
缺少对远程目标的控制283
执行第一条指令284
直接执行流程重定向284
内核内存的任意写294
远程payload296
payload迁移297
KEP上下文297
多级shellcode306
小结311
尾注312
第8章 一个Linux案例313
引言313
SCTP的转发块堆内存损坏313
SCTP简要概述314
漏洞路径316
远程漏洞利用:总体分析319
获得任意内存重写原语320
远程调整堆布局320
创建SCTP消息:从相对到绝对内存的重写323
安装shellcode327
从中断上下文直接跳到用户态327
执行shellcode333
检查当前进程,模拟gettimeofday()函数333
执行反向连接334
恢复Vsyscall336
小结337
相关阅读337
尾注337
第四部分 展望
第9章 内核演变:未来内核攻防模式340
引言340
内核攻击341
保密性341
完整性342
可用性344
内核防御344
内核威胁的分析与建模345
内核防御机制346
内核保证机制347
超越内核bug:虚拟化350
虚拟层安全350
客户机内核安全351
小结351
序言
前言
致谢
作者简介
第一部分 内核态
第1章 从用户态利用到内核态利用2
引言2
内核和内核漏洞利用的世界2
漏洞利用的艺术4
为什么用户态漏洞利用不再有效7
内核态漏洞利用和用户态漏洞利用8
一个漏洞利用者的内核观10
用户态进程和调度10
虚拟内存11
开源操作系统和闭源操作系统14
小结14
相关阅读15
尾注15
第2章 内核漏洞分类16
引言16
未初始化的/未验证的/已损坏的指针解引用17
内存破坏漏洞20
内核栈漏洞20
内核堆漏洞21
整数误用22
算术/整数溢出23
符号转换错误24
竞态条件26
逻辑bug31
引用计数器溢出31
物理设备输入验证32
内核生成的用户态漏洞33
小结35
尾注36
第3章 成功内核利用进阶37
引言37
架构级概览38
基本概念38
x86和x86-6443
执行阶段46
放置shellcode46
伪造shellcode52
触发阶段55
内存破坏55
竞态条件66
信息收集阶段69
环境告诉我们什么70
环境不想告诉我们的:信息泄露74
小结75
相关阅读76
第二部分 UNIX家族、Mac OS X和Windows
第4章 UNIX家族78
引言78
UNIX家族成员79
Linux79
Solaris/OpenSolaris87
BSD衍生操作系统97
执行步骤97
滥用Linux的权限模型98
实战UNIX108
内核堆利用108
利用OpenSolaris的slab分配器109
利用Linux 2.6 SLAB^H^HUB 分配器127
Linux的栈溢出利用142
重拾 CVE-2009-3234148
小结156
尾注157
第5章 Mac OS X158
引言158
XNU概述159
Mach160
BSD160
IOKit160
系统调用表161
内核调试162
内核扩展 (kext)169
IOKit174
内核扩展审计174
执行步骤185
利用注释186
随意的内存重写186
基于栈的缓冲区溢出195
内存分配符利用208
竞态条件219
Snow Leopard利用219
小结219
尾注220
第6章 Windows221
引言221
Windows内核概述223
内核信息收集 223
DVWD介绍227
内核内部组织攻略228
内核调试232
执行阶段234
Windows验证模型234
编写shellcode242
Windows 漏洞利用实践253
重写任意内存253
栈缓冲区溢出261
小结278
尾注278
第三部分 远程内核漏洞利用
第7章 远程内核漏洞利用面临的挑战280
引言280
利用远程漏洞281
缺少公开信息281
缺少对远程目标的控制283
执行第一条指令284
直接执行流程重定向284
内核内存的任意写294
远程payload296
payload迁移297
KEP上下文297
多级shellcode306
小结311
尾注312
第8章 一个Linux案例313
引言313
SCTP的转发块堆内存损坏313
SCTP简要概述314
漏洞路径316
远程漏洞利用:总体分析319
获得任意内存重写原语320
远程调整堆布局320
创建SCTP消息:从相对到绝对内存的重写323
安装shellcode327
从中断上下文直接跳到用户态327
执行shellcode333
检查当前进程,模拟gettimeofday()函数333
执行反向连接334
恢复Vsyscall336
小结337
相关阅读337
尾注337
第四部分 展望
第9章 内核演变:未来内核攻防模式340
引言340
内核攻击341
保密性341
完整性342
可用性344
内核防御344
内核威胁的分析与建模345
内核防御机制346
内核保证机制347
超越内核bug:虚拟化350
虚拟层安全350
客户机内核安全351
小结351