vlambda博客
学习文章列表

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文件中可以去配置用户的权限

<?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中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。

漏洞复现

启动环境

docker-compose up -d

环境启动成功后,输入http://your-ip:8080即可看到tomcat界面

Tomcat7弱口令+文件上传

弱口令

直接字典爆破就爆出来了,我就不演示了;进入tomcat后台管理界面http://your-ip:8080/manager/html

用户名:tomcat
密码:tomcat

Tomcat7弱口令+文件上传

文件上传getshell

tomcat后台管理界面,翻到最下面即可看到war包上传按钮

Tomcat7弱口令+文件上传

上传包含jsp马的war包,冰蝎连接即可getshell;我的war包名字为shell.war

Tomcat7弱口令+文件上传

可以看到这里多了一条/shell的路径,我们的马就在这条路径下面,为

http://192.168.157.128:8080/shell/shell.jsp

Tomcat7弱口令+文件上传

修复建议

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

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

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






END




展技术 做实事 
因为热爱 所以聚集
在计协 遇见更好的自己
编辑 | 张超祥
审核 | 李翠碧

喜欢本文就给我点个赞吧!