vlambda博客
学习文章列表

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

# 简介 #

    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。

Tomcat是Apache 服务器的扩展,但实际上是作为一个与Apache 独立的进程单独运行的。Apache 为HTML页面服务,而Tomcat 实际上一个Servlet和JSP容器,运行JSP 页面和Servlet。

Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,但处理静态HTML的能力不如Apache服务器。




1.Tomcat 后台 war部署后门getshell漏洞解析


Tomcat7+支持在后台部署war文件,可以直接将webshell部署到web目录下。当然,有个前提条件,那就是需要能登录后台,且对应用户有相应权限。

Tomcat7 +权限分为:

manager(后台管理)

  • manager-gui 拥有html页面权限

  • manager-status 拥有查看status的权限

  • manager-script 拥有text接口的权限,和status权限

  • manager-jmx 拥有jmx权限,和status权限

host-manager(虚拟主机管理)

  • admin-gui 拥有html页面权限

  • admin-script 拥有text接口权限

详情阅读 :http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html


在conf/tomcat-users.xml文件中配置用户的权限(用户tomcat拥有上述所有权限,密码是tomcat):


xml version="1.0" encoding="UTF-8"?><tomcat-users xmlns="http://tomcat.apache.org/xml"              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"              version="1.0"><role rolename="manager-gui"/><role rolename="manager-script"/><role rolename="manager-jmx"/><role rolename="manager-status"/><role rolename="admin-gui"/><role rolename="admin-script"/><user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>tomcat-users>


正常安装的情况下,tomcat8中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。

测试环境搭建可通过Vulhub,利用Docker搭建,真方便快捷。

当然,为直观了解内在原理,亦可自行搭建。


2.Tomcat管理后台口令爆破


如果你运气好,恰巧碰到网管比较机智,tomcat管理页面支持访问,那你就抱他,用力的抱他!

(1)首先,通过tomcat主页面,点击Manager App登录管理页面,在登录框中输入用户名密码;

或直接访问http://your-ip:8080/manager/html,在登录框中输入用户名密码。

(2)然后点击确定,通过burpsuite抓取登录请求报文(用户名密码采用base64编码,用户名:密码   格式传输)

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

(3)右键点击请求报文,选择“send to intruder”将请求报文发送到intruder模块

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

(4)在“Positions”选项卡页面添加攻击参数:选中参数后,点击Add添加为攻击参数

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

(5)配置payload:在“payloads”选项卡,设置payload类型为自定义迭代器(Custom iterator):

它共有8个占位,每一个占位可以指定简单列表的Payload类型,然后根据占位的多少,与每一个简单列表的Payload进行笛卡尔积(不懂就找你度麻麻去),生成最终的Payload列表。

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

(6)为第一个占位添加你的username字典

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

7)为第二个占位添加字符“:”

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

(8)为第三个占位添加你的password字典

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

(9)在“payload processing”设置编码为“encode”-->“base64-encode”,并在“payload Encoding”中取消“URL-encode these characters"勾选

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

(10)可以开始攻击了

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞



3.war部署后门getshell


如果你有幸踩到了little dog bian bian,嗯,记得离我远点,别忘了把鞋擦干净。

(1)制作WAR包(将后门文件打包到war包,需本地配置java环境)

jar -cvf war.war “houmen.jsp”

2)利用后台war部署功能上传后门文件

Tomcat7+ 密码爆破&&后台war部署后门getshell漏洞

(3)getshell

上传war包后,会自动解压到网站根目录下/war(你的war包名字)/houmen.jsp(你的后门名字),通过c刀等工具连接,getshell。

http(s)://xxx.xxx.xx.xx:xxxx/war/houmen.jsp


特别提醒:不用弱口令!不用弱口令!不用弱口令!




河南信安世纪科技有限公司

-扫码关注我们-