- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Seh绕过GS保护
二进制漏洞挖掘系列课程-(2)利用 SEH绕过 GS安全机制
Writenby 東
实验环境:Win7 sp1 x64
实验工具:vs2013 ImmunityDebug mona.py
这个专题需要了解两个概念,一个是异常处理机制(seh),还有一个就是Windows GS保护.
SEH:
(Structured Exception Hadnling)结构化异常处理
(windows)操作系统提供给程序设计者的强有力的处理程序错误或异常的武器
C语言中通常通过_try catch 来实现
int main()
{
_try{
//可能出现异常崩溃的代码
}
_except(EXCEPTION_EXECUTE_HANDLER) {
//异常处理程序
}
return 0;
}
其实Windows 在原始的程序栈前面添加了一个异常处理结构,该结构由一系列的异常处
理链表组成,这条链表的起始点总是放在TIB (Thread Information Block)的第一个成
员中,在x86 计算机中存储在FS:[0]寄存器中。链表的最后总是默认处理程序,这个默认
处理程序的指针总是0xFFFFFFFF
GS保护机制:
Windows在VS7.0(Visual Studio 2003)及以后版本的VisualStudio 中默认启动了
一个安全编译选项——GS (针对缓冲区溢出时覆盖函数返回地址这一特征)
GS保护机制是在函数即将调用的时候向栈桢压入一个DWORD 的随机值,同时也
向.data 段中存放一个Security Cookies,
1. 被压入栈中的随机值位于EBP之前.在.data段中的数据实现栈
Cookies的校验
2. 在函数返回之前,系统将会执行一个额外的安全验证操作,被称作
SecurityCheck
3. Security当校验发现栈Cookies和 .data的副本不吻合则表明发
生溢出
4. 当检测到栈中发生溢出时,系统接管异常,函数不会被正常返回,
ret指令也不会被执行
5. 当栈中发生溢出时,Security Cookie将被首先淹没,之后才是
EBP和返回地址
GS保护机制的实现细节是
1 系统以.data段的第一个DWORD 作为Cookie的种子
2 每次程序运行时的Cookie的种子都不一样,随机性很强
3 栈桢初始化完毕后用EBP异或种子,作为当前函数的Cookie,以此区别不同函数,增强
Cookie的随机性
4 在函数返回前,用EBP异或还原出Cookie种子
绕过GS安全保护的方案
1) 通过覆盖SEH链表来阻止系统接管异常处理.
2) 通过改写C++虚表指针来控制程序流程
3) 用一些未开启GS安全保护的函数进行溢出(可能是关键字保护) ||小于四字节的Buf
今天这个课程我们讲通过覆盖SEH链表来进行exploit
还是上节课的例子,我们开始调试在反汇编窗口查看ShowFileInfo 这次为了演示seh我
把print函数放在了ReadFile下面我们这次看到了在ShowFileInfo中Printf函数下面有
一个Security_Check_Cookie 这就是我们的GS缓冲区检测机制的这个函数,工程项目是
realse版本的,在项目属性只开启GS。关闭 优化选项,dep,aslr,safeseh(vs项目属性选择
配置属性-链接器-命令行填写 “/SAFESEH:NO ”)
我们可以试试如果和上次一样覆盖掉返回地址当执行到Security_Check_Cookie 的时候,
他会检查栈Cookies 和.data 的副本,这时候GS就分发系统异常处理请求然后就由系统接
管处理你这个异常 我们可以先用mona插件查看程序当前seh链表
这个地址指向的就是Pointer to next SEHrecord 下面的SE hander是ntdll中的系统接
管处理。
我们现在的思路就是覆盖掉这个SEH异常处理链表SEH handler 还
您可能关注的文档
- 六次甲基四胺化学品安全技术说明书-化学试剂.PDF
- 六级伤残工伤职工本人提出.PPT
- 兰州大学大型精密仪器设备管理暂行办法-兰州大学大气科学学院.DOC
- 共挤出技术在聚合物成型加工中的应用及其设备的-中国科技论文在线.PDF
- 共晶反応説明.PDF
- 共轭聚合物中受激吸收与受激辐射的量子动力学研究-物理学报.PDF
- 共晶合金Ⅱ合金.PPT
- 共辘能谱计算-上海有机化学研究所.PDF
- 共集极放大器.PPT
- 共轭酸碱对HAcH2OH3OAc.PPT
- 利用三线态激子提高有机P高分子发光器件的量子效率3.PDF
- 利用吹气测试与奈米压痕试验机量测微机电元件之薄膜机械特性.PDF
- 利用卫星热红外遥感技术监测长白山天池火山活动性-地震地质.PDF
- 利用压电转换进行储能之脚踏垫及具双向无线求救系统之太阳能.PDF
- 利用本科生科研训练平台培养高素质人才-大学化学.PDF
- 利用带隙电压参考电路进行铜应力测量的新方法来源互联网简介铜.DOC
- 利用转基因衣藻合成聚一p一轻基丁酸的研究-深圳大学.PDF
- 利用阳极氧化铝模板制作燃料电池用核壳结构Pt-Sn触媒.PDF
- 利用阅酝阅获取高动态范围图像技术-中国光学.PDF
- 利用高密度SNP检测不同猪品种间X染色体选择信号-遗传.PDF
最近下载
- 不动产估价(收益还原法)解析.ppt
- 黑骏马读后感英文.pptx VIP
- 2025年北京城市副中心投资建设集团有限公司招聘笔试备考题库及答案解析.docx VIP
- 艾梅乙知识培训-2024鲜版.ppt VIP
- 发动机机构及系统组成.doc VIP
- 林辰_鲁迅传_的考据特色_赵焕亭.pdf VIP
- 威海机械装备制造产业 .doc VIP
- Yokogawa横河电机AXF Series Magnetic Flowmeter Installation Manual使用说明书.pdf VIP
- 创业板保荐项目尽职调查问核程序指引.docx VIP
- 2025年农业现代化视角下特色农产品深加工冷链物流技术应用报告.docx VIP
文档评论(0)