
Script d'exploitation Python pour CVE-2024-23897 (Jenkins RCE) avec un laboratoire vulnérable automatisé basé sur Docker pour des tests de sécurité contrôlés et l'éducation.
CVE-2024-23897 est une vulnérabilité critique découverte dans Jenkins, un outil d'intégration continue populaire. Cette vulnérabilité permet l'exécution de commandes à distance (RCE) sur le serveur Jenkins en raison d'un manque de restrictions appropriées sur les fonctions d'accès et de connexion des nœuds.
CVE-ID : CVE-2024-23897Type : Exécution de code à distance (RCE)Impact : Un attaquant non authentifié peut envoyer des requêtes spécialement conçues qui permettent d'exécuter des commandes arbitraires sur le serveur Jenkins, conduisant à une compromission du système.Affecté : Versions de Jenkins antérieures au correctif de cette CVE.jenkins-cli.jar, qui permet la communication entre Jenkins et ses nœuds.Jenkins.Jenkins vers la dernière version disponible qui a corrigé cette vulnérabilité.Ce script Python exploite la vulnérabilité CVE-2024-23897 dans les serveurs Jenkins obsolètes. Le script interagit avec le serveur Jenkins et exécute des commandes arbitraires en utilisant le fichier jenkins-cli.jar.
Python 3.xrequests et subprocess installées dans l'environnement d'exécution.Jenkins vulnérable.Télécharger le fichier jenkins-cli.jar` depuis le serveur Jenkins.Connecter le nœud Jenkins en utilisant le fichier téléchargé et exécuter des commandes malveillantes sur le serveur distant.Effectuer des actions spécifiques comme lire des fichiers arbitraires sur le serveur.Installation des dépendances : Assurez-vous d'avoir Python 3 et la bibliothèque requests installés. Vous pouvez l'installer en utilisant pip :pip3 install requests
Utilisation du script : Téléchargez le fichier du script d'exploitation et exécutez-le depuis le terminal :
python3 cve-2024-23897.py
Le script vous demandera de saisir les paramètres suivants :
Adresse IP du serveur Jenkins : L'IP où Jenkins est en cours d'exécution.Port du serveur Jenkins : Le port sur lequel Jenkins écoute (par défaut 8080).Chemin du fichier à lire : Le chemin du fichier que vous souhaitez consulter sur le serveur vulnérable (par exemple, /etc/passwd).Le script téléchargera le fichier jenkins-cli.jar depuis le serveur Jenkins, puis exécutera les commandes définies dans le fichier que vous avez indiqué comme paramètre.
Pour tester la vulnérabilité dans un environnement contrôlé, nous avons inclus un laboratoire vulnérable basé sur Docker. Vous devrez simplement décompresser le fichier ZIP sur votre machine Kali Linux, exécuter le fichier .sh et déployer l'environnement Docker pour effectuer le test.
Télécharger le .tar du LAB : Tout d'abord, décompressez le fichier contenant le laboratoire vulnérable :
Exécuter le script de déploiement : Dans un dossier, vous devrez avoir les 2 fichiers, dont l'un auto_mount.sh. Ce script est conçu pour déployer automatiquement l'environnement Docker vulnérable et le laboratoire en TAR que vous devrez passer en paramètre. Exécutez-le avec :
bash auto_mount.sh cve-2024-23897.tar
Le script prendra le fichier compressé Docker .tar comme paramètre pour lancer le conteneur vulnérable et tester l'exploitation de la vulnérabilité.
Se connecter au serveur Jenkins : Une fois l'environnement Docker en cours d'exécution, vous pourrez vous connecter au serveur Jenkins depuis votre machine Kali Linux. L'interface Jenkins sera disponible à l'adresse IP et au port configurés dans le conteneur.
Exécuter le script d'exploitation : Maintenant que le serveur Jenkins vulnérable est en cours d'exécution, vous pouvez exécuter le script d'exploitation sur la machine Kali et essayer l'exécution de code à distance sur Jenkins.
Python pour exploiter la vulnérabilité CVE-2024-23897.Docker vulnérable.Docker compressé pour monter le serveur Jenkins vulnérable.Développé par : d1se0
Contact : [email protected]