前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Exploiting Jolokia Agent with Java EE Servers

Exploiting Jolokia Agent with Java EE Servers

作者头像
云鼎实验室
发布于 2018-04-02 07:28:29
发布于 2018-04-02 07:28:29
1.8K0
举报

0x00 - About Jolokia

Jolokia 是一个通过 HTTP 的 JMX 连接器,提供了类 RESTful 的操作方式,可以通过 POST JSON 的方式访问和修改 JMX 属性、执行 JMX 操作、搜索 MBean、列出 MBean 的 Meta-data 等。

Jolokia 支持提供了多种 Agents,包括 WAR Agent、OSGi Agent、JVM Agent 或者 Mule Agent。其中 WAR Agent 支持了多种 Web Server:

  • JBoss 4.2.3, 5.1.0, 6.1.0, 7.0.2, 7.1.1, 8.0.0
  • Oracle WebLogic 9.2.3.0, 10.0.2.0, 10.3.6.0
  • Glassfish 2.1.1, 3.0.1, 3.1.2, 4.0.0
  • IBM Websphere 6.1.0.33, 7.0.0.11, 8.0.0.1, 8.5
  • Apache Tomcat 5.5.35, 6.0.37, 7.0.52, 8.0.3
  • Jetty 5.1.15, 6.1.26, 7.6.9, 8.1.9, 9.1.2
  • Resin 3.1.9
  • Jonas 4.10.7, 5.1.1, 5.2.1
  • Apache Geronimo 2.1.6, 2.2.1, 3.0.0
  • Spring dm Server 2.0.0.RELEASE
  • Eclipse Virgo 2.1.0

通过 Jolokia,可以方便的操作 MBean,通过 GET 的例子:

或者 POST 一个 JSON:

Jolokia 支持 READ、WRITE、SEARCH、EXEC、LIST 等操作,具体可以参考官方文档:https://jolokia.org/reference/html/index.html 。

0x01 - Jolokia Security Issues

1. JNDI Injection

Jolokia 支持一个叫做代理模式(Proxy Mode)的东西,是为了解决不能将 Jolokia Agent 部署在目标平台上的问题。具体架构如下:

可以通过向 Jolokia 发送 POST 请求来触发:

熟悉 Java 安全的朋友可能会注意到,这里可能有一个 JNDI 注入。的确,在 WAR Agent 的情况下,此处存在一个 JNDI 注入,问题发生在 agent\jsr160\src\main\java\org\jolokia\jsr160\Jsr160RequestDispatcher.java

当 Web Container 将请求的交由 Jsr160RequestDispatcher 处理时,Jolokia Agent 创建连接,导致 JNDI 注入。在 WAR Agent 里,默认是由 Jsr160RequestDispatcher 处理的,这一点在 web.xml 也有体现:

那么,攻击者只需发送一个带有 Evil JMXRMI 的地址的 JSON,即可利用 JNDI 在目标机器上执行命令。

2. Information Disclosure

Jolokia 中有一个默认注册的 MBean:com.sun.management:type=HotSpotDiagnostic ,这个 MBean 中存在 dumpHeap 方法,可以 dump 内存到指定的目录。同时在低版本的 Java 中(比如 1.8.0_11),导出的文件名可以设置任意名称,而非 .hprof 后缀。

下载后可以通过分析文件获取一些敏感信息:

如上图就获得了 Tomcat 管理员的账号密码,可以通过部署 WAR 文件的方式进行 getshell。

0x02 - Tomcat with Jolokia

1. DoS

部署了 Jolokia 后,可以访问 /jolokia/list 查看可用的 MBean,通过翻阅可以发现 Tomcat + Jolokia 的情况下存在一些敏感操作,比如关闭服务:

这样会造成 DoS,虽然没啥用。

2. Create Admin Account

问题在 User:database=UserDatabase,type=UserDatabase 下,其包括了 createRolecreateUser 等操作,攻击流程为:

接着利用 test233 / test233 登陆即可。

0x03 - JBoss with Jolokia

1. DoS

关闭服务:

1. Deploy WAR

JBoss 中,通过 JMX Console 部署 WAR 是最为人所知的,JBoss 中的 jboss.system:service=MainDeployer 提供了这个方法。由于此方法是重载的,所以需要指定一个 signature,也就是下图的deploy(java.lang.String)

