Tomcat8弱口令+后台getshell
漏洞原因
用户权限在conf/tomcat-users.xml
文件中配置:
<?xml version="1.0" encoding="UTF-8"?> <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script" /> </tomcat-users>
可以看出,tomcat用户具有上述所有权限,密码为tomcat
。
默认情况下,通过常规安装在Tomcat8中没有用户,并且管理器页面仅允许访问本地IP。只有管理员手动修改了这些属性,我们才可以发起攻击。
前提条件
Tomcat版本8.0 默认安装是没有用户的,密码是tomcat
修复方案:
1、在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录)。
2、增加对于本地和基于证书的身份验证,部署账户锁定机制(对于集中式认证,目录服务也要做相应配置)。在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制。
3、以及针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制。
环境搭建
https://github.com/vulhub/vulhub/tree/master/tomcat/tomcat8
复现
1. 打开tomcat管理页面http://your-ip:8080/manager/html
,输入弱密码tomcat:tomcat
,然后访问后端:
2.制作war包
先将jsp大马压缩为zip,再将zip后缀改名为war,然后上传war包
3. 底部直接上传war包
上传完直接访问/test/test.jsp 就会看到你上传的马,执行命令即可