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等目录页面设置最小权限访问限制。