2.2.5 MetaSploit
MetaSploit由Rapid7公司维护,分为MetaSploit Framework和MetaSploit Pro两个版本。其中MetaSploit Framework是开源的免费版本,使用ruby语言编写,为命令行模式工具(同时可以开启Web端);而MetaSploit Pro则是非开源商业付费版本,用于图形界面,适合公司使用。本部分我们以MetaSploit Framework版本为例代表MetaSploit系列软件进行讲解。
MetaSploit Framework是全球最常用的渗透测试框架之一,简称为MSF。在这款软件内包含了上百个只需稍加配置便可以使用的漏洞利用模块,可以帮助渗透测试员快速进行漏洞验证和进一步攻击。此外MetaSploit Framework还支持社会工程钓鱼、生成远程控制脚本、控制管理主机等功能,可以有效地减少渗透测试的时间,提高渗透成功率。
用户在启动MetaSploit Framework之后可以看到如图2-34所示的MetaSploit Framework欢迎界面,软件会显示当前的版本和当前本地漏洞库统计数据,以及监听网卡状态。
图2-34 MetaSploit Framework欢迎界面
有了这款软件,渗透测试人员可以很轻松地进行一些漏洞利用,如此时渗透测试人员有一台测试目标服务器,经过Nmap端口扫描之后渗透测试人员发现这台服务器开放了8080端口,正在运行Apache服务的是一个Web端口。随后渗透测试人员使用浏览器访问8080端口发现在此网站中配置了版本号为4.8.1的phpMyAdmin数据库管理软件。然后渗透测试人员通过互联网查询到此版本的phpMyAdmin存在一个任意命令执行漏洞,并且MetaSploit Framework收录了这个漏洞的利用模块,此时渗透测试人员便可以使用MetaSploit Framework直接进行攻击。
phpMyAdmin登录窗口如图2-35所示。
图2-35 phpMyAdmin登录窗口
现在让作者带领大家使用MSF中最为常见的5个命令来完成此次漏洞利用攻击,获取目标服务器权限。
2.2.5.1 search命令:用于搜索MSF中的模块内容
当渗透测试人员想要寻找一个软件的漏洞利用模块时,渗透测试人员往往并不知道有哪些漏洞及模块,此时渗透测试人员需要先使用search命令搜索当前可用的MSF模块。虽然渗透测试人员之前查到了MSF有4.8.1的phpMyAdmin对应漏洞的利用模块,但是渗透测试人员并不知道这个模块的具体名称,渗透测试人员可以先使用“search phpmyadmin”命令搜索当前与“phpMyAdmin”软件关联的模块,搜索完毕之后渗透测试人员可以看到搜索结果。
搜索返回结果如图2-36所示。
图2-36 搜索返回结果
搜索结果共分为六个节:第一个节为当前结果编号、第二个节为当前利用模块名称、第三个节为对应模块发布日期、第四个节为当前模块可用度评级、第五个节为当前模块是否经过官方验证、第六个节为当前模块描述信息。
渗透测试人员可以通过浏览第六个节“Description”中的描述内容快速确定渗透测试人员想要选择哪个模块,之后渗透测试人员需要记录下对应模块的第二节“Name”的内容。这时我们根据模块描述找到了渗透测试人员需要使用的模块是搜索结果中的第三个模块,模块名称为:exploit/multi/http/phpmyadmin lfi rce。
2.2.5.2 use命令:用于在MSF中使用指定模块
当渗透测试人员找到了我们想用的模块之后,渗透测试人员可以使用此命令空格之后再加上对应模块名称的方式来调用此功能,当渗透测试人员使用了此模块后,渗透测试人员会发现命令行中出现了“exploit(模块名称)”字样,其中括号内的模块名称被标为了红色,十分显眼。在MSF中使用指定模块如图2-37所示。
图2-37 在MSF中使用指定模块
2.2.5.3 info命令:查看对应模块详细信息
当渗透测试人员使用了指定模块之后,可以直接键入“info”命令字样来查看当前模块更加详细的信息。在详细信息之中渗透测试人员还可以看到如模块使用所需参数(可以单独使用options命令查看)、适用平台、参考来源等信息。渗透测试人员可以看到模块适用于Windows系统和Linux系统,在参数中“RHOSTS”“RPORT”“TARGETURI”“USERNAME”四个参数是必需的。
查看当前模块详细信息如图2-38所示。
图2-38 查看当前模块详细信息
2.2.5.4 set命令:设置对应参数值
在使用“info”或者“options”命令查看当前模块所需要的参数之后,渗透测试人员可以使用“set”命令设置或修改对应的参数内容。例如,在如图2-39配置MSF模块变量值的例子中我们使用“set RHOSTS 127.0.0.1”命令成功将“RHOSTS”参数的内容修改为“127.0.0.1”。之后渗透测试人员需要将其他所需配置也逐一配置完毕。例如,我们这里的“phpMyAdmin”软件是直接配置在网站根目录下的,而不是默认配置中的“phpMyAdmin”目录,那么渗透测试人员便需要使用“set”目录修改这个默认配置,否则漏洞将不能被成功利用。
图2-39 配置MSF模块变量值
2.2.5.5 expIoit/run命令:执行模块内容
当设置完毕所有的变量环境之后,我们可以使用“exploit”命令或者“run”命令来执行当前的模块进行漏洞利用。在开始运行模块之后我们可以在输出界面中看到漏洞是否利用成功,可以看到此时我们成功利用了这个漏洞,反弹Shell获取到了系统权限,接着我们将会进入MSF的远程控制模式。在远程模式中我们可以监听目标系统的屏幕、执行任意命令等,可以看到我们可以在目标服务器上执行任意系统命令。
成功获取目标服务器Shell如图2-40所示。
图2-40 成功获取目标服务器Shell
至此作者成功利用MetaSploit Framework完成了一次对目标服务器的渗透并且成功获取到了服务器权限。