tomcat 弱口令【tomcat8】

文章讲述了如何利用Tomcat的弱口令进行攻击,包括攻击条件、准备、过程。首先,攻击者需远程访问被修改配置的管理页面,然后使用工具如BurpSuite的Intruder模块进行爆破,获取用户名和密码。接着,攻击者部署恶意war包,通过上传含有jsp后门的war文件,实现系统控制。最后,通过特定URL连接到冰蝎以验证控制权。
摘要由CSDN通过智能技术生成

tomcat 弱口令

Tomcat支持后台部署War文件,默认情况下管理页面仅允许本地访问。

攻击条件

如果网站运维/开发人员手动修改配置文件中的信息允许远程IP进行访问(需求),且恶意攻击者拿到管理界面账户密码情况下,则可上传木马文件,控制系统。

攻击准备

  1. 先要配置好环境,我这里是用的云服务器搭建的docker环境,配置好可以直接访问,默认端口:8080
  2. 我这里的文件目录是/home/vulhub/tomcat/tomcat8。然后输入docker-compose up -d开启docker环境。
  3. 准备好bp,我这里用的是新版bp,也要准备好字典。

攻击过程

  1. 先进入网址:
    在这里插入图片描述

  2. 点击右侧manager app,会提示输入用户名和密码:
    在这里插入图片描述

  3. 这里我们输入123,123并打开bp抓包:
    在这里插入图片描述

  4. 并没有发现发送信息,但是在第4行发现basic ,典型base64加密,解密查看一下:
    在这里插入图片描述

  5. 到这里我们有理由怀疑这是承载用户名和密码的地方,两者用‘:’拼凑后再用base64加密。

  6. 我们发送到intruder
    在这里插入图片描述

intruder模块:

positions

  • 攻击类型
    在这里插入图片描述
    这里用的是狙击手,顾名思义,只能打一个目标。
    由于这里是采用的:“用户名:密码”再用base64加密的格式,所以就只有一个目标,而我们的目的就是拼凑出来这样的模式再利用base64加密完成。

  • 攻击对象
    在这里插入图片描述
    两个$符中间就是我们要爆破的地方。(只有一处)
    base64解码查看

payload

  • 设置爆破位置和字典方式:
    在这里插入图片描述
    这里需要拼接,因此我们选custom iterator

附:
Simple list:简单字典
Runtime file:运行文件
Custom iterator:自定义迭代器
Character substitution:字符替换
Recursive grep:递归查找
Illegal unicode:非法字符
Character blocks:字符块
Numbers:数字组合
Dates:日期组合
Brute forcer:暴力破解
Null payloads:空 payload
Username generator:用户名生成
copy other payload:复制其他 payload

  • 设置字典:
    在这里插入图片描述
    有一个好的字典就显得尤为重要,这里需要注意两处:
    第一:由于我们需要拼接用户名和密码,因此我们需要用到两个字典,图中position 1是指第一个字段用什么字典,position 2就是指第二个字段用什么字典,以此类推。
    第二:两者中间由“:”拼凑,因此我们需要在第一个位置后,增加分隔符。图中separator for position 1提供了这一功能,他的意思是,在第一个字典后增加符号。我们在此处填入“:”
  • 选择加密方式
    在这里插入图片描述
    点击add增添规则:
    在这里插入图片描述
    这里我们选加密,然后找到base64加密:
    在这里插入图片描述
  • 选择编码方式
    在刚开始捕获到的报文中可以看到,base64加密后,其末尾的“=”并没有转化程%3d,因此我们并不需要进行url-encode
    在这里插入图片描述

附:
Add Prefix:添加一个文字前缀
Add suffix:添加一个文字后缀
Match/replace:将替换匹配的正则表达式
Substring:截取字符串的长度0开始
Reverse substring:倒着匹配字符串
Modify case:切换字母的大小写
Encode:通过URL,HTML,Base64的,ASCII码或十六进制字符串对payload进行编码
Hash: 取payload的hash值,MD5、SHA-512等
Add raw payload:在编码后的payload上再加上原来的payload
Skip if matches regex:如果匹配到正则表达式就跳过去
Invoke Burp Extension:调用扩展

Resource pool

  • 线程数:
    在这里插入图片描述
    设置爆破的线程数及请求间隔。

设置完毕之后点击start attack开始攻击

在这里插入图片描述
等待少许,破解成功。
将其解码发现:
在这里插入图片描述
在这里插入图片描述
得到用户名密码。

尝试登录

登陆成功!
在这里插入图片描述

拿取shell

上传war包

  1. 查看冰蝎v4自带的jsp脚本:
    在这里插入图片描述
    密码为rebyond。
  2. 利用jar命令生成war包:
    jar cvf shell.war shell.jsp
    在这里插入图片描述
  3. 上传:
    在这里插入图片描述
    发现上传成功!

这里解释一个概念:上传war包的目的是什么?
war包是使用java进行开发一个网站下所有代码(前端+后端),开发完毕后会将源码打包给测试人员测试,测试完毕会使用war包进行发布,war包可以放在tomcat的webapps下,tomcat服务器启动后war包中的源代码会自动进行部署。也就是说,在上传后,网站会执行war包里面的代码,来进行部署。这里war包内容就是创建一个shell文件夹,在此文件夹下创建一个shell.jsp(payload)

冰蝎连接

  1. 输入网址:
    url:port/shell/shell.jsp
    进行连接。
  2. 拿到shell:
    在这里插入图片描述

可以进入容器验证

  1. tomcat默认存放地址在webapps下。
  2. ROOT和webapps都是将应用部署于tomcat下的初始目录,区别在于ROOT相比webapps服务器优先去webapps目录下找项目,如果有则显示,没有则去ROOT找,ROOT可以去除访问路径中的项目名,如果请求路径当前不想要目录名,那么可以通过在webapps下面创建ROOT目录,然后手动将war包解压到ROOT目录,然后删除原有的war包,这样tomcat启动的时候就不会自动解压war包,同时也不会生成对应war包名称的文件。
    自定义目录的方式,则是彻底改变tomcat应用的初始目录,改到自己指定的目录(比如工程的输出目录)。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值