Metasploit multi/handler 模块高级选项解析

news2025/3/4 8:55:11

multi/handler 是 Metasploit 框架中至关重要的模块,主要用于监听目标机的连接并处理来自目标的反向 shell 或会话。它可以灵活地适应不同渗透测试场景,提供高度的自定义选项以优化监听器的行为。

在 Metasploit msf6 框架中,当使用 exploit/multi/handler 模块时,可以通过输入 advanced 命令查看该模块的高级选项。高级选项允许用户精确调整监听器的设置,以便更好地适应各种渗透测试环境。例如,用户可以选择是否在会话建立后退出监听、是否启用详细日志、是否启用多线程等。

Metasploit multi/handler高级选项


1. multi/handler 高级选项解析

以下是 multi/handler 模块的高级选项及其详细说明:

参数当前值必需描述
ContextInformationFile指定包含上下文信息的文件(用于记录或调试)
DisablePayloadHandlerfalse是否禁用 Payload 处理器(默认不禁用)
EnableContextEncodingfalse是否启用 Payload 的瞬态上下文编码(通常不启用)
ExitOnSessiontrue会话创建后是否退出监听器
ListenerTimeout0最大等待会话连接的时间(0 表示无限等待)
VERBOSEfalse是否启用详细日志输出
WORKSPACE指定 Metasploit 工作空间
WfsDelay2会话创建后额外等待的秒数(默认为 2 秒)

关键参数解释

  1. ExitOnSession

    • 设为 true:会话建立后,multi/handler 会自动退出。适用于一次性监听场景。
    • 设为 false:即使会话建立,监听器继续保持运行,适用于需要持续监听的场景。
  2. ListenerTimeout

    • 设为 0:表示无限等待目标机连接。
    • 设为具体秒数(如 60):表示超过指定时间后,监听会自动停止。
  3. WfsDelay

    • 设置为 2:等待 2 秒以确保会话的稳定性。
    • 在某些情况下,增加该值可以有效避免会话连接不稳定的问题。

2. Payload 高级选项解析

对于不同的 Payload(如 generic/shell_reverse_tcp),Metasploit 提供了多个高级选项以调整其行为:

参数当前值必需描述
ARCH指定目标架构(如 x86、x64)
PLATFORM指定目标操作系统(如 Windows、Linux)
ReverseAllowProxyfalse是否允许绕过代理直接连接 LHOST
ReverseListenerBindAddress指定本地监听 IP 地址
ReverseListenerBindPort指定本地监听端口(与 LPORT 不同)
ReverseListenerComm指定监听的通信通道
ReverseListenerThreadedfalse是否为每个连接启动独立线程
StagerRetryCount10Stager 失败时的最大重试次数
StagerRetryWait5Stager 失败后的重试等待时间(秒)
VERBOSEfalse是否启用详细日志
WORKSPACE指定 Metasploit 工作空间

关键参数解释

  1. ReverseAllowProxy

    • 设为 true:允许目标机通过代理直接访问 LHOST,但不经过代理。
    • 设为 false:默认设置,不使用代理。
  2. ReverseListenerBindAddressReverseListenerBindPort

    • ReverseListenerBindAddress:用于指定监听的特定 IP 地址,默认为 0.0.0.0(所有接口监听)。
    • ReverseListenerBindPort:指定监听端口,与 LPORT 不同。
  3. ReverseListenerThreaded

    • 设为 true:为每个反向连接创建独立的线程,适用于高并发环境。
    • 设为 false:默认设置,单线程处理连接。
  4. StagerRetryCount & StagerRetryWait

    • StagerRetryCount:失败时最多重试 10 次。
    • StagerRetryWait:每次失败后等待 5 秒后重试。

3. 高级选项最佳实践

① 持续监听多个连接

如果希望 multi/handler 持续监听多个连接,即使某些会话已经建立,可以设置:

set ExitOnSession false

这样,multi/handler 在处理一个会话后仍会保持运行,等待更多目标连接。

② 设置监听超时

如果希望监听器在一定时间后自动停止(例如 5 分钟),可以设置:

set ListenerTimeout 300

这样,如果 5 分钟内没有新会话建立,监听器会自动退出。

③ 避免监听端口冲突

如果监听端口可能会被占用,可以手动指定一个新的端口:

set ReverseListenerBindPort 4445

这样,multi/handler 会在 4445 端口监听,而非默认的 LPORT

④ 提高 Stager 的连接稳定性

如果网络环境不稳定,可以增加 StagerRetryCountStagerRetryWait,例如:

set StagerRetryCount 20
set StagerRetryWait 10

这将使 Stager 在失败时最多重试 20 次,每次等待 10 秒。


总结

  • multi/handler 的高级选项 能够根据需求优化监听行为,如设置是否持续监听、监听超时、会话延迟等。
  • Payload 的高级选项 提供了更多的控制,如反向连接的行为设置、是否启用代理、线程管理以及 Stager 的重试策略等。
  • 通过合理调整这些选项,可以显著提高渗透测试的效率和稳定性,确保成功率最大化。

