实验6 Windows漏洞利用开发
6.1实验名称
Windows漏洞利用开发
6.2实验目的
学习windows漏洞利用开发,使用kali linux相关工具对windows内目标程序进行漏洞利用
6.3实验步骤及内容
第二阶段:利用SEH绕过GS保护
- 了解GS编译选项,SHE异常处理机制
- 分析利用SHE异常处理机制绕过GS的原理
- 寻找溢出点
- 寻找PPR,解释为何利用PPR
- 编写漏洞利用脚本,自动化攻击
漏洞点为在处理请求时存在漏洞—— 一个恶意的请求头部(HEAD或 GET)就可以引起缓冲区溢出,从而改写SEH链的地址。
接下来开启服务器程序
首先确定溢出点位置,同上的方法生成有序字符串,并构造请求文件3.txt
使用调试器ImmunityDebugger打开Easy File Sharing Web Server 7.2,并且运行
在kali上使用telnet连接
或者直接使用脚本进行连接
接下来就可以查看Easy File Sharing Web Server 7.2溢出地址
Catch块的地址为46356646,下一条SEH记录地址为34664633。然后计算catch块偏移量,计算下一条she的偏移量
需要注意,我们需要POP/POP/RET指令的地址来载入下一条SEH记录的地址,并跳转到攻击载荷。这需要一个外部的DLL文件载入一个地址,不过现在大多数最先进的操作系统都使用SafeSEH保护机制来编译DLL,因此我们需要一个没有被SafeSEH保护的DLL模块的POP/POP/RET指令地址,即ImageLoad.dll。使用mona寻找PPR,需要POP/POP/RET指令的地址来载入下 一条SEH记录的地址,并跳转到攻击载荷。选择第一个ImageLoad.dll
找到并且复制到kali
msfbinscan,出来很多返回地址。对其依次进行尝试
经过尝试0x10022fd7可以使用
然后运行攻击程序,多尝试几次发现可以成功