在一个笔记本上开两个虚拟机有点卡,而且太麻烦,就把metasploit的目标靶机放在别的机器上了,ip自己配置了一下,
目标主机:192.168.137.254
入侵机:192.168.137.253
目标机上存在漏洞:KingView 6.53版本CVE-2011-0406漏洞,系统 win2003 SP0
下面进入正题:
在信息搜集中得知,目标主机开放了777端口,百度发现,这个端口运行着KingView的服务,并且存在着漏洞。
直接在msf在search这个漏洞的利用模块。。。没有啊
于是,上网搜了一个exp,放到 /exploits/windows/scada中,查看了一下源代码,发现里边target没有win2003 SP0。
没办法,先试试 winXP SP3看看能否同用吧。
配置过程:
看看能反弹连接吗:
好吧。。。果断不行。。
回到目标主机上去调试吧,通过刚才的一次攻击,发现HistorySvr.exe停止了运行,说明漏洞被触发了,但是没有执行shellcode,那么,应该就是跳转指向的地址不是shellcode的地址,最终调用了系统默认的异常处理函数。
打开OllyDBG,在option菜单中选择 “Just-in-time debugging”,在选“Make ollydbg just-in-time debugger”,之后退出。重新启动HistorySvr服务,并再次进行攻击,Ollydbg截断了异常处理,程序终止在了异常的指令处。
原因是call调用的eax+0x0C地址没有被分配使用,触发了异常。
回到该模块的源代码,找到target,发现针对目标win XP SP3 EN返回地址Ret正是EAX寄存器的值0x00A1FB84,显然,溢出发生之后,数据包的Ret覆盖了EAX,但是并没有成功指向shellcode的地址,接下来,只需要修改Ret的值就可以了。
需要定位shellcode的位置,在该渗透模块添加了一个新的target,Ret随意写,在构造exploit函数的溢出数据包时,加上特殊的定位字符,但要保持总长度不变。
关闭Ollydbg,重启服务,再次进行攻击:
回到目标靶机上,ollydbg再次拦截到异常,直接在Memory中定位字符“ABAC”,在0x00B404C0搜索到了字符,相应的找到了shellcode的地址0x00B404C4
接下来,就修改Ret和exploit函数就可以了:
重新加载,再次攻击,成功。