在 Metasploit 中使用辅助扫描器进行 SMB 枚举

Kali LinuxBeginner
立即练习

引言

在本实验中,你将学习如何使用 Metasploit Framework 执行 Server Message Block (SMB) 枚举。SMB 是一种网络协议,用于在网络节点之间提供对文件、打印机和串行端口的共享访问。枚举 SMB 版本是渗透测试中的关键第一步,因为它有助于识别目标上运行的特定软件和版本,然后可以将其与已知漏洞进行交叉引用。

我们将使用 Metasploit 的一个辅助扫描器模块,具体是 auxiliary/scanner/smb/smb_version,来扫描目标并确定其 SMB 版本。Metasploit 是一个强大的渗透测试框架,可以轻松查找、利用和验证漏洞。

在本实验结束时,你将熟悉启动 Metasploit、搜索模块、配置模块选项以及运行扫描器来收集目标系统信息。

搜索 smb_version 辅助模块

在此步骤中,我们将启动 Metasploit Framework 控制台并搜索执行 SMB 版本扫描的合适模块。msfconsole 是与 Metasploit 交互的主要界面。

首先,打开一个终端并运行以下命令来启动 Metasploit 控制台。初始化可能需要一些时间。

msfconsole -q

-q 标志使启动横幅静默。加载完成后,你将看到 Metasploit 提示符,它看起来像 msf6 >

现在,让我们找到 SMB 版本扫描模块。我们可以使用 search 命令来查找与 smb_version 相关的模块。

search smb_version

你将看到一个匹配模块的列表。我们感兴趣的是一个辅助扫描器。输出应该与此类似:

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

   ##  Name                                 Disclosure Date  Rank    Check  Description
   -  ----                                 ---------------  ----    -----  -----------
   0  auxiliary/scanner/smb/smb_version                     normal  No     SMB Version Detection
   1  exploit/windows/smb/smb_doublepulsar_eternalblue      2017-04-14  extraordinary Yes    SMBv1/SMBv2 DoublePulsar/EternalBlue Unauthenticated RCE

从输出中,我们可以看到 auxiliary/scanner/smb/smb_version 是我们需要的模块。

选择 smb_version 模块

在此步骤中,你将选择在上一步中找到的模块。在确定了正确的模块后,你需要使用 use 命令将其加载到框架的上下文中。

在你的 msfconsole 提示符下,输入以下命令来选择 smb_version 扫描器:

use auxiliary/scanner/smb/smb_version

你将注意到你的提示符已更改,以反映当前加载的模块:

msf6 auxiliary(scanner/smb/smb_version) >

这表明该模块现在已激活。要查看我们可以为该模块配置哪些选项,请使用 show options 命令:

show options

这将显示一个你可以为模块设置的参数表。

Module options (auxiliary/scanner/smb/smb_version):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   THREADS  1                yes       The number of concurrent threads (max one per host)

请密切关注 RHOSTSTHREADS 选项,因为我们将在接下来的步骤中配置它们。Required 列显示在运行扫描器之前必须设置 RHOSTS

将 RHOSTS 选项设置为目标 IP 范围

在此步骤中,我们将配置扫描的目标。RHOSTS 选项(远程主机)告诉 Metasploit 要扫描哪些机器。对于本次实验,我们在本地机器上安装了一个 Samba 服务器作为我们的目标。因此,我们将 RHOSTS 设置为回环 IP 地址 127.0.0.1

使用 set 命令为 RHOSTS 赋值:

set RHOSTS 127.0.0.1

Metasploit 将确认更改:

RHOSTS => 127.0.0.1

你可以通过再次运行 show options 来验证该选项是否已正确设置。你将看到 127.0.0.1 现在已列为 RHOSTSCurrent Setting。这是一个强制性步骤,因为扫描器需要知道其目标。

设置 THREADS 选项以加快扫描速度

在此步骤中,我们将调整 THREADS 选项。此选项控制 Metasploit 将使用多少并发扫描线程。当你针对大量主机进行扫描时,增加线程数可以显著加快扫描速度。

虽然扫描单个主机(127.0.0.1)不会从多线程中获得性能优势,但学习如何配置此选项是一个好习惯。让我们将线程数设置为 50。

再次使用 set 命令更改 THREADS 值:

set THREADS 50

Metasploit 将确认设置:

THREADS => 50

现在扫描器已配置为使用最多 50 个线程,这对于扫描像 192.168.1.0/24 这样的网络范围会非常有效。

运行扫描器并分析输出

在此步骤中,所有选项都已配置完毕,我们已准备好执行扫描器。run 命令(或其别名 exploit)将针对指定目标启动模块。

在你的 msfconsole 提示符下,执行扫描器:

run

模块现在将尝试连接到 127.0.0.1 的 445 端口并确定 SMB 版本。输出将类似于以下内容:

[*] 127.0.0.1:445     - Sending SMBv1 request
[+] 127.0.0.1:445     - Host is running Samba 4.15.13-Ubuntu (Samba 4.15.13-Ubuntu)
[*] 127.0.0.1:445     - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

让我们分析一下输出:

  • [+] 符号表示成功的结果。
  • Host is running Samba 4.15.13-Ubuntu 这行告诉我们 SMB 服务器软件的确切版本。对于渗透测试人员来说,此信息非常有价值,他们现在可以搜索针对此版本的特定漏洞。
  • 最后几行确认扫描已完成。

你已成功枚举了目标上的 SMB 版本。要退出 Metasploit 控制台,只需键入 exit

exit

总结

在此实验中,你已成功使用 Metasploit 辅助扫描器执行了 SMB 枚举。你已掌握了在 Metasploit Framework 中使用模块的基本工作流程。

你练习了以下关键技能:

  • 启动 Metasploit 控制台(msfconsole)。
  • 使用 search 命令搜索模块。
  • 使用 use 命令选择和加载模块。
  • 使用 show optionsset 查看和配置模块选项,如 RHOSTSTHREADS
  • 使用 run 命令执行模块。
  • 分析输出以收集关于目标的关键信息。

这种信息收集过程是任何安全评估或渗透测试的基础要素。恭喜你完成此实验!