赞
踩
这两天闲着没事,在研究中间件漏洞,今天我们就来复现一下CVE-2017-12149,此漏洞是jboos中间件的一个反序列化漏洞;JBoss是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3的规范。在/invoker/readonly路径下,攻击者可以构造序列化代码传入服务器进行反序列化,由于没有对反序列化操作进行任何检测,导致攻击者可以执行任意代码。
JBoss 5.x / 6.x
1)下载
本次漏洞复现在win7上搭建,我们首先去下载jboss版本,这次我们下载的版本为6.1.0
jboss下载地址https://jbossas.jboss.org/downloads/
jboss还需要java环境的支持,jboss6.X版本支持jdk1.7
jdk下载地址https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html
下载好的环境如下
2)安装
jdk1.7安装,双击下载好的jdk,一路下一步就好了
jdk安装完成后直接在cmd下输入
java -version --查看java是否安装成功
接下来我们安装jboss6.1.0
解压下载好的jboss的压缩文件,然后把解压好的压缩文件放到c盘去就可以了
然后我们去修改jboss的环境变量
JBOSS_HOME值为C:\jboss-as6.1.0.Final
然后在path的最后添加
;%JBOSS_HOME%\bin;
至此,环境变量安装成功
我们去C盘jboss目录的bin目录下找到run.bat文件,双击运行
此时显示运行成功,如果显示运行失败的话,就重启一下电脑。
然后打开我们浏览器访问一下http://127.0.0.1:8080
此时显示jboss运行成功
此时远程访问是访问不了的,我们需要修改C:\jboss-6.1.0.Final\server\default\deploy\jbossweb.sar\server.xml的配置实现外网访问。将address="${jboss.bind.address}"改成address=“0.0.0.0”
修改成功后,就可以在其余同网段的电脑可以访问了
环境搭建完成后,我们来验证漏洞,此漏洞已经有很多exp和poc了,github上也有很多,自己可以去找一下。最简单的验证方式就是在url后面添加/invoker/readonly进行访问,如果出现500的状态码,大概率就有CVE-2017-12149。
此时我们拿vulmap来扫描验证一下
1)第一种:但是vlumap里面没有此漏洞的利用脚本,我们可以在github使用此大神的利用工具,可以直接利用。
项目地址:https://github.com/yunxu1/jboss-_CVE-2017-12149
但是此工具会出现和msf一样getshell一样出现中文乱码,暂时还没有找到解决方式,但是大体不影响我们的获取目标信息
2)第二种方式是本地进行java的环境编译,然后利用nc监听反弹shell,此利用原理和第一种方式一样
,就不赘述了,感兴趣的小伙伴可以去试一下
项目地址https://github.com/joaomatosf/JavaDeserH2HC
1)升级jboss版本,毕竟低版本的漏洞本来就多。
2)实在不能升级的,删除C:\jboss-6.1.0.Final\server\default\deploy\http-invoker.sar路径下http-invoker.sar 组件。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。