序:
今天天气不错,我很冷!Tomcat是个好东西!
1、简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
Tomcat是Apache 服务器的扩展,但实际上是作为一个与Apache 独立的进程单独运行的。Apache 为HTML页面服务,而Tomcat 实际上一个Servlet和JSP容器,运行JSP 页面和Servlet。
Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,但处理静态HTML的能力不如Apache服务器。
------来自百度百科。
2、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搭建,真真方便快捷。
当然,为直观了解内在原理,亦可自行搭建。
-------来自https://vulhub.org/#/environments/tomcat/tomcat8/
3、Tomcat管理后台口令爆破
如果你运气好,恰巧碰到网管比较机智,tomcat管理页面支持访问,那你就抱他,用力的抱他!
(1)首先,通过tomcat主页面,点击Manager App登录管理页面,在登录框中输入用户名密码;
或直接访问http://your-ip:8080/manager/html,在登录框中输入用户名密码。
(2)然后点击确定,通过burpsuite抓取登录请求报文(用户名密码采用base64编码,用户名:密码 格式传输)
(3)右键点击请求报文,选择“send to intruder”将请求报文发送到intruder模块
(4)在“Positions”选项卡页面添加攻击参数:选中参数后,点击Add添加为攻击参数
(5)配置payload:在“payloads”选项卡,设置payload类型为自定义迭代器(Custom iterator):
自定义迭代器(Custom iterator):很厉害的东东。它共有8个占位,每一个占位可以指定简单列表的Payload类型,然后根据占位的多少,与每一个简单列表的Payload进行笛卡尔积(不懂就找你度麻麻去),生成最终的Payload列表。
(6)为第一个占位添加你的username字典
(7)为第二个占位添加字符“:”
(8)为第三个占位添加你的password字典
(9)在“payload processing”设置编码为“encode”-->“base64-encode”,并在“payload Encoding”中取消“URL-encode these characters"勾选
(10)可以开始攻击了
4、war部署后门getshell
如果你有幸踩到了little dog bian bian,嗯,记得离我远点,别忘了把鞋擦干净
(1)制作WAR包(将后门文件打包到war包,需本地配置java环境)
jar -cvf war.war “houmen.jsp”
(2)利用后台war部署功能上传后门文件
(3)getshell
上传war包后,会自动解压到网站根目录下/war(你的war包名字)/houmen.jsp(你的后门名字),通过c刀等工具连接,getshell。
http(s)://xxx.xxx.xx.xx:xxxx/war/houmen.jsp
5、本集结束
预知后事如何,请听下回分解!
特别提醒:不用弱口令!不用弱口令!不用弱口令!重要的事情要说三遍,那谁谁谁说的!机智如你,可千万记好了!
此致
敬礼!