0day安全_软件漏洞分析技术
王清主编的《Oday安全:软件漏洞分析技术(第2版)》将系统全面地介绍Windows平台软件缓冲区溢出漏洞的发现、检测、分析和利用等方面的知识。 为了保证这些技术能够被读者轻松理解并掌握,本书在叙述中尽量避免枯燥乏味的大段理论阐述和代码粘贴。书中所有概念和方法都会在紧随其后的调试实验中被再次解释,实验和案例是本书的精髓所在。从为了阐述概念而精心自制的漏洞程序调试实验到现实中已经造成很大影响的著名漏洞分析,每一个调试实验都有着不同的技术侧重点,每一个漏洞利用都有自己的独到之处。 我将带领您一步一步地完成调试的每一步,并在这个过程中逐步解释漏洞分析思路。不管您是网络安全从业人员、黑客技术发烧友、网络安全专业的研究生或本科生,如果您能够完成这些分析实验,相信您的软件调试技术、对操作系统底层的理解等计算机能力一定会得到一次质的飞跃,并能够对安全技术有一个比较深入的认识。
目 录
第1篇漏洞利用原理(初级)
第1章基础知识 2
1.1漏洞概述 2
1.1.1bug与漏洞 2
1.1.2几个令人困惑的安全问题 2
1.1.3漏洞挖掘、漏洞分析、漏洞利用 3
1.1.4漏洞的公布与0 day响应 5
1.2二进制文件概述 5
1.2.1PE文件格式 5
1.2.2虚拟内存 6
1.2.3PE文件与虚拟内存之间的映射 7
1.3必备工具 11
1.3.1OllyDbg简介 11
1.3.2SoftICE简介 11
1.3.3WinDbg简介 16
1.3.4IDA Pro简介 18
1.3.5二进制编辑器 20
1.3.6VMware简介 21
1.3.7Python编程环境 28
1.4Crack小实验 29
第2章栈溢出原理与实践 38
2.1系统栈的工作原理 38
2.1.1内存的不同用途 38
2.1.2栈与系统栈 39
2.1.3函数调用时发生了什么 40
2.1.4寄存器与函数栈帧 43
2.1.5函数调用约定与相关指令 44
2.2修改邻接变量 47
2.2.1修改邻接变量的原理 47
2.2.2突破密码验证程序 49
2.3修改函数返回地址 53
2.3.1返回地址与程序流程 53
2.3.2控制程序的执行流程 57
2.4代码植入 62
2.4.1代码植入的原理 62
2.4.2向进程中植入代码 62
第3章开发shellcode的艺术 71
3.1shellcode概述 71
3.1.1shellcode与exploit 71
3.1.2shellcode需要解决的问题 72
3.2定位shellcode 73
3.2.1栈帧移位与jmp esp 73
3.2.2获取“跳板”的地址 76
3.2.3使用“跳板”定位的exploit 78
3.3缓冲区的组织 81
3.3.1缓冲区的组成 81
3.3.2抬高栈顶保护shellcode 83
3.3.3使用其他跳转指令 83
3.3.4不使用跳转指令 84
3.3.5函数返回地址移位 85
3.4开发通用的shellcode 87
3.4.1定位API的原理 87
3.4.2shellcode的加载与调试 88
3.4.3动态定位API地址的shellcode 89
3.5shellcode编码技术 98
3.5.1为什么要对shellcode编码 98
3.5.2会“变形”的shellcode 99
3.6为shellcode“减肥” 103
3.6.1shellcode瘦身大法 103
3.6.2选择恰当的hash算法 105
3.6.3191个字节的bindshell 107
第4章用MetaSploit开发Exploit 119
4.1漏洞测试平台MSF 简介 119
4.2入侵Windows系统 121
4.2.1漏洞简介 121
4.2.2图形界面的漏洞测试 121
4.2.3console界面的漏洞测试 125
4.3利用MSF制作shellcode 126
4.4用MSF扫描“跳板” 128
4.5Ruby语言简介 129
4.6 “傻瓜式”Exploit开发 134
4.7用MSF发布POC 140
第5章堆溢出利用 144
5.1堆的工作原理 144
5.1.1Windows堆的历史 144
5.1.2堆与栈的区别 145
5.1.3堆的数据结构与管理策略 146
5.2在堆中漫游 151
5.2.1堆分配函数之间的调用关系 151
5.2.2堆的调试方法 152
5.2.3识别堆表 155
5.2.4堆块的分配 158
5.2.5堆块的释放 159
5.2.6堆块的合并 159
5.2.7快表的使用 161
5.3堆溢出利用(上)——DWORD SHOOT 163
5.3.1链表“拆卸”中的问题 163
5.3.2在调试中体会“DWORD SHOOT” 165
5.4堆溢出利用(下)——代码植入 169
5.4.1DWORD SHOOT的利用方法 169
5.4.2狙击P.E.B中RtlEnterCritical-Section()的函数指针 170
5.4.3堆溢出利用的注意事项 175
thanks you
页:
[1]