OffSec Pwned1
Última actualización
Última actualización
Primero que nada empezamos con lo tipico escaneo de puertos abiertos en el Host.
Versiones y servicios que corren para cada uno de los puertos que estan abiertos.
Si fuzzeamos la pagina web encontramos el directorio robots.txt el mas tipico.
Ahora si con curl le lanzamos una peticion a donde esta ese robots.txt tenemos dos directorios mas que nos dan.
Ahora si lanzamos una peticion igual usando curl, observamos que tenemos un archivo llamado secret.dic.
Ahora si lanzamos igualmente con curl, a todo el recurso, el secret.dic tenemos mas especie de directorios en la web.
El directorio pwned.vuln tiene un panel de login, pero si lanzamos una peticion observamos el codigo fuente de la pagina tenemos unas credenciales del ftp.
Nos conectamos al ftp con las credenciales encontradas.
Ahora estando dentro tenemos una nota y un id_rsa, pues nos los descargamos a local.
Bueno si le hacemos un cat a la nota, tenemos un posible usuario ariana, le cambiamos los permisos a la id_rsa.
Nos conectamos usando la id_rsa y con el nombre de usuario encontrado, y tenemos la primera bandera.
Si hacemos un sudo -l como ariana, observamos que selena puede ejecutar un script escrito en bash sin proporcionar contraseña.
Entonces lo vamos a ejecutar como el usuario selena.
Si lo ejecutamos nos da un welcome, y tenemos una especie de formulario, le ponemos el nombre selena y hacemos un user-pivoting del usuario ariana a selena.
Ahora si hacemos un id, observamos que selena esta en el grupo de docker, podemos usar esto para escala privilegios.
Si hacemos un docker images observamos que tenemos tres imagenes.
Luego si introducimos la sintaxis que se observa se ejecuta el contenedos Privesc.
Observamos que todo lo que estaba en la maquina real ahora esta dentro del contenedor, si nos vamos a root, podemos ver la ultima bandera la de root.txt.
El comando docker run
inicia un contenedor Docker basado en Privesc . Con -v /:/host/
, se monta el sistema de archivos del host dentro del contenedor en /host/
. Luego, chroot /host/
cambia el root directory del sistema al del host. Finalmente, bash
inicia un shell Bash dentro del directorio del host montado, permitiendo interactuar con el sistema de archivos del host desde el contenedor.
Maquina resuelta aca estas como root y todo lo del host montado en el contenedor.
Ahora si quieres tambien lo podemos hacer de la siguiente manera.
Estando en el contenedor si nos vamos a bin y le asignamos permisos SUID a la bash.
Ahora en la maquina host la orginal nos conectamos con id_rsa y primero observamos que la bash no tiene permisos SUID pero luego se los asignamos, hacemos un bash -p y somos root, vamos a root y observamos la misma flag
Dos formas en una misma de hacer lo mismo llegar hasta root.