Metasploit Framework是一个开放源码平台,用于开发、测试和启动攻击代码。这个平台很容易利用遍及全球的人们提供的可插入攻击模块扩展,这些扩展原来都是“仅用于合法渗透测试和研究目的。”根据Metasploit网站所称,Metasploit提供所有类型的漏洞(包括Web平台漏洞)的利用。对商业支持工具感兴趣的人,可以试试Rapid7的Metasploit Express、Core Security Technologies的CORE IMPACT或者Immunity的CANVAS。关于Metasploit、CORE IMPACT和CANVAS的进一步信息,请参见本章结尾处的“参考和延伸阅读”。
为了理解Metasploit提供的易用性,我们将首先在不使用这个框架的情况下,逐步介绍以老式方法利用常见的Web平台软件缺陷的示例。在第2章中你已经看到,发现Web服务器的类型和型号相当简单。研究识别出的服务器软件的已公布漏洞也是一样。举个例子,Sun Java System Web Server最近的一个漏洞,在“常见漏洞和披露”CVE-2010-0361中作了描述。攻击者所要做的是领会触发这一漏洞的途径。对此,我们引用Evgeny Legerov原创的报告并且试图重新创建原始攻击:
curl -X OPTIONS -O 'http://vulnerable.example.com/webdav/''perl -e 'print "A" x 500''
这种简单的DoS风格攻击导致远程服务器崩溃。正如你亲眼所见,利用已知的漏洞使服务器崩溃相当简单,不需要太多的精力。但是,试图领会如何利用该问题达到任意代码执行就需要更多的工作了。但是在我们的即时满足文化中,调试、分析和制作可用攻击程序的过程太繁琐了。说实话,我们很懒惰而且还有书要写。所以我们希望有简单的方法,谢天谢地,有一些能够自动化整个过程的应用。
我们现在用Metasploit框架来完成同样的示例,展示这个工具的能力和效率(即使在技能并不熟练的人手中)。我们首先获取这个框架的分发版本,安装,5分钟内我们就准备好了预先打包的攻击程序。Metasploit甚至展示了一个敏捷的安装向导。多么方便啊——而人们还认为入侵是件艰苦的工作。安装好以后,Metasploit可以通过命令行或者Web界面访问。因为我们是Web应用的狂热爱好者,所以演示中使用Web GUI。
启动Metasploit之后,我们看到了它所支持的攻击列表,如图3-1所示。我们找到Java System Web Server WebDAV溢出攻击并选中。Metasploit显示一个帮助屏幕,提供该漏洞的描述和参考。在图3-2显示的屏幕中,我们选择目标运行的系统类型。之前进行的研究告诉我们这个Web服务器运行Windows x86,于是我们选择这个版本。
选择目标之后,Metasploit显示下一个屏幕,让我们选择传递给服务器的一些载荷。对于这种进攻,简单的远程Shell是个好选择。点击Exploit按钮之后,Metasploit显示载荷传递的成功状态,我们得到了远程服务器的控制台访问权,如图3-3所示。
看看这有多容易!现在有趣的地方在哪里?
图3-1 用Metasploit“选择你的攻击”
图3-2 Metasploit让入侵变得很容易
图3-3 攻击成功