中间件简介
中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。目前,它并没有很严格的定义,但是普遍接受IDC的定义:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。从这个意义上可以用一个等式来表示中间件:中间件=平台+通信,这也就限定了只有用于分布式系统中才能叫中间件,同时也把它与支撑软件和实用软件区分开来。
中间件漏洞
Tomcat远程部署漏洞
- Tomcat默认端口8080,访问http://host:8080/即可进入默认部署页面。Tomcat一些默认配置并不安全,如果配置不当,攻击者可轻易获取到web应用程序的webshell。在Tomcat默认主界面左栏有一个Tomcat manager链接,支持在后台部署war文件,那么,攻击者就可以上传war文件部署一个JSP木马
制作war格式的shell时,可使用JDK自带的JAR命令制作,JAR.exe存放在JDK安装目录下的bin目录中- 命令格式:
jar -cvf WAR 文件名称 目标文件
;
比如将shell.jsp制作成war包,可以使用如下命令
jar -cvf shell.war shell.jsp
(打包指定文件);
jar -cvf shell.war*
(打包所有文件)
- 命令格式:
- 在Tomcat管理页面中有war file to deploy,也就是war文件部署,本地上传war文件后Tomcat会自动部署,但是这一功能需要密码验证,而且用户必须要有manager权限,在Tomcat安装目录下可以配置,其中有两个存在安全隐患的配置
①<user username="root" password="root" roles="manager"/>
使用弱口令,并赋予manager权限
②<user username="tomcat" password="tomcat" roles="tomcat,manager"/>
使用默认用户,并赋予manager权限 - 漏洞修复
- 在系统上以低权限运行Tomcat应用程序。创建一个专门的 Tomcat服务用户,该用户只能拥有一组最小权限,例如不允许远程登录;
- 增加对于本地和基于证书的身份验证,部署账户锁定机制,对于集中式认证,目录服务也要做相应配置,在CATALINA_HOME/conf/web.xml文件设置锁定机制和时间超时限制;
- 针对manager-gui/manager-status/manager-script等目录页面设置最小权限访问限制;
- 后台管理避免弱口令.
JBoss远程部署漏洞
- JBoss默认端口8080,访问http://host:8080/ -> JBoss默认部署页面 -> JMX Console(JBoss的管理台程序) -> jboss.deployment -> flavor=URL,type=DeploymentScanner 进入部署页面,JBoss需要一个URL(war文件的下载地址)。准备好URL后,在部署页面找到ADD URL方法,其中有两种参数类型java.net.URL和java.lang.String,任意一个均可,然后输入URL,单击invoke。
- JBoss与Tomcat远程部署相似,但JBoss安全性更低,JBoss在默认情况下无需输入账户信息就可以登录后台管理,没有密码认证,所以攻击者常常通过Google Hack来批量获取webshell。
- 漏洞修复:将JBoss的jmx-console密码认证开启或者删除jmx-console
WebLogic
- 默认端口7001,在URL后输入console即可自动跳转至WebLogic的后台管理界面
- WebLogic后台管理存在密码验证策略,弱口令几乎不存在。老版本中存在的弱口令:用户名密码均为weblogic,system,portaladmin,guest
- 登陆后台 -> 部署 -> 安装 -> 部署新的war安装包,目标文件不存在时,可本地上传一个war包 -> 上载文件 -> 将部署上传到管理服务器 -> 部署档案 -> 上传,选择war文件,上传成功后会给出文件的绝对路径 -> 选择war文件的安装方式,将部署安装为应用程序