复制代码

16.Tomcat弱口令 && 后台getshell漏洞

Tomcat7+ 弱口令 && 后台getshell漏洞

Tomcat版本:8.0

环境说明

Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。

Tomcat7+权限分为:

  • manager(后台管理)
    • manager-gui 拥有html页面权限
    • manager-status 拥有查看status的权限
    • manager-script 拥有text接口的权限,和status权限
    • manager-jmx 拥有jmx权限,和status权限
  • host-manager(虚拟主机管理)
    • admin-gui 拥有html页面权限
    • admin-script 拥有text接口权限

这些权限的究竟有什么作用,详情阅读 http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html

用户tomcat拥有上述所有权限,密码是tomcat

正常安装的情况下,tomcat8中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。

 

这篇文章其实跟我上一篇:12.Weblogic 弱口令 && 后台getshell漏洞 都是一样的套路,只是tomcat中间件使用较多,所以需要拿出来另外复现

上篇文章有的小白问为什么需要上传war包,为什么不是tar.zip一类的,这里做一个说明:

war包是用来进行Web开发时一个网站项目下的所有代码,包括前台HTML/CSS/JS代码,以及后台JavaWeb的代码。

当开发人员开发完毕时,就会将源码打包给测试人员测试,测试完后若要发布则也会打包成War包进行发布。War包

可以放在Tomcat下的webapps或word目录,当Tomcat服务器启动时,War包即会随之解压源代码来进行自动部署。

我们依旧使用docker搭建漏洞靶场环境,一般来说tomcat默认应该是在8080端口,

打开tomcat管理页面 http://192.168.0.132:8080/manager/html,就是我们正常访问tomcat页面:

输入弱密码 tomcat:tomcat,即可访问后台:

先将jsp大马压缩为zip,再将zip后缀改名为war,然后上传war包:

点击上传:

 

可以发现我们已经上传成功!

我们尝试访问:http://192.168.0.132:8080/bmjoker/bmjoker.jsp

成功访问我们上传的jsp大马!

这只是一种拿shell的方法,下面我用msfconsole来getshell,当然首先要选对模块 :exploit/multi/http/tomcat_mgr_upload

这里发现已经可以成功反弹shell,尝试用msfvenom来作一个后门

复制下面的木马,在靶机里面写成.sh文件格式,毕竟.sh是linux的可执行文件

执行,并在本机开启端口监听:

可以看到shell已经反弹成功

 

修复方案:

1、在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录)。

2、增加对于本地和基于证书的身份验证,部署账户锁定机制(对于集中式认证,目录服务也要做相应配置)。在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制。

3、以及针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制。

 

posted @ 2018-11-01 21:27  bmjoker  阅读(17796)  评论(0编辑  收藏  举报