接着通过访问 /test 即可进入 webshell。

0x04 Others

Weblogic 暴露出很多 MBean,但是有一些方法存在限制:

可能会有其他的 MBean 可以进行操作,但是由于 MBean 繁多,没有太多精力去看。Jetty 没有暴露什么 MBean,所以暂时没有什么方法。ActiveMQ 有一些 MBean,粗略看了下没有发现什么问题,如果大家发现了,可以多多交流。

0x05 Reference

https://jolokia.org/reference/html/index.html

https://www.cvedetails.com/cve/CVE-2018-1000130/

写在最后:Jolokia 可以暴露出更多的攻击面,通过这些攻击面进行操作来获取更高的权限,本文仅仅分析了部分 Java EE Servers 所呈现出来的 MBean,但是由于 Jolokia 支持多种 Agent,所以暴露出的东西不止如此。

此外,这次分析仅仅是在业务层面上进行分析,没有跟进到源码层面。可能会有如下情况:某个 MBean 进行了 JNDI lookup,或者远程下载文件保存在本地,反序列化某一些内容等等,通过 Jolokia 进行操作可以二次利用这些问题来 RCE。这就需要具体情况具体分析了,本文如有错误,欢迎指正 :D

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云鼎实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2024年护网行动全国各地面试题汇总(3)作者:————LJS
盛透侧视攻城狮
2025/06/15
1020
Jolokia架构介绍 原
    虽然jolokia是为了满足JSR-160的要求,但是他和JSR-160连接器有巨大的差异。其中最引人注目的区别是jolokia传递数据是无类型的数据(说白了就是使用了Json数据传递,替代了RMI传递Java序列化数据的方式)。
随风溜达的向日葵
2018/08/15
2.2K0
Jolokia架构介绍
                                                                            原
