
Script de explotación en Python para CVE-2024-23897 (Jenkins RCE) con un laboratorio vulnerable automatizado basado en Docker para pruebas de seguridad controladas y educación.
CVE-2024-23897 es una vulnerabilidad crítica descubierta en Jenkins, una popular herramienta de integración continua. Esta vulnerabilidad permite la ejecución remota de comandos (RCE) en el servidor Jenkins debido a la falta de restricciones adecuadas en las funciones de acceso y conexión de nodos.
CVE-ID: CVE-2024-23897Type: Ejecución Remota de Código (RCE)Impact: Un atacante no autenticado puede enviar solicitudes especialmente diseñadas que permiten ejecutar comandos arbitrarios en el servidor Jenkins, lo que lleva a un compromiso del sistema.Affected: Versiones de Jenkins anteriores a la corrección de este CVE.jenkins-cli.jar, que permite la comunicación entre Jenkins y sus nodos.Jenkins.Jenkins a la última versión disponible que haya corregido esta vulnerabilidad.Este script en Python explota la vulnerabilidad CVE-2024-23897 en servidores Jenkins desactualizados. El script interactúa con el servidor Jenkins y ejecuta comandos arbitrarios utilizando el archivo jenkins-cli.jar.
Python 3.xrequests y subprocess instaladas en el entorno de ejecución.Jenkins vulnerable.Descargar el archivo jenkins-cli.jar` del servidor Jenkins.Conectar nodo Jenkins usando el archivo descargado y ejecutar comandos maliciosos en el servidor remoto.Realizar acciones específicas como leer archivos arbitrarios en el servidor.Instalación de dependencias: Asegúrate de tener Python 3 y la librería requests instalados. Puedes instalarla usando pip:pip3 install requests
Uso del Script: Descarga el archivo del script de explotación y ejecútalo desde la terminal:
python3 cve-2024-23897.py
El script te pedirá que ingreses los siguientes parámetros:
Dirección IP del Servidor Jenkins: La IP donde se está ejecutando Jenkins.Puerto del Servidor Jenkins: El puerto en el que Jenkins está escuchando (por defecto es 8080).Ruta del archivo a leer: La ruta del archivo que deseas acceder en el servidor vulnerable (por ejemplo, /etc/passwd).El script descargará el archivo jenkins-cli.jar del servidor Jenkins y luego ejecutará los comandos definidos en el archivo que hayas indicado como parámetro.
Para probar la vulnerabilidad en un entorno controlado, hemos incluido un laboratorio vulnerable basado en Docker. Solo necesitarás descomprimir el archivo ZIP en tu máquina Kali Linux, ejecutar el archivo .sh y desplegar el entorno Docker para realizar la prueba.
Descargar el LAB .tar: Primero, descomprime el archivo que contiene el laboratorio vulnerable:
Ejecutar el script de despliegue: Dentro de una carpeta, deberás tener los 2 archivos, uno de ellos auto_mount.sh. Este script está diseñado para desplegar el entorno Docker vulnerable automáticamente y el laboratorio en TAR que deberás pasar como parámetro. Ejecútalo con:
bash auto_mount.sh cve-2024-23897.tar
El script tomará el archivo comprimido Docker .tar como parámetro para lanzar el contenedor vulnerable y probar la explotación de la vulnerabilidad.
Conectar al servidor Jenkins: Una vez que el entorno Docker esté en ejecución, podrás conectarte al servidor Jenkins desde tu máquina Kali Linux. La interfaz de Jenkins estará disponible en la dirección IP y puerto configurados en el contenedor.
Ejecutar el Script de Explotación: Ahora que el servidor Jenkins vulnerable está en ejecución, puedes ejecutar el script de explotación en la máquina Kali e intentar la ejecución remota de comandos en Jenkins.
Python para explotar la vulnerabilidad CVE-2024-23897.Docker vulnerable.Docker para levantar el servidor Jenkins vulnerable.Desarrollado por: d1se0
Contacto: [email protected]