4ra1n / tomcat-jmxproxy-rce-exp介绍

749 阅读2分钟

tomcat-jmxproxy-rce-exp

该工具仅用于安全研究。禁止使用该工具发起非法攻击,造成的后果由使用者负责。

工具仅用于安全研究以及内部自查,禁止使用工具发起非法攻击,造成的后果使用者负责。

关于

介绍一下。Apache Tomcat JMXProxy RCE

我一发现这个漏洞就向Apache Tomcat报告了,但是Apache Tomcat安全小组认为这不是一个安全漏洞,所以它是开放的。

我理解这不是Tomcat负责的安全问题,但存在很高的安全风险。

该漏洞是基于Tomcat 中的JMXProxyServlet ,与Spring4Shell类似。

Tomcat 中的JMXProxyServlet ,提供JMX监控的相关功能。但是,访问它需要基本认证,所以一般情况下很难利用它。

漏洞很难直接利用,需要很高的前提条件,但是第三方的JMX管理平台可以绕过基本认证,然后轻松实现RCE。如果JMX管理平台可以匿名访问或者有未经授权的访问漏洞,就可以绕过。

为什么我认为这是个漏洞。

  • 一般来说,JMX接口不可能有RCE,它只是一个监控和管理平台或接口。
  • 但是,我可以通过JMX接口编写webshell来实现RCE漏洞,这是一个意想不到的行为
  • 很明显,manager/html ,可以直接RCE,但通过RCE原则上是不可能的manager/jmxproxy

受影响的。

  • Apache Tomcat 所有版本
  • 与JDK所有版本
  • SpringBoot FarJar不受影响

漏洞条件1

  • 目标必须打开jmxproxy管理器
  • 黑客可以访问jmxproxy

攻击条件2

  • 目标必须有JMX管理平台(MX4J 或其他)
  • 黑客可以访问该平台

攻击条件3

  • 目标必须打开jmxproxy
  • 基于csrf漏洞

漏洞-1

编辑。conf/tomcat-user.xml

<user username="admin" password="123456" roles="manager-jmx"/>

修改config.ini 文件

# target ip
host=127.0.0.1
# target port
port=8080
# target tomcat jmxproxy username
username=admin
# target tomcat jmxproxy password
password=123456
# execute command
cmd=calc.exe

漏洞。./tomcat-jmxproxy-rce-exp

漏洞-2

如果JMX管理平台(MX4J 和其他)可以未经授权访问,直接修改AccessLogValve MBean属性,进行RCE攻击

漏洞-3

csrf+rce / xss+csrf+rce

在Apache Tomcat文档中。

"HTML接口受到保护,可以防止CSRF(跨站请求伪造)攻击,但文本和JMX接口不能被保护。"

所以我们可以用CSRF / XSS+CSRF进行攻击