Tomcat控制台弱密码漏洞
Posted 風月长情
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat控制台弱密码漏洞相关的知识,希望对你有一定的参考价值。
文章目录
一、漏洞介绍
1.1 漏洞原理
Tomcat支持后台部署War文件,默认情况下管理页面仅允许本地访问,如果网站运维/开发人员手动修改配置文件中的信息允许远程IP进行访问(需求),且恶意攻击者拿到管理界面账户密码情况下,则可上传木马文件,控制系统。
1.2 影响版本
- 全版本
1.3 触发条件
- 默认配置文件已被修改,允许非本地访问
- 攻击者通过技术手段拿到账户密码
二、环境搭建
2.1 环境信息
复现环境如下:
名称 版本 OS CentOS7.9 IP 192.168.181.135 JDK版本 1.8.0_292 Tomcat版本 10.0.8 冰蝎 3.0
2.2 tomcat配置
》》下载tomcat:https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/(可以采用其它的源)
》》上传到服务器上并进行解压
》》更改文件名称
》》添加全局变量,使用修改tomcat启动关闭程序配置文件方式:
Tips:不建议写到全局配置变量中,否则如果装有多个JDK会冲突
》》在startup.sh和shutdown.sh加上下面一段:
Tips:注意第一行自己的Java路径是否一致,否则后边显示启动成功但服务启动不起来
export JAVA_HOME=/usr/local/java
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASS_PATH=$JAVA_HOME/bin/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tool.jar
export PATH=$PATH:/usr/local/java/bin:/usr/local/tomcat/bin
》》启动tomcat:
》》防火墙放行8080端口
如果出现上边启动命令成功但无法查看8080端口情况:
- 需要排查自己的java家目录是否和tomcat环境变量中一致,如果不一致需要查看更正java家目录于配置文件中:
https://www.cnblogs.com/wjup/p/11041274.html(方法一)- 添加后,重启tomcat即可
》》访问站点查看启动情况:
》》默认情况下控制台不允许访问,需要编辑控制台配置文件
2.3 配置漏洞环境
》》编辑用户权限的配置文件
》》添加如下两行
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui"/>
Tips:由于8代的tomcat及以上默认启用了网段访问限制,只有127网段的局域网机器才具有访问权限,如果其它网段登录仍会显示403,所以需要分别修改以下两个文件中:
将原来的127修改为如下(允许所有网段访问)
》》保存退出
》》重启tomcat服务
》》点击管理界面
》》需要认证
三、攻击过程
3.1 控制台弱密码
》》通过Nmap扫描目标端口在8080端口上启动了tomcat
》》访问tomcat站点
》》访问tomcat管理界面
》》输入弱密码,登录成功
》》成功登录控制台
3.2 冰蝎控制
》》更改冰蝎马密码:(MD5加密的前16位)
》》使用jar生成war包:(在java目录中执行,添加环境变量的略过)
Tips:为什么需要上传War包?
答:war包是使用java进行开发一个网站下所有代码(前端+后端),开发完毕后会将源码打包给测试人员测试,测试完毕会使用war包进行发布,war包可以放在tomcat的webapps下,tomcat服务器启动后war包中的源代码会自动进行部署。
》》将war包上传到控制台
》》上传成功,查看目录
》》冰蝎创建连接:
》》成功执行命令
四、漏洞修复
- 严格控制账户权限,使用低权限账户运行tomcat程序(如非必须禁止远程登录);
- 对需要远程登录账户,严格要求密码复杂度(大小写+8位以上+数字特殊字符),并定期进行更改;
- context.xml文件中限制远程访问IP,制定白名单策略。
以上是关于Tomcat控制台弱密码漏洞的主要内容,如果未能解决你的问题,请参考以下文章
[漏洞复现] [Vulhub靶机] Tomcat7+ 弱口令 && 后台getshell漏洞
怎么360木马防火墙老提醒我发现黑客利用弱密码或漏洞远端控制您的电脑?我该怎么办?详细的说下。谢谢怎么