笔记-CVE-2017-12615 Tomcat远程上传漏洞复现

前言:人无名,方可专心练剑!本着多实践的本意去复现漏洞!

0x01 介绍

漏洞名称:CVE-2017-12615-远程代码执行漏洞

详情:当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 文件,JSP文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限。

通过以上两个漏洞可在用户服务器上执行任意代码,从而导致数据泄露或获取服务器权限,存在高安全风险。

0x02 环境准备

复现目标:将任意的文件上传到目标web服务器,并取得web服务器root权限的shell即可;

环境配置:java 1.6 tomcat7.0.20, 漏洞描述中,环境为Windows,本人在此处使用Linux环境测试,并在配置文件中,开启put方法,按照漏洞详情的描述进行配置文件配置,如下图:

Web.xml配置开启上传功能,如下图所示:

开启服务,并访问192.168.8.88:8080,如下图:

环境准备完毕!

0x03 漏洞复现测试

1.设置代理,并拦截到数据包,将方法及传送内容替换为webshell,上传给服务器,为了实现web服务器的控制,我们可以利用msf生成payload,名为shell.jsp,如下图所示,

2.在bp中开启代理拦截到web服务器的数据包,然后构造PUT方法的数据包,将shell.jsp内容上传,如下图所示:

3.返回201,上传文件并创建成功,在kali中开启监听7777端口,因为在payload中设置的反弹shell的端口为7777,如下图所示:

4.然后在浏览器中访问上传的shell.jsp文件,http://192.168.8.88:8080/shell.jsp,如下图所示:

注:在这之前需要对tomcat的目录,工作情况有一个详细的了解,这样才能准确知道web目录结构及文件上传位置,也便于测试。

然后回到kali中,看到返回了shell,如下图所示,

在获得的shell中,我们可以看到权限情况,及/etc/shadow文件内容,这给我们破解root密码提供了可能,亦或者添加root用户,对于后渗透测试阶段的后门,权限维持有很大的帮助,shell权限如下:

到此,已经获得服务器的最高权限root,对于后续的权限维持与数据获取,我们将不再继续往下进行,此处的复现演示只是为了警示远程代码执行漏洞的危害,为了提醒相关技术人员做好服务器的安全,也记录一下自己的测试学习过程。

最后,还请大家遵守相关法律法规,未经允许请勿随意测试互联网生产环境!!

0x04 总结

1. 更改配置文件,禁用put方法

此种限制虽然临时堵上了漏洞,但对于使用put方法上传附件的web应用程序来说,应用系统的上传功能遭到破坏;

2.部署应用程序时,使用较低权限的用户

增加攻击者攻击难度,在获得低权限时,恶意者还需要利用系统漏洞来配合提升权限,因此用低权限用户部署程序,并及时更新系统补丁,来保护服务;

3. 及时更新中间件版本,升级到7.0.81以上版本

对于服务器中间件的漏洞来说,通常需要及时更新web中间件,及时更新并测试,然后进行更新,重新发布web应用程序。

因此,在信息安全通告中公告的漏洞,要及时检查更新,并随着版本的变化而升级自己的程序,如果你比恶意者晚一步,您的服务器早已成了恶意者的羔羊!

最后,欢迎大家关注!哈哈!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181204G11WLL00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券