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

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,适用范围更广。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【前端】在WebStorm中安装Node.js与nvm与npm的详细过程

文章目录 一、Node.js安装二、nvm安装三、验证安装成功总结 一、Node.js安装 首先到node.js官网下载安装文件。 https://nodejs.org/zh-cn 直接运行安装文件进行安装: 跳过继续安装: 完成安装: 完成后的安装路径: 环境变量的…

广域互联方案与技术概述

《广域互联方案与技术概述》属于博主的“广域网”专栏,若想成为HCIE,对于广域网相关的知识需要非常了解,更多关于广域网的内容博主会更新在“广域网”专栏里,请持续关注! 一.前言 广域网有着悠久的历史,广…

华硕电脑开启电池保养模式的方法

华硕电脑开启电池保养模式的方法 打开华硕电脑管家(可以桌面左下角搜索MyASUS打开)进入首页(可以不注册,点击跳过,进入首页),点击电池: 之后在新的页面点击电池保养模式: 开启电池保养模式

一键安装Mysql部署脚本之Linux在线安装Mysql,脚本化自动化执行服务器部署(附执行脚本下载)

相关链接 一键安装Redis部署脚本之Linux在线安装Redis一键安装Mysql部署脚本之Linux在线安装Mysql一键安装JAVA部署脚本之Linux在线安装JDK一键安装Nginx部署脚本之Linux在线安装NginxNavicat最新版(17)详细安装教程Xshell客户端免费版无需注册XFtp客户端免费版无需注册 前言…

JavaScript阻塞

JS对DOM树的阻塞 DOM的定义:文档对象模型,是JS操作网页的接口,指代页面中的元素。DOM树的定义:是指元素与元素之间的关系,可以指页面的结构。 JS在执行时会阻塞DOM树的结构,此时DOM树是不完整的&#xff0…

Mysql进阶(一)

1. 在ubuntu下安装MySQL数据库 1.1 查看操作系统版本 操作系统版本为Ubuntu22.04. LTS lsb_release -a; 安装成功之后,查看mysql的状态 1.2 查看mysql的状态 1.3 登录mysql mysql -uroot -p; 1.4 退出mysql quit; exit; 2. mysql 程序的…

安卓基础组件Looper - 03 java层面的剖析

文章目录 workflow工作线程 准备Looper创建LooperActivity主线程其他情况 Looper.prepare()大体流程java申请Loopernew LooperMessageQueue初始化 nativejniNativeMessageQueue Looper.loop()大体流程java获取Looper获取msg,处理msgLooper.loop()Looper.loopOnce &a…

DataStructsRECITE

1、绪论 什么是数据结构? 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 数据结构包括三个方面:逻辑结构、存储结构、数据的运算。 逻辑结构有: 集合(数据元素除属于“同一个集合”外,别无其他关系…

自然语言处理:朴素贝叶斯

介绍 大家好,博主又来和大家分享自然语言处理领域的知识了。按照博主的分享规划,本次分享的核心主题本应是自然语言处理中的文本分类。然而,在对分享内容进行细致梳理时,我察觉到其中包含几个至关重要的知识点,即朴素…

【542. 01 矩阵 中等】

题目: 给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入:mat [[0,0,0],[0,1,0],[0,0,0]] 输出…

深入浅出:Spring AI 集成 DeepSeek 构建智能应用

Spring AI 作为 Java 生态中备受瞩目的 AI 应用开发框架,凭借其简洁的 API 设计和强大的功能,为开发者提供了构建智能应用的强大工具。与此同时,DeepSeek 作为领先的 AI 模型服务提供商,在自然语言处理、计算机视觉等领域展现了卓…

Vue 系列之:基础知识

什么是 MVVM MVVM(Model-View-ViewModel)一种软件设计模式,旨在将应用程序的数据模型(Model)与视图层(View)分离,并通过 ViewModel 来实现它们之间的通信。降低了代码的耦合度。 M…

辛格迪客户案例 | 鼎康生物电子合约系统(eSign)项目

01 案例企业 鼎康(武汉)生物医药有限公司于2013年06月19日成立 ,是一家总部位于湖北武汉的CDMO公司,坚持以客户为中心,以及时、经济和高质量为服务导向。鼎康生物拥有先进的150,000平方英尺的生产厂房,生产设施位于中国武汉的Bio…

QT-对象树

思维导图 写1个Widget窗口&#xff0c;窗口里面放1个按钮&#xff0c;按钮随便叫什么 创建2个Widget对象 Widget w1,w2 w1.show() w2不管 要求&#xff1a;点击 w1.btn ,w1隐藏&#xff0c;w2显示 点击 w2.btn ,w2隐藏&#xff0c;w1 显示 #include <QApplication> #inc…

【笔记】用大预言模型构建专家系统

最近闲庭漫步&#xff0c;赏一赏各个AI大语言模型芳容。也趁着时间&#xff0c;把倪海夏一家的天纪和人纪视频看完了&#xff0c;感谢倪先生和现在网络的知识分享&#xff0c;受益匪浅。但是发现看完&#xff0c;很多不错的知识都不能记录在脑子里&#xff0c;那用的时候岂不是…

0086.基于springboot+vue的企业OA管理系统+论文

一、系统说明 基于springbootvue的企业OA管理系统,系统功能齐全, 代码简洁易懂&#xff0c;适合小白学编程。 2600套项目源码&#xff0c;总有适合您的&#xff01; 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍…

数据集笔记:新加坡停车费

data.gov.sg 该数据集包含 新加坡各停车场的停车费&#xff0c;具体信息包括&#xff1a; 停车场名称&#xff08;Carpark&#xff09;&#xff1a;如 Toa Payoh Lorong 8、Ang Mo Kio Hub、Bras Basah Complex 等。停车区域类别&#xff08;Category&#xff09;&#xff1a…

初阶数据结构(C语言实现)——3顺序表和链表(2)

2.3 数组相关面试题 原地移除数组中所有的元素val&#xff0c;要求时间复杂度为O(N)&#xff0c;空间复杂度为O(1)。OJ链接 力扣OJ链接-移除元素删除排序数组中的重复项。力扣OJ链接-删除有序数组中的重复项合并两个有序数组。力扣OJ链接-合并两个有序数组 2.3.1 移除元素 1…

Java实现pdf文件压缩(aspose-pdf实现压缩、itextpdf去除aspose-pdf版权水印)

Java实现pdf文件压缩 时间换空间&#xff0c;实现pdf文件无损压缩。 1、依赖准备 市面上操作pdf文件的组件有spire.pdf.free、itextpdf、openpdf、pdfbox等&#xff0c;它们各有千秋。我们主要完成的场景为压缩&#xff0c;减少文件大小去优化存储、传输等。 在这里选取的组件…

基于Spring Boot的产业园区智慧公寓管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…