Spring-Boot-Actuator漏洞利用总结
Spring Boot Actuator端点通过 JMX 和HTTP 公开暴露给外界访问,大多数时候我们使用基于HTTP的Actuator端点,因为它们很容易通过浏览器、CURL命令、shell脚本等方式访问。
半月弧
2020/05/19
4.7K1
Spring-Boot-Actuator漏洞利用总结
渗透测试-如何高效率挖掘漏洞
21、22、3306等远程端口,可使用超级弱口令工具或者railgun自带模块进行暴力破解
hyyrent
2022/12/26
1.4K0
渗透测试-如何高效率挖掘漏洞
JAVA安全之JMX攻防研究分析
JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架,JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用,我们可以将JMX理解为一个服务器,它能让客户端远程访问该服务器上运行的JAVA程序的API并通过相应的函数对该程序进行增删改查,运维人员常部署Zabbix、Cacti和Nagios对Tomcat、Weblogic等服务器进行监控时通常都是通过JMX访问Tomcat、Weblogic的方式实现,然后通过JVM的queryMBeans方法查询获取具体的Mbean(Thread、JVM、JDBC),根据Bean的属性值判断运行状态,本篇文章我们注意介绍JMX的相关基础知识以及风险点和攻击方式
Al1ex
2024/12/20
1450
JAVA安全之JMX攻防研究分析
性能监控之Telegraf+InfluxDB+Grafana实现JMX实时监控
性能测试需要监控服务端 JVM 信息,Java 虚拟机 (JVM) 提供操作管理和监测提供了一套完整框架,即 JMX(Java 管理扩展),我们需要做到采集其所暴露出来的性能指标。
高楼Zee
2019/10/17
2.6K1
干货|最全的Jboss漏洞复现笔记
JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。
HACK学习
2022/02/17
7K0
干货|最全的Jboss漏洞复现笔记
利用CodeSec代码审核平台深度扫描Log4j2漏洞
Log4j2 安全漏洞(编号 CVE-2021-44228)事件已经过去一个多月了,但它造成的危害影响却非常严重,各大软件安全厂商在第一时间针对此漏洞紧急做了补丁。
大尚
2022/02/09
1.2K0
利用CodeSec代码审核平台深度扫描Log4j2漏洞
老技术新谈,Java应用监控利器JMX(1)
The Java Management Extensions (JMX) API is a standard API for management and monitoring of resources such as applications, devices, services, and the Java virtual machine. The JMX technology was developed through the Java Community Process (JCP) as Java Specification Request (JSR) 3, Java Management Extensions, and JSR 160, JMX Remote API.——摘自官网定义。
一猿小讲
2019/08/23
7970
老技术新谈,Java应用监控利器JMX(1)
端口漏洞全集
web漏洞挖腻了?到客户现场找不到web漏洞?不然来试试各个端口中存在的漏洞吧。以下是本人在项目中整理的端口漏洞合计,可能不是很全欢迎各位大佬补充。
Khan安全团队
2020/05/06
1.7K0
内网渗透指南
使用端口扫描工具可以实现主机发现的功能,但也有些动作小的主机发现工具(Kali),可以有效的发现存活主机。自己写个 ping 的循环脚本也可以。
HACK学习
2019/08/07
3.2K0
Jboss漏洞利用总结
访问控制不严导致的漏洞 Jboss管理控制台 Jboss4.x jboss 4.x 及其之前的版本 console 管理路径为 /jmx-console/ 和 /web-console/ 。 jmx-console的配置文件为
黑白天安全
2020/08/04
6.5K0
Jboss漏洞利用总结
Java 中 RMI、JNDI、LADP、JRMP、JMX、JMS那些事儿(上)
之前看了SHIRO-721这个漏洞,然后这个漏洞和SHIRO-550有些关联,在SHIRO-550的利用方式中又看到了利用ysoserial中的JRMP exploit,然后又想起了RMI、JNDI、LDAP、JMX、JMS这些词。这些东西也看到了几次,也看过对应的文章,但把他们联想在一起时这些概念又好像交叉了一样容易混淆。网上的一些资料也比较零散与混乱,所以即使以前看过,没有放在一起看的话很容易混淆。下面是对RMI、JNDI、LDAP、JRMP、JMX、JMS一些资料的整理。
Seebug漏洞平台
2019/12/16
4.4K0
Java 中 RMI、JNDI、LADP、JRMP、JMX、JMS那些事儿(上)
Web中间件常见安全漏洞总结
来源 | https://www.lxhsec.com/2019/03/04/middleware
Bypass
2020/02/26
17K0
JAVA常见漏洞复现
Shiro550漏洞原理是Shiro框架提供了一种记住密码(Rememberme)的功能,用户登录成功后会生成经过加密的Cookie值,对Remembe的Cookie进行AES解密、Base64解密后再反序列化,就导致了反序列化RCE漏洞 。 Shiro<1.2.4版本,其使用的密钥为固定密钥Shiro550kPH+bIxk5D2deZiIxcaaaA==,这就更容易导致RCE漏洞
用户9691112
2023/05/18
1.8K0
JAVA常见漏洞复现
常见端口渗透总结[通俗易懂]
我们也可以结合其他的端口扫描工具,比如专门的3389、1433等等的端口扫描工具;
全栈程序员站长
2022/10/01
1.4K0
常见端口渗透总结[通俗易懂]
常见web中间件漏洞总结 | Tomcat Nginx JBoss
中间件,顾名思义,是作为中间存在的一层,它下层对接硬件平台、操作系统、系统软件,上层部署的是各个应用。
数说君
2023/01/04
2K0
Vert.x工具—使用Dropwizard Metrics对指标进行监控(Metrics使用教程)
    最近项目中需要针对Vert.x的运行效率进行监控,查阅Vert.x官文,发现目前提供了Dropwizard和Hawkular两种开箱即用的工具。本文将介绍使用Dropwizard Metrics实现Vert.x性能统计的过程(当然还有踩过的坑)。
随风溜达的向日葵
2018/08/15
3K0
Vert.x工具—使用Dropwizard Metrics对指标进行监控(Metrics使用教程)
Web中间件常见漏洞总结
IIS是Internet Information Services的缩写,意为互联网信息服务,是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是Windows NT版本的可选包,随后内置在Windows 2000、Windows XP Professional和Windows Server 2003一起发行,但在Windows XP Home版本上并没有IIS。IIS是一种Web(网页)服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。
FB客服
2019/05/09
4.6K0
Web中间件常见漏洞总结
内网渗透基础_内网穿透技术详解
一般内网安全检查使用第一种思路,实际的攻击2种思路结合实现。第二种思路,社工的比重更大一些
全栈程序员站长
2022/09/27
1.2K0
相关推荐
2024年护网行动全国各地面试题汇总(3)作者:————LJS
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档