希望这篇文章能为你在渗透测试过程中提供一些新的思路和技巧。


番外:msfvenom 生成的普通 Shell 交互性为何更强?

在近期的靶机渗透中,我发现 msfvenom 生成的普通 shell 交互性显著提升,甚至能够直接运行 Mimikatz。相比于传统的 shell 会话,如 cmd.exepowershell.exe,现在的 payload 在 控制、交互、管理 方面都有了质的飞跃,同时 可变性更强、兼容性更好、Handler 监听稳定

以下是 msfvenom 生成的普通 Shell 提升的几个方面(AI生成,仅供参考):

1 进程继承与权限优化

  • 传统的 cmd.exe shell 受限于父进程权限,许多高权限操作(如 mimikatz)无法执行,必须手动提权或迁移进程。
  • 现在,msfvenom 生成的 payload 采用 进程继承优化,当 cmd.exe 运行时,它会继承父进程权限,使得 session 的权限与被攻击进程一致。
  • 结果: 只要目标进程本身是 SYSTEM 权限或管理员权限,那么 shell 也能直接调用 mimikatzwhoami /priv 等敏感命令,而不需要 getsystem 之类的额外操作。

2 Shell I/O 交互性增强

  • 以往 shell 由于 sttypty 机制的缺失,导致 tab 补全、交互式命令(如 python shell)使用困难。
  • 现在的 msfvenom payload 通过改进 stdin/stdout 传输方式,使得 命令回显更流畅、交互式工具兼容性更好,基本不需要额外调整 stty raw -echo 之类的参数。
  • 结果: 可以直接运行 powershell.execmd.exe,甚至交互式 Python shell,无需像过去那样进行 python -c "import pty; pty.spawn('/bin/bash')" 这样的调整。

3 传输层改进,抗杀软能力提升

  • 现代杀软(EDR)对于 meterpreter 监测非常敏感,而传统 shell 由于没有复杂的 C2 通信协议,存活率更高。
  • msfvenom 生成的 reverse_tcp shell 更贴近合法流量,不像 meterpreter 那样会暴露 stdapipriv 等模块,从而大大降低了被查杀的可能性。
  • 结果: 反向 shell 更稳定,EDR 误报率降低,不容易被发现。

4 兼容性更强,支持更多目标环境

  • msfvenom 的 payload 现在可以兼容 更多平台,比如 Windows、Linux、MacOS,甚至 IoT 设备。
  • 可以灵活生成 EXEDLLPS1BATELFPython 等格式的 payload,适配不同目标系统。
  • 结果: 可以针对不同目标快速生成合适的 payload,适用范围更广。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2309402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WPF高级 | WPF 应用程序部署与发布:确保顺利交付到用户手中

WPF高级 | WPF 应用程序部署与发布:确保顺利交付到用户手中 一、前言二、部署与发布基础概念2.1 部署的定义与目的2.2 发布的方式与渠道2.3 部署与发布的关键要素 三、WPF 应用程序打包3.1 使用 Visual Studio 自带的打包工具3.2 使用第三方打包工具 四、发布到不同…

Spring MVC 程序开发(1)

目录 1、什么是 SpringMVC2、返回数据2.1、返回 JSON 对象2.2、请求转发2.3、请求重定向2.4、自定义返回的内容 1、什么是 SpringMVC 1、Tomcat 和 Servlet 分别是什么?有什么关系? Servlet 是 java 官方定义的 web 开发的标准规范;Tomcat 是…

C# Unity 唐老狮 No.4 模拟面试题

本文章不作任何商业用途 仅作学习与交流 安利唐老狮与其他老师合作的网站,内有大量免费资源和优质付费资源,我入门就是看唐老师的课程 打好坚实的基础非常非常重要: 全部 - 游习堂 - 唐老狮创立的游戏开发在线学习平台 - Powered By EduSoho 如果你发现了文章内特殊的字体格式,…

Protocol Buffers在MCU上的nanopb介绍及使用详解

在嵌入式系统和资源受限的环境中,传统的Protocol Buffers 可能显得过于庞大。因此,nanopb 应运而生,它是一个轻量级的 Protocol Buffers 生成器,专为嵌入式系统设计c语言设计。本文将介绍如何安装和使用 nanopb,以及通…

(十 二)趣学设计模式 之 享元模式!

目录 一、 啥是享元模式?二、 为什么要用享元模式?三、 享元模式的实现方式四、 享元模式的优缺点五、 享元模式的应用场景六、 总结 🌟我的其他文章也讲解的比较有趣😁,如果喜欢博主的讲解方式,可以多多支…

Trae:国内首款AI原生IDE,编程效率大提升

今年一月,在新闻上看到字节跳动面向海外市场推出了一款名为Trae的AI集成开发环境(IDE)。起初,我并未给予过多关注,因为市面上已有不少IDE集成了AI插件,功能也非常全面,而字节跳动自家的MarsCode…

RocketMQ定时/延时消息实现机制

