Tomcat7弱口令+文件上传
漏洞介绍
漏洞名称为:Tomcat7&弱口令&后台getshell漏洞
漏洞环境:Apache Tomcat/8.0.43
漏洞利用:Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下,但是,在tomcat中需要用户拥有一些权限才可以部署war包到web目录下,下面会详细介绍;
漏洞限制:正常安装的情况下,tomcat8中默认没有任何用户,且manager页面只允许本地IP访问。所以只有管理员手工修改了这些属性的情况下,才可以进行攻击。
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官方文档:http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html
在tomcat-users.xml
文件中可以去配置用户的权限
<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中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。
漏洞复现
启动环境
docker-compose up -d
环境启动成功后,输入http://your-ip:8080
即可看到tomcat
界面
弱口令
直接字典爆破就爆出来了,我就不演示了;进入tomcat后台管理界面http://your-ip:8080/manager/html
用户名:tomcat
密码:tomcat
文件上传getshell
tomcat后台管理界面,翻到最下面即可看到war包上传按钮
上传包含jsp马的war包,冰蝎连接即可getshell;我的war包名字为shell.war
可以看到这里多了一条/shell的路径,我们的马就在这条路径下面,为
http://192.168.157.128:8080/shell/shell.jsp
修复建议
1、在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限(例如不允许远程登录)。
2、增加对于本地和基于证书的身份验证,部署账户锁定机制(对于集中式认证,目录服务也要做相应配置)。在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制。
3、以及针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制。
END
因为热爱 所以聚集
在计协 遇见更好的自己
编辑 | 张超祥
审核 | 李翠碧
喜欢本文就给我点个赞吧!