Skip to content

Releases: ReaJason/MemShellParty

v2.7.0

26 Apr 15:09

Choose a tag to compare

Added

  1. 添加 Alibaba Dubbo 和 Apache Dubbo Service 内存马,专门针对 Dubbo Provider 的场景(#32 By @ReaJason
  2. 为 Attacher 添加默认列举 Java 进程和 all 参数注入所有 Java 进程的代码(与 JMG Agent.jar 命令一致)
    java -jar agent.jar # 列举所有 Java 进程
    java -jar agent.jar <pid> # 注入指定 PID Java 进程
    java -jar agent.jar all # 注入所有 Java 进程
  3. 添加 Command Base64 Encryptor,方便测试 Base64 流量特征攻击

Fixed

  1. 修复测试用例 WAS7(IBM JDK6) 下需要添加 -Xshareclasses:none JVM 参数才能注入成功,否则报错 UnmodifiableClassException

Changed

  1. 添加 tomcat-embed-core 依赖,Spring Boot 4 应用依赖时能直接使用 Tomcat 容器进行部署(Spring Boot 4 不再支持 Undertow)
  2. 前端依赖更新,将格式化工具 biomejs 改为 oxc

Full Changelog: v2.6.1...v2.7.0

更新方式

Docker 部署

docker rm -f memshell-party

docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest

Jar 包启动

仅支持 JDK17 及以上版本

java -jar --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED boot-2.7.0.jar

v2.6.1

30 Mar 14:58

Choose a tag to compare

Fixed

  1. (UI)修复 SpringWebMVC 生成 Controller 点击生成按钮无效(#140 Thanks @ekkoo-z By @ReaJason
  2. 修复 WebSocket Proxy OOM(#127 Thanks @xiaoxiaoranxxx

Changed

  1. 依赖更新
  2. web docs 更新,支持复制 markdown 以及点击跳转 GitHub 等界面

Full Changelog: v2.6.0...v2.6.1

更新方式

Docker 部署

docker rm -f memshell-party

docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest

Jar 包启动

仅支持 JDK17 及以上版本

java -jar --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED boot-2.6.1.jar

v2.6.0

08 Feb 13:00

Choose a tag to compare

Added

  1. 为 ByteBuddyGenerator 添加 postProcessBytes 模板方法,支持生成后对 shell bytes 进行操作
  2. 支持 Resin 2.1.17 Agent 内存马的生成
  3. 同步更新 Suo5V2 v2.1.0 修复逻辑(#135 By @zema1

Fixed

  1. (UI)修复生成按钮防连点失效(By @ReaJason
  2. 修复 ServletRenameVisitorWrapper 可能会导致部分 ByteBuddy Advisor 方法选中失效
  3. 去除 JSP 脚本中 Class<?> 泛型,改为 Class,修复低版本 Servlet 容器解析失败

Changed

  1. Suo5V2 抽取 Loader 进行 Suo5V2 的核心代码加载,增加可维护性(#136
  2. 依赖更新

Full Changelog: v2.5.0...v2.6.0

更新方式

Docker 部署

docker rm -f memshell-party

docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest

Jar 包启动

仅支持 JDK17 及以上版本

java -jar --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED boot-2.6.0.jar

v2.5.0

18 Jan 16:35

Choose a tag to compare

Added

  1. 添加 WebSocket BypassNginx 实现,使用方式见文档(By @ReaJason
  2. 添加 WebSocket Proxy 实现,使用方式见文档(#126,Thanks @xiaoxiaoranxxx
  3. 添加 JSP/JSPX Unicode 打包方式(#116 Thanks @Ch1ngg
  4. (UI)添加目标 JRE 版本的选择,防止部分情况下无法使用 JDK8 API(#131 Thanks @LTP414

Fixed

  1. 修复自定义内存马 Agent 型无法显式调用 Jakarta API(#131 Thanks @LTP414
  2. (UI)修复自定义内存马文件上传框中文字不居中

Changed

  1. 调整哥斯拉 WebSocket 马使用 AES_RAW 同时支持 GitHub 插件和特战版都可连接,使用方式见文档
  2. 重构 MemShell 和 ProbeShell 集成测试用例,减少代码量
  3. 支持 Spring 相关集成测试用例调用远程 docker 完成测试(目前所有集成测试用例可支持在远程 docker 执行)customizing-docker-host-detection
  4. 配置 Gradle 构建打包自动发布至 Maven Central(不需要额外去网页手动点 Publish)
  5. 重命名仓库中 asserts -> assets
  6. 依赖更新

Full Changelog: v2.4.2...v2.5.0

更新方式

Docker 部署

docker rm -f memshell-party

docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest

Jar 包启动

仅支持 JDK17 及以上版本

java -jar --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED boot-2.5.0.jar

v2.4.2

11 Jan 18:31

Choose a tag to compare

Added

  1. 新增对 WebSphere open-liberty 的内存马注入以及回显马(By @ReaJason
  2. 添加 libs 子模块,存放部分中间件源码包方便进行代码编写和调试以及便于编写后续源码分析文档
  3. 支持 Filter 调序为第一个,解决部分鉴权 Filter 的连接干扰
  4. 新增回显马可回显 Filter 列表
  5. 目标服务文档填写适配表格,展示各版本该如何选取对应内存马挂载类型,https://dev-party.mem.mk/ui/docs/server-intro
  6. 添加文档 tree 结构,欢迎一起完善文档

Fixed

  1. 修复注入器上下文获取失败时不会正确打印 context not found
  2. 修复文档页直接点击子菜单时 502 无法正确显示
  3. 修复 web 前端项目无法在 Windows 环境正确编译(Thanks @kN6jq
  4. 修复 Jetty 回显马,直接使用 Request 和 Callback 导致部分环境 ClassNotFound 问题(改用反射调用)

Changed

  1. 调整 testcontainer 获取 host 的处理,支持使用远程 docker 环境完成测试
  2. 简化 WebLogic context 获取代码,改为从 JMX 中获取
  3. 依赖更新

Full Changelog: v2.4.1...v2.4.2

更新方式

Docker 部署

docker rm -f memshell-party

docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest

Jar 包启动

仅支持 JDK17 及以上版本

java -jar --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED boot-2.4.2.jar

v2.4.1

16 Dec 14:15

Choose a tag to compare

Fixed

  1. 修复 Suo5v2、Godzilla、Command Listener 等无法中断请求的场景下未 close 响应流导致连接失败 (#120 By @ReaJason, @zema1 Thanks @whwlsfb)
  2. 修复非调试模式下,throwable.printStackTrace 未被正确移除
  3. 修复 responseBody 回显马如果业务优先触发 getOutputStream 或 getWriter 导致回显失败(#122 Thanks @localurk
  4. 修复某软新版获取不到 context 导致 Tomcat 内存马无法注入的问题(Thanks @unam4

Changed

  1. generator 模块去除 bcel 依赖,简化 jackson 依赖
  2. UI 添加 tooltip 简易描述方便使用,并优化部分布局细节
  3. UI 迁移 radix-ui 至 base-ui
  4. 文档更新、依赖更新

Full Changelog: v2.4.0...v2.4.1

更新方式

Docker 部署

docker rm -f memshell-party

docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest

Jar 包启动

仅支持 JDK17 及以上版本

java -jar --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED boot-2.4.1.jar

v2.4.0

09 Dec 18:26

Choose a tag to compare

Added

  1. 支持 Suo5 V2 版本内存马生成(#118 By @ReaJason Thanks @zema1
  2. 支持 Struct2 Action 内存马与回显马生成

Changed

  1. ui 探测马生成去除 jar 相关打包方式

Full Changelog: v2.3.0...v2.4.0

更新方式

Docker 部署

docker rm -f memshell-party

docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest

Jar 包启动

仅支持 JDK17 及以上版本

java -jar --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED boot-2.4.0.jar

v2.3.0

07 Dec 18:39

Choose a tag to compare

Added

  1. 支持 Jetty Handler 与 Customizer 内存马生成(By @ReaJason
  2. 支持 Jetty ee8~ee11 的回显马(无法从 post urlencoded 中获取 parameter,请从 url queryParam 或 header 传入参数)
  3. 内存马生成支持回显模式对接回显马
  4. 支持 Tomcat Upgrade 内存马注入(仅 Tomcat8+ 可用)
  5. 支持添加 lambda 类名后缀开关(#97
  6. 命令执行内存马与回显马支持自定义命令模板(#115 Thanks @ViCrack
  7. 添加 ScriptEngine 绕过 Java 模块限制生成以及支持 H2URLPacker(metabase 漏洞测试)
  8. web 模块添加 fumadocs 框架,支持文档编写
  9. 回显马运行字节码时支持 base64 和 gzipBase64 字节码传入
  10. 支持 GroovyTransformJar 打包方式(fastjson 漏洞注入 #112 Thanks @DongHuangT1
  11. 回显马参数名称支持默认随机生成

Changed

  1. 由于 jetty handler 依赖的类干扰,boot 容器从 jetty 改为 undertow
  2. 注入器和回显马添加 ok 标识仅运行一次,降低代码运行时间

Full Changelog: v2.2.0...v2.3.0

更新方式

Docker 部署

docker rm -f memshell-party

docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest

Jar 包启动

仅支持 JDK17 及以上版本

java -jar --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED boot-2.3.0.jar

v2.2.0

19 Nov 18:33

Choose a tag to compare

Added

  1. 内存马注入器支持接入回显 toString 打印 contextPath 等注入成功或错误信息(By @ReaJason
  2. boot 新增通过字节码 base64 获取类名接口,并支持自定义内存马使用随机类名或原始类名
  3. 适配 Apusic 9.0.1 版本(金蝶 EAS Cloud)
  4. UI 在 JSP/Base64/序列化相关 payload 生成时添加下载按钮便于下载 JSP 文件/注入器 Class 文件/原始序列化文件
  5. 支持注入器或回显马添加静态代码块执行构造方法调用,解决部分场景下无法手动调用构造方法
  6. 支持 SpringWebMVC 回显马生成(#107
  7. 添加 Jetty 12 中 ee11 的内存马注入支持和靶场测试用例
  8. 支持 ScriptEngineJar 打包方式(SnakeYaml 漏洞注入,#109
  9. 支持 AbstractTranslet 打包方式,方便 TemplatesImpl 反序列化漏洞注入
  10. 支持脚本引擎执行回显马生成,方便调试

Fixed

  1. 修复自定义内存马生成报错(#102#106,Thanks @love71 and @m0s30
  2. 修复 Tomcat Valve 仅单个情况下注入 ProxyValve 导致站挂掉(#105 Thanks @love71
  3. 默认哥斯拉内存马去除对 session 的依赖,解决部分场景下 session 为 null 导致无法连接

Changed

  1. 命令执行内存马和命令执行回显马支持从参数或请求头中获取命令参数
  2. 调整靶场构建使用的 openjdk 改为 eclipse-temurin
  3. 依赖更新

Full Changelog: v2.1.0...v2.2.0

更新方式

Docker 部署

docker rm -f memshell-party

docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest

Jar 包启动

仅支持 JDK17 及以上版本

java -jar --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED boot-2.2.0.jar

v2.1.0

12 Sep 15:26

Choose a tag to compare

Added

  1. 添加 BigInteger、ScriptEngineBigInteger 打包方式(#86 by @wanswu)
  2. 添加 SpELSpringGzipJDK17 打包方式(#83 by @xcxmiku and @ReaJason
  3. 添加 JXPathSpringGzipPacker、JXPathSpringGzipPackerJDK17 打包方式(GeoServer 漏洞注入)
  4. 添加 Base64URLEncoded 打包方式(配合回显马进行小马拉大马测试)
  5. 支持回显马在进行自定义字节码执行时去除 Java 魔数流量特征
    /path/code?payload=yv66vgAAADIBVQEAJ29yZy9hcGFj...
    
    改为只需要如下方式
    /path/code?payload=IBVQEAJ29yZy9hcGFj...
    

Fixed

  1. 修复非调试模式下,构造方法中的 e.printStackTrace() 并没有被移除
  2. 修复使用 Dockerfile 进行自定义构建时,自定义路由无法正常工作
  3. 修复探测内存马中 Sleep 和 DNSLog 自定义类名失效(#89 Thanks @yinsel
  4. 修复自定义内存马中,不会自动调用 listener 添加 getResponseFromRequest 实现代码和 valve 修改包名的逻辑(使用自定义内存马请参考:如何使用自定义内存马功能 进行实现,否则会出现不可用的问题)
  5. 修复使用 SDK 时,Agent Packer 在 jar-with-dependencies(fatjar) 中会出现打包整个 jar 的问题
  6. 修复 Tomcat Listener 注入会使之前所有 Listener 失效(#93

Changed

  1. 修改 Packer 中对于 Thread.currentThread().getContextClassLoader() 的纯依赖改为新建 URLClassLoader,使得回显马可多次执行
  2. 去除 logback(java11)和 okhttp 无用依赖,解决使用 SDK 打包部分场景会出现类版本不支持的问题
  3. 实现 Lombok SuperBuilder 自定义 Builder 简化配置类的创建代码(#9f8f3baa)
  4. 优化命令执行内存马,改为和回显马逻辑一致,使用 ProcessBuilder.redirectErrorStream 简化流读取
  5. 修改 packer 中脚本存放添加 memshell-party 一级,防止打包成 fatjar 时文件全在根目录,可能会被覆盖导致功能破坏
  6. 优化资源读取,通过工具类 loadTemplateFromResource 统一实现
  7. 优化 Agent Attacher JDK11 异常处理
  8. 依赖更新

Full Changelog: v2.0.0...v2.1.0

更新方式

Docker 部署

docker rm -f memshell-party

docker run --pull=always --rm -it -d -p 8080:8080 --name memshell-party reajason/memshell-party:latest

Jar 包启动

仅支持 JDK17 及以上版本

java -jar --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.trax=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xalan.internal.xsltc.runtime=ALL-UNNAMED boot-2.1.0.jar