Tomcat支持后台部署War文件,默认情况下管理页面仅允许本地访问,如果网站运维/开发人员手动修改配置文件中的信息允许远程IP进行访问(需求),且恶意攻击者拿到管理界面账户密码情况下,则可上传木马文件,控制系统。
复现环境如下: 名称版本OSCentOS7.9IP192.168.181.135JDK版本1.8.0_292Tomcat版本10.0.8冰蝎3.0
复现环境如下:
》》下载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即可
如果出现上边启动命令成功但无法查看8080端口情况:
》》访问站点查看启动情况: 》》默认情况下控制台不允许访问,需要编辑控制台配置文件
》》编辑用户权限的配置文件 》》添加如下两行
<role rolename="manager-gui"/> <user username="tomcat" password="tomcat" roles="manager-gui"/>
Tips:由于8代的tomcat及以上默认启用了网段访问限制,只有127网段的局域网机器才具有访问权限,如果其它网段登录仍会显示403,所以需要分别修改以下两个文件中: 将原来的127修改为如下(允许所有网段访问) 》》保存退出
》》重启tomcat服务 》》点击管理界面 》》需要认证
》》通过Nmap扫描目标端口在8080端口上启动了tomcat 》》访问tomcat站点 》》访问tomcat管理界面 》》输入弱密码,登录成功 》》成功登录控制台
》》更改冰蝎马密码:(MD5加密的前16位) 》》使用jar生成war包:(在java目录中执行,添加环境变量的略过)
Tips:为什么需要上传War包? 答:war包是使用java进行开发一个网站下所有代码(前端+后端),开发完毕后会将源码打包给测试人员测试,测试完毕会使用war包进行发布,war包可以放在tomcat的webapps下,tomcat服务器启动后war包中的源代码会自动进行部署。
》》将war包上传到控制台 》》上传成功,查看目录 》》冰蝎创建连接: 》》成功执行命令