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
漏洞-2
如果JMX管理平台(MX4J 和其他)可以未经授权访问,直接修改AccessLogValve MBean属性,进行RCE攻击
漏洞-3
csrf+rce / xss+csrf+rce
在Apache Tomcat文档中。
"HTML接口受到保护,可以防止CSRF(跨站请求伪造)攻击,但文本和JMX接口不能被保护。"
所以我们可以用CSRF / XSS+CSRF进行攻击