Strong Jenkins - DockerLabs
| OS | Dificultad | Creator |
|---|---|---|
| Linux | Medio | ElPinguinoDeMario |
Reconocimiento
Durante la fase inicial de reconocimiento, identificamos varios puertos abiertos en el sistema. Uno de estos, el puerto 8080, estaba particularmente interesante ya que alojaba una instancia de Jenkins.
Al acceder a Jenkins, observamos la interfaz de inicio de sesión estándar.
Interceptación y Fuerza Bruta
Decidimos interceptar la autenticación usando Burp Suite. Configuramos el proxy para interceptar la solicitud de inicio de sesión con las credenciales de usuario admin y contraseña admin.
Después de capturar la petición, la enviamos al Intruder de Burp Suite para preparar un ataque de fuerza bruta en el campo de contraseña.
Configuramos la pestaña de payloads añadiendo un diccionario de contraseñas comunes para la fuerza bruta. En la pestaña Settings, bajo Grep - Extract, establecimos un filtro para identificar respuestas que indicaran un error de login.
Iniciamos el ataque y, tras varias pruebas, descubrimos que la contraseña correcta era rockyou, ya que el mensaje no indicaba error de login.
Escalada de Privilegios
Con acceso a Jenkins, navegamos al apartado ‘Manage Jenkins’ y luego a ‘Script Console’, donde ejecutamos código Java para obtener una reverse shell.
Una vez obtenido acceso a la shell, descubrimos que Python3 tenía configurado el bit SUID, lo cual es una oportunidad para escalar privilegios.
Utilizamos este vector para ejecutar Python3 con privilegios elevados y logramos obtener una shell como root, completando la escalada de privilegios.