返回目录

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

Metasploit 安全 渗透

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

按照《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 脚本进行扫描
  • -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 以加快测试速度。