HackMyVM Suidy — Linux

Gm4tsyGm4tsy
3 min read

Para poder hacer uso de esta máquina primero debemos descargar el archivo y así poder desplegar el laboratorio.

Descargamos el archivo de la página https://hackmyvm.eu/machines/

Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos un archivo.

Para desplegar el laboratorio usaremos nuestro hipervisor favorito e iniciamos la máquina. En caso de no observar la IP de la máquina podemos emplear arp-scan para ver la dirección IP en nuestra red que sería la 192.168.0.16.

Realizamos un ping a la dirección IP y podemos validar que tenemos alcance.

Empezamos con un escaneo de puertos y podemos ver que tenemos 2 puertos identificados.

Volvemos a realizar un escaneo más profundo y no vemos información adicional.

Ingresamos la dirección IP en el navegador y solo observamos un mensaje.

Realizamos un escaneo de subdirectorios y podemos observar un robots.txt.

Ingresamos al robots.txt y podemos observar un texto extraño e inspeccionando hay otro directorio.

Al dirigirnos a la página de CyberChef y pegar el texto podemos ver que al quitar los / obtuvimos un texto, pero no da ninguna pista.

Al dirigirnos al otro nombre podemos ver el siguiente mensaje.

Siguiendo esa pista volvemos a realizar un escaneo de subdirectorios y podemos ver que tenemos varios.

Si ingresamos a cualquiera de los archivos obtenemos el mismo mensaje e intercambiando el pass por el user no podemos acceder.

Revisando un poco probamos con lo del mensaje y podemos acceder.

theuser:thepass

Listamos los archivos temporales así como la carpeta del usuario no vemos nada llamativo.

Viendo los permisos SUID podemos observar que tenemos uno llamado suidyyyy

Tratamos de leer que contiene, pero no se puede leer lo que realiza, por ello probamos ejecutándolo y curiosamente somos el usuario suidy.

Listamos el contenido del archivo podemos observar un texto.

Volviendo a revisar los permisos SUID podemos ver que tenemos el mismo binario.

Verificando los permisos podemos observar que tenemos la capacidad de modificar el archivo, pero si realizamos esto podríamos perder el SUID.

Ya que no tenemos más información descargaremos el pspy por ello iniciamos el servidor en nuestra máquina atacante.

Descargamos el archivo y damos permisos de ejecución.

Luego de unos segundos luego de ejecutarlo podemos observar que se ejecuta un /root/timer.sh

Supondremos que ese script se ejecuta e interviene con el archivo suidyyyyy. Y como tenemos permisos como theuser lo que haremos es reemplazar este archivo. Revisamos si tenemos gcc y si lo tenemos.

Ahora creamos un archivo que nos genere una shell de bash como root.

#include <stdlib.h>
#include <unistd.h>

int main()
{
   setuid(0);
   setgid(0);
   system("/bin/bash");
   return 0;
}

Compilamos nuestro archivo y le colocamos el mismo nombre del binario.

Copiamos el binario, solo podemos hacerlo como theuser.

Probamos ejecutarlo al momento, pero no es posible.

Recordemos que tenemos un script que está ejecutando el archivo cada ciertos segundos. Luego de esperar unos segundos volvemos a ejecutarlo y podemos observar que accedimos como root.

Al ir a la carpeta de root vemos que nuestra suposición era correcta. De esta manera culminamos esta máquina.

0
Subscribe to my newsletter

Read articles from Gm4tsy directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Gm4tsy
Gm4tsy