- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
win32堆栈溢出入门
wwiinn3322堆堆栈栈溢溢出出入入门门
版本号 1.0
文档作者 netxfly
更新日期 2007年5月10日
关键字:overflow、debug、Shellcode、Win32 Exploit
关关键键字字::oovveerrffllooww、、ddeebbuugg、、SShheellllccooddee、、WWiinn3322 EExxppllooiitt
综述:
本文通过几个实例介绍了如何利用已知的poc进行漏洞调试的基本方法。
Windbg下载:/whdc/devtools/debugging/installx86.Mspx
Metasploit下载:
POC 下载:/
XnView 1.90.3下载地址:/soft/1187.html
ACDSee v9.0 官方简体中文版 :/soft/9483.Html
Ccproxy6.0包含于附件中
正文
缓冲区溢出原理
如上代码所示,为局部变量分配10bytes,然后copy 10个字节进去,程序
会正常输出。当我们把要拷贝到缓冲区的字符加大到20,就会发生缓冲区溢出,
如图2所示。
事实上,win32的堆栈是默认4 字节对齐的,操作系统为buffer分配的缓冲
区大小为12字节,随后的4字节为保存在堆栈中EBP 的值,接下来的的4字
节便是主函数的返回地址RET了。我们将第16至20个字节改为BBBB 后再编
译运行一次程序。如图3所示,提示出错的地址这正好是BBBB
的ASCII 值。
Exploit It!
由于这个程序的缓冲区太小,没法放我们ShellCode,我们把buffer数组的
容量改为2000就足以存放我们的ShellCode了。
根据前面的知识,我们推算出溢出点在2005的位置,我们用JMP ESP 来
覆盖溢出点,最后EIP 就会跳转到RET 后面中的SHELLCODE 中。利用方式
如下:
NNNNNNN + EBP + RET + ShellCode + NNNNN
N 表示Nop,但是在这个程序中,我们的ShellCode太长了,放在RET后
面就会覆盖到程序中的一些其他地址,导致函数无数返回,结果却触发不了溢出
点。所以我们只能把ShellCode放在溢出点前面,然后让EIP 往前跳,跳到我
们的ShellCode中,利用示意图为:
NNNNN + ShellCode + NN + EBP + RET + JMP -x +NNN
JMP -x表示往前跳X个字节,RET 处我们用中文Win2000/xp/2003 通用
JMP ESP 地址7ffa4512。
在本例中,我们的ShellCode是由自动生成的,
win32_adduser - PASS=security EXITFUNC=thread USER=security
Size=244 Encoder=PexFnstenvSub,添加一个用户名和口令都为security的管
理员。
缓冲区大小为2008,我们让EIP 往前跳1000 bytes,后面还有1000 bytes
可以容纳我们的ShellCode,其实也不用这么精确的,只要让能容纳下
ShellCode,然后让EIP 跳转到ShellCode前面的一大堆空指令中,EIP 就会顺
着这些空指令一直执行到我们的ShellCode中,最后我们构造的exp 如下图所
示:
Exp 执行后成功添加security 管理员,如理图所示:
ACDSEE9 溢出学习
在拜读了Cloie大牛的二篇大作后,对Win32堆栈溢出有了更深入的认识,
同时也学到了一种很方便的溢出点定位方法,窃喜中,
首先根据作者提供的poc,自已照着写个代码风格清晰的,用6600个A填
充缓冲区,然后生成一个XPM文件摆放在桌面上。如图所示:
用ACDSEE9浏览桌面上的XPM 文件,ACDSEE 进程崩溃了,再次运行
ACDSEE9.exe,然后用CDB 加载其进程,如下图所示:
ACDSEE9 会自动中断在程序的入口点处,输入g 继续运行程序,然后用
ACDS
您可能关注的文档
- 蓝牙4.0标准模块讲述.pdf
- 第九章 概念相似度计算方法.pdf
- 第二章 HY5900消防电源监控壁挂使用说明书.pdf
- 亚热带热带山地植被垂直分布.pdf
- TP RAM的低功耗设计和应用.pdf
- SUN数据结构第2节线性表(第3讲).ppt
- 九年级物理九年级物理电学复习教材.ppt
- 算法分析及设计2016-第1讲.ppt
- 蓝牙抓包软件讲述.pdf
- 第十三章 济宁市安居小区回迁楼3#、4#投标文件.doc
- F343010【复试】2024年辽宁师范大学040106高等教育学《复试中外教育史之.pdf
- 企业财务管理试题及答案 .pdf
- 2022-2023年国家电网招聘之电网计算机题库练习试卷A卷附答案 .pdf
- 2024年成都电工证考题电工考试模拟100题及答案(全国真题) .pdf
- 名著阅读《昆虫记》《红星照耀中国》期末复习 .pdf
- 国家开放大学电大本科《合同法》2023-2024期末试题及答案(试卷完整版721026024.pdf
- 安徽省安庆市太湖县2023-2024学年八年级上学期期末数学试题.pdf
- 2024年度汉字作文600字7篇 .pdf
- 变速器开题报告 .pdf
- 完整版机械制造工艺学课后答案 .pdf
文档评论(0)