对ftpserver1.0的栈溢出漏洞测试
msf选择漏洞,设置参数,利用
winxp上ollydbg打开ftpserver,运行,报错,栈溢出成功
计算软件溢出的偏移地址
利用/usr/share/metaslpit-framework/tools/exploit目录下的pattern_create.rb脚本先生成500的字符串,然后将该字符串作为用户名内容发送给ftpsever程序,写出python代码如下图:
运行python文件,得到如下结果:
然后利用该目录下的pattern_offset.rb工具定位该溢出地址
编辑python文件进行验证:
可见溢出内容确实是bbbb的十六进制形式
查找JMP ESP指令
ctrl+e,选择任意一个dll,如下图选择kernel32,然后右键选择search for commend,输入jmp esp,定位到该指令地址,为7C86467B
或者选择search for all commend可查找到所有jmp esp指令,如图为shell32.dll的所有jmp esp指令地址,选中的为7D70FA1E
编写渗透程序
由上一步得到一个jmp esp指令地址为7D70FA1E,但由于该地址本身为小端模式,而发送参数使用的是大端模式,所以编写程序时将其倒过来编写 即\x1E\xFA\x70\x7D,防止esp指令地址偏移,加20个空指令\x90,然后后面加一个弹计算器的shellcode
运行,成功弹出计算器