ImageVerifierCode 换一换
格式:PPT , 页数:34 ,大小:130.50KB ,
文档编号:4379996      下载积分:25 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4379996.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(堆溢出及其利用技术深入研究课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

堆溢出及其利用技术深入研究课件.ppt

1、Windows 2003 堆溢出及其利用技术深入研究堆溢出及其利用技术深入研究作者:FlashSky日期:2003-12-26 感谢感谢安全焦点所有的成员与启明星辰积极防御实验室的同事 主讲目录主讲目录 WINDOWS堆结构简介 WINDOWS堆溢出利用 WINDOWS 2003堆溢出保护 WINDOWS 2003堆溢出保护的弱点 思路的延续:弱点利用深入的讨论 思路的突变:更广泛的另类有效利用的手段 未来WINDOWS 2003堆溢出利用研究的方向Copyright FlashSkyxfocus.org 2003 WINDOWS 堆结构简介(堆结构简介(1)前言WINDOWS 2003,系统

2、低层的安全性改进本文的目的 当前关于WINDOWS堆的研究WINDOWS 堆管理结构与管理特性的研究WINDOWS 堆特性在堆溢出时的利用的研究WINDOWS 2003的堆特性的研究Copyright FlashSkyxfocus.org 2003 WINDOWS 堆结构简介(堆结构简介(2)WINDOWS堆结构简介堆与堆块堆管理结构与堆块管理结构堆的整体结构构架Copyright FlashSkyxfocus.org 2003Copyright FlashSkyxfocus.org 2003堆管理结构块(SIZE:0X640/0XC50)堆段表块0(SIZE:0X40)小堆块分配管理表结构(

3、SIZE:0X1818),可选用户堆块数据区堆的基地址一般紧接着堆管理结构块之后 WINDOWS 堆结构简介(堆结构简介(3)WINDOWS堆块分配与释放的管理大堆块对象与小堆块对象 空闲堆块双向链表头空闲大堆对象与空闲小堆对象入链算法Copyright FlashSkyxfocus.org 2003 WINDOWS 堆溢出利用(堆溢出利用(1)基本原理 常见的普通利用方式:引起空闲堆组成的双向链表的脱链的操作Copyright FlashSkyxfocus.org 2003Copyright FlashSkyxfocus.org 2003NextP2PrevP0NextP3PrevP1Nex

4、tP4PrevP2NextP3/PrevP3NextP2/PrevP2NextP1/PrevP1NextP3PrevP0NextP3PrevP1NextP4PrevP1一个正常的堆块脱链表过程 WINDOWS 堆溢出利用(堆溢出利用(2)双向链表的入链利用的可能性可利用的原理利用的要求Copyright FlashSkyxfocus.org 2003NextP3PrevP0NextP3PrevP1NextP4PrevP1NextP3/PrevP3NextP2/PrevP2NextP1/PrevP1NextP2PrevP0NextP4PrevP1UNKNUNKPNextP3PrevP1NextP

5、2PrevP0NextP4PrevP2一个正常的大堆块插入入链表过程Copyright FlashSkyxfocus.org 2003 WINDOWS 堆溢出利用(堆溢出利用(3)覆盖空闲大堆可以达到的目的:我们能将一个当前释放堆的地址填入到一个由我们指定的内存地址中Copyright FlashSkyxfocus.org 2003NextP3PrevP0NextP4PrevP1NextP3PrevP0JMPTSEHPTSEHNextP3PrevP0JMPNextP2NextP2NextP3SEHPTOPSEHTOPSEH一个利用大堆块插入入链表的过程NextP3/PrevP3NextP1/P

6、revP1NextP2/PrevP2Copyright FlashSkyxfocus.org 2003 WINDOWS 堆溢出利用(堆溢出利用(4)入链表利用的进一步问题:当前释放堆块地址的前8字节内容是我们无法控制的指针价值。解决方法:再次分配时候可以将我们可以控制的4字节写入Copyright FlashSkyxfocus.org 2003Copyright FlashSkyxfocus.org 2003NextP3PrevP0JMPNextP2NextP2JMPSEHPNextP3PrevP0JMPNextP2NextP2JMPSEHPTOPSEHJMP ADDR触发异常利用分配再次写入

7、JMP代码到头四字节 WINDOWS 堆溢出利用(堆溢出利用(5)WINDOWS堆溢出可以利用的途径脱链表时入链表时Copyright FlashSkyxfocus.org 2003 WINDOWS 2003 堆溢出保护(堆溢出保护(1)基于堆溢出利用原理的检查基于覆盖双向链表的地址导致可写入任一地址空间检查上下链表的一致性可以检查和防止堆溢出的利用Copyright FlashSkyxfocus.org 2003Copyright FlashSkyxfocus.org 2003lea ecx,esi+8 mov edi,ecx mov ebp-0D8h,edimov eax,esi+0Ch

8、mov ebp-94h,eaxmov edx,eax cmp edx,edi+4 jnz loc_77F36DE1 cmp edx,ecx jnz loc_77F36DE1 mov eax,edi mov edi+4,eaxWINDOWS 2003 的检查的代码 WINDOWS 2003 堆溢出保护(堆溢出保护(2)简单而言,其要求就是被处理的当前堆块的管理结构的双向链表的下一个堆块指针与上一堆块指针要满足如下条件:1.当前堆块的下一个堆块指针指向的堆块的上一个堆块指针要等于当前堆块的地址2.当前堆块的上一个堆块指针指向的堆块的下一个堆块指针要等于当前堆块的地址Copyright FlashS

9、kyxfocus.org 2003 WINDOWS 2003 堆溢出保护(堆溢出保护(3)普通饶过的困难需要构造这样的条件需要准确的知道当前堆块的地址,然而往往当前堆块的地址我们不可知。同时我们需要改写的有效的内存地址如SHE,RET ADDR,TOP SHE,FUNC HANDLE等周围的内容我们不可控制Copyright FlashSkyxfocus.org 2003 WINDOWS 2003 堆溢出保护的弱点与问题(堆溢出保护的弱点与问题(1)保护的范围跟踪所有的利用途径,发现:WINDOWS 2003只对出链表的路径做了完善检查,缺乏对入链表路径利用的检查。构造满足入链表攻击的条件就能

10、成功修改一个特定内存的值为释放堆块的地址。MS遗漏检查的原因?Copyright FlashSkyxfocus.org 2003 WINDOWS 2003 堆溢出保护的弱点与问题(堆溢出保护的弱点与问题(2)检查的逻辑逻辑上,并不能真正保证 检查的正确性。某种含义上,我们还是能欺骗这种保护,如果我们能找到一种有普遍意义的特殊的利用形式,我们也能饶过检查。Copyright FlashSkyxfocus.org 2003 思路的延续:遗漏检查利用深入的讨论(思路的延续:遗漏检查利用深入的讨论(1)新的困难无法使用分配的过程再次写入JMP CODE,这样头8字节我们无法控制其内容,引起SHELLC

11、ODE执行的异常或失败。因为分配路径做了完整的保护检查。Copyright FlashSkyxfocus.org 2003Copyright FlashSkyxfocus.org 2003NextP3PrevP0JMPNextP2NextP2NextP3SEHPTOPSEH无法满足检查的条件 思路的延续:遗漏检查利用深入的讨论(思路的延续:遗漏检查利用深入的讨论(2)期待于运气?再次的推导:构造的欺骗如果我们能知道堆块的准确地址,是否可以构造欺骗?为什么这里能构造欺骗而前面不能?演示:一个构造欺骗写入JMP的实现Copyright FlashSkyxfocus.org 2003 思路的延续:遗

12、漏检查利用深入的讨论(思路的延续:遗漏检查利用深入的讨论(3)新的发现与困境一个可以满足检查的堆块的脱链操作将再次改写SEHCopyright FlashSkyxfocus.org 2003Copyright FlashSkyxfocus.org 2003NextP3PrevP0JMPNextP2NextP2NextP3SEHPTOPSEH如果我们能让这个堆块进行脱链表操作又如何?Copyright FlashSkyxfocus.org 2003NextP2PrevP0JMPSEHPNextP3NextP3SEHPTOPSEH这时异常会有什么结果?思路的延续:遗漏检查利用深入的讨论(思路的延续

13、:遗漏检查利用深入的讨论(4)双堆块释放的触发一个可以满足检查的堆块的脱链操作将再次改写SHE指向我们原来的被覆盖的堆块(而不是当前释放的堆块),而这里的头4字节是我们可以控制的内容。演示:双堆块释放二次重写TOP SHE的实现利用Copyright FlashSkyxfocus.org 2003 思路的延续:遗漏检查利用深入的讨论(思路的延续:遗漏检查利用深入的讨论(5)更深入一步:利用次序,在非双堆块释放环境下构造双堆块释放的环境 演示:构造双堆块释放的实现 限制条件汇总Copyright FlashSkyxfocus.org 2003 思路的突变:更广泛的另类有效利用手段(思路的突变:更

14、广泛的另类有效利用手段(1)不能满足于覆盖空闲大堆块的苛刻条件,我们需要再求新的思路 转换一下思路,构造欺骗用于新的利用形式:思路的来源Copyright FlashSkyxfocus.org 2003 思路的突变:更广泛的另类有效利用手段(思路的突变:更广泛的另类有效利用手段(2)一种利用的转换与堆栈/数据区的结合甚至可以用于制造空闲大堆块覆盖的条件Copyright FlashSkyxfocus.org 2003 思路的突变:更广泛的另类有效利用手段(思路的突变:更广泛的另类有效利用手段(3)演示:一个将堆溢出转化为数据区溢出利用的实现 限制条件汇总Copyright FlashSkyxfocus.org 2003 未来未来WINDOWS 2003堆溢出研究的方向堆溢出研究的方向Copyright FlashSkyxfocus.org 2003Thanks!Q/A

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|