Releases: ReaJason/MemShellParty
Releases · ReaJason/MemShellParty
v2.0.0
Warning
为了区分内存马和探测马,部分类名和接口做了调整,如果使用了 SDK,需要参考:examples/memshell-party-maven-example 进行调整。
Added
- 支持探测马生成 (#71 by @ReaJason,部分代码参考 jeg 与 java-chains)
- Web 添加关于页面
- 支持 H2 JDBC 打包方式(DataEase 漏洞注入)
- 支持 XMLDecoder 打包方式(WebLogic 漏洞注入)
- 支持 OGNL SpringUtils 打包方式(Confluence 漏洞注入)
Fixed
- 修复 SpringWebMVC Agent 无法点击生成按钮 (#77)
- 修复 Spring Boot 对于 no static resource 老是抛出错误日志
- 修复 TongWeb8 context 获取错误导致注入失败的问题
Changed
- 简化 Server 类型选择,例如 JBossEAP7 和 WildFly 选择 Undertow (#74 by @zema1)
- 去除注入器中静态代码块调用构造方法,减少注入动作的触发(可能会导致部分
Class.forName("name", true, loader)
的场景注入失败,后续会添加字节码 Web 工具进行这块的处理) - 简化 Tomcat AgentInjector 的代码
- 前端 module 分包减少单个 js 体积,加快首次加载速度
- 移除 memshell-party-bom 模块,改用 gradle/libs.versions.toml,参考:Use Version Catalogs to Centralize Dependency Versions
- 使用 build-logic 替代 buildSrc,加快构建速度,参考:Favor build-logic Composite Builds for Build Logic
- 从 generator 模块中分离 payload 生成代码并合并 deserialize 模块为 packer 模块
- 使用 i18 扁平化 key,并使用 namespace 区分 MemShell 和 ProbeShell 的字段,参考:RSSNext/Folo/zh-CN.json
- 升级 gradle-maven-publish-plugin 插件版本,简化打包指令
- 统一生成内存马类过程中抛出异常为 GenerationException,并单独设置 GlobalExceptionHandler
Full Changelog: v1.10.0...v2.0.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.0.0.jar
v1.10.0
Added
- 添加新的 JSP 打包方式(直接使用 defineClass 进行注入)(by @zema1 #67)
- 支持 Tomcat 和 JBossAS ProxyValve 内存马(通过动态代理将 StandardPipeline 的第一个 valve 进行包装注入自定义逻辑)
Fixed
- 修复哥斯拉无法使用最新版连接
- 修复 TongWeb8 Valve 未适配
- 修复移动端 UI 输入框 placeholder 字体过大
- 修复移动端 UI 类名复制按钮超出卡片范围
Changed
- 修改 Valve 和 Listener 字节码修改时机,改为生成时再进行修改,方便自定义内存马生成,参考文档:如何使用自定义内存马功能
- 合并 memshell 与 memshell-jdk8 模块,方便维护
- UI 使用新的 shadcn/ui 提供的 Zinc 主题配置
- 将所有 Shell 捕获异常从 Exception 改为 Throwable
- 简化 Shell base64 方法代码
- Gradle 更新至 8.14.2
- 参考 General Gradle Best Practices,将构建脚本改为
Kotlin DSL
Full Changelog: v1.9.0...v1.10.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-1.10.0.jar
v1.9.0
Added
- 支持 TongWeb8 内存马生成 by @ReaJason
- 通过 context 获取 webAppClassLoader,不再依赖 Thread.currentThread().getContextClassLoader() 为请求线程,参考:任意类加载环境下注入内存马
- 全面支持使用 ASM 生成 Agent(仅需 92.5 KB),并且可选 JDKAttacher 与 JREAttacher
- 支持命令执行自定义实现类,RuntimeExec or ForkAndExec
Fixed
- 修复 Apusic Listener 由于 response 获取错误导致不可用
- 修复 Jakarta WebSocket 无法注入
Changed
- Godzilla WebSocket 默认使用 AES_BASE64 加密器,支持使用 GzWebsocket 插件进行连接。
- Gradle、Web 项目依赖更新
- UI 生成界面默认勾选缩小字节码
- UI 优化手机端选项布局,单行显示每个输入框
- UI 使用紧凑模式,隐藏非常用字段简化操作路径
- 提取公共 Tailwind CSS 类名,简化表单组件代码
- yup 替代 zod 减少打包体积,并将自定义表单验证融合到 react-hook-form 中优化 UX
- 重构 Shell Generator 代码
Full Changelog: v1.8.0...v1.9.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-1.9.0.jar
v1.8.0
Added
- 支持普元中间件内存马生成(only 6.5 版本)by @ReaJason(#60)
- 支持哥斯拉 WebSocket 内存马生成与测试
- 添加 Groovy 通用恶意类加载打包方式(用于测试 Jenkins 脚本执行)
- 命令执行支持加密器,双 Base64 测试绕过 WAF 安全设备
Fixed
- 修复 Jetty 高版本中 ee8 ~ ee10 无法注入(#61)
- 修复 Spring Boot 下类加载的原因导致的 Tomcat/Jetty/Undertow 部分内存马注入失败
Changed
- 命令执行改为反射调用 forkAndExec 以绕过 RASP(JDK7+)
- 获取所有线程代码改为
Thread.getAllStackTraces().keySet()
,高版本 JDK 不再需要 bypass module - 优化 boot 在启动时即触发 Server 的内存马生成注册,加速第一次请求访问
Full Changelog: v1.7.0...v1.8.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-1.8.0.jar
v1.7.0
Added
- 支持发布到 MavenCentral,可通过引入依赖使用生成 API by @ReaJason(#41)
- 支持 CC3、CC4 反序列化 payload 打包方式
- 支持随机参数生成与默认选项(#50)
Changed
- 去除代码混淆相关代码
- 为了更好地在 MavenCentral 展示,重命名部分模块
- 使用 Jackson 代替 Fastjson 降低 boot 打包体积
- 移除 commons-codec 降低 boot 打包体积
- 升级 shadcn/ui 所有 component 代码
Full Changelog: v1.6.0...v1.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-1.7.0.jar
v1.6.0
做代码生成以及代码混淆真是一件需要耐心的事情
Added
- 支持自定义内存马生成(#49)by @ReaJason
- 支持命令回显 ASM Agent 内存马(#51)by @ReaJason
- 支持简易的代码混淆(#13)by @ReaJason
- 支持自动发布 DEV 分支代码 CD
Changed
- 简化 Jetty 获取 Context 代码
- 优化 Dockerfile 减小镜像体积
Full Changelog: v1.5.0...v1.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-1.6.0.jar
v1.5.0
Added
- 支持 NeoreGeorg 内存马生成 by @ReaJason
- 支持 UI 显示更新按钮跳转到 GitHub Release 界面
Changed
- 简化 Valve 内存马代码
- 升级 Gradle 8.13
Full Changelog: v1.4.0...v1.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-1.5.0.jar
v1.4.0
Added
- 支持缩小字节码(移除调试信息) by @ReaJason
- 支持 Tomcat Jakarta WebSocket
Fixed
- 修复自定义注入器类名不起作用
Changed
- 优化跨平台开发体验,将 bash 脚本改为 js 脚本
Full Changelog: v1.3.2...v1.4.0
v1.3.2
Fixed
- 修复 Tomcat WebSocket 注入报错,无法工作
Changed
- 添加 foojay-toolchains 插件,支持 Dockerfile 构建时自动下载缺失的 JDK 版本
- 优化构建 Spring Boot 的 Dockerfile,最小权限原则
- 支持一键构建的 Dockerfile,适配需要 NGINX 反代的场景
- 代码重构支持一处注册所有 Server 的 Shell 配置
Full Changelog: v1.3.1...v1.3.2