RocketMQ 的延迟消息是其核心特性之一,允许消息在指定延迟时间后才被消费者消费。 定时消息生命周期 一、延迟消息的核心机制 RocketMQ(5.0之前) 不支持任意时间精度的延迟,而是通过预定义的 延迟级别(Delay Level&a…

基于SpringBoot的校园二手交易平台(源码+论文+部署教程)

运行环境 校园二手交易平台运行环境如下: • 前端:Vue • 后端:Java • IDE工具:IntelliJ IDEA(可自行更换) • 技术栈:SpringBoot Vue MySQL 主要功能 校园二手交易平台主要包含前台和…

利用 LangChain 和一个大语言模型(LLM)构建一个链条,自动从用户输入的问题中提取相关的 SQL 表信息,再生成对应的 SQL 查询

示例代码: from langchain_core.runnables import RunnablePassthrough from langchain.chains import create_sql_query_chain from operator import itemgetter from langchain.chains.openai_tools import create_extraction_chain_pydantic# 系统消息&#xff…

力扣hot 100之矩阵四题解法总结

本期总结hot100 中二维矩阵的题,时空复杂度就不分析了 1.矩阵置零 原地标记,用第一行和第一列作为当前行列是否为0的标记,同时用两个标签分别记录0行、0列的标记空间中原本是否有0 class Solution:def setZeroes(self, matrix: List[List[…

在Linux上使用APT安装Sniffnet的详细步骤

一、引言 Sniffnet 是一款开源的网络流量监控工具,适用于多种Linux发行版。如果你的Linux系统使用APT(Advanced Package Tool)作为包管理器,以下是如何通过APT安装Sniffnet的详细步骤。 二、系统要求 在开始安装之前&#xff0…

zookeeper-docker版

Zookeeper-docker版 1 zookeeper概述 1.1 什么是zookeeper Zookeeper是一个分布式的、高性能的、开源的分布式系统的协调(Coordination)服务,它是一个为分布式应用提供一致性服务的软件。 1.2 zookeeper应用场景 zookeeper是一个经典的分…

StableDiffusion本地部署 3 整合包猜想

本地部署和整合包制作猜测 文章目录 本地部署和整合包制作猜测官方部署第一种第二种 StabilityMatrix下载整合包制作流程猜测 写了这么多python打包和本地部署的文章,目的是向做一个小整合包出来,不要求有图形界面,只是希望一键就能运行。 但…

数据结构(初阶)(七)----树和二叉树(前中后序遍历)

实现链式结构的二叉树 实现链式结构的二叉树遍历前序遍历中序遍历后序遍历 节点个数叶子节点个数⼆叉树第k层结点个数⼆叉树的深度/⾼度查找值为X的节点二叉树的销毁 层序遍历判断二叉树是否为完全二叉树 ⽤链表来表⽰⼀棵⼆叉树,即⽤链来指⽰元素的逻辑关系。 通常…

科技赋能筑未来 中建海龙MiC建筑技术打造保障房建设新标杆

近日,深圳梅林路6号保障房项目顺利封顶,标志着国内装配式建筑领域又一里程碑式突破。中建海龙科技有限公司(以下简称“中建海龙”)以模块化集成建筑(MiC)技术为核心,通过科技创新与工业化建造深…

json介绍、python数据和json数据的相互转换

目录 一 json介绍 json是什么? 用处 Json 和 XML 对比 各语言对Json的支持情况 Json规范详解 二 python数据和json数据的相互转换 dumps() : 转换成json loads(): 转换成python数据 总结 一 json介绍 json是什么? 实质上是一条字符串 是一种…

计算机毕设JAVA——某高校宿舍管理系统(基于SpringBoot+Vue前后端分离的项目)

文章目录 概要项目演示图片系统架构技术运行环境系统功能简介 概要 网络上许多计算机毕设项目开发前端界面设计复杂、不美观,而且功能结构十分单一,存在很多雷同的项目:不同的项目基本上就是套用固定模板,换个颜色、改个文字&…

Spring Boot 测试:单元、集成与契约测试全解析

一、Spring Boot 分层测试策略 Spring Boot 应用采用经典的分层架构,不同层级的功能模块对应不同的测试策略,以确保代码质量和系统稳定性。 Spring Boot 分层架构: Spring Boot分层架构 A[客户端] -->|HTTP 请求| B[Controller 层] …

Oracle 数据库基础入门(四):分组与联表查询的深度探索(上)

在 Oracle 数据库的学习进程中,分组查询与联表查询是进阶阶段的重要知识点,它们如同数据库操作的魔法棒,能够从复杂的数据中挖掘出有价值的信息。对于 Java 全栈开发者而言,掌握这些技能不仅有助于高效地处理数据库数据&#xff0…

机器学习的起点:线性回归Linear Regression

机器学习的起点:线性回归Linear Regression 作为机器学习的起点,线性回归是理解算法逻辑的绝佳入口。我们从定义、评估方法、应用场景到局限性,用生活化的案例和数学直觉为你构建知识框架。 回归算法 一、线性回归的定义与核心原理 定义&a…