漏洞介绍
名称:Tomcat-pass-getshell 弱口令
描述: Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。 通过弱口令登录后台,部署war包geshell
解题过程
1.打开题目环境,测试环境为Apache Tomcat/8.0.43
2.既然是弱口令,那首先要先尝试登陆,点击 Manager App
3.弹出登陆窗口
4.尝试弱口令tomcat/tomcat
5.登陆成功:
可以在上图红方框内下面的上传处进行war文件上传,上传后会自动解压
6.制作war包
先将 jsp 大马压缩为 zip,再将zip后缀改名为 war,然后上传 war 包:
输入传入的路径并访问,然后输入传入木马的密码
访问/tmp目录,得到flag
漏洞分析
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接口权限
用户tomcat拥有上述所有权限,密码是tomcat
正常安装的情况下,tomcat8中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。
那为什么需要上传war包,为什么不是tar.zip一类的呢?
war包是用来进行Web开发时一个网站项目下的所有代码,包括前台HTML/CSS/JS代码,以及后台JavaWeb的代码。
当开发人员开发完毕时,就会将源码打包给测试人员测试,测试完后若要发布则也会打包成War包进行发布。War包
可以放在Tomcat下的webapps或word目录,当Tomcat服务器启动时,War包即会随之解压源代码来进行自动部署。
修复方案:
1、在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录)。
2、增加对于本地和基于证书的身份验证,部署账户锁定机制(对于集中式认证,目录服务也要做相应配置)。在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制。
3、以及针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制。