HackMyVM Forbidden — Linux

HackMyVM Forbidden — Linux

Esta es una máquina de HackMyVM de nivel medio

·

4 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.24.

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

Empezamos con un escaneo de puertos y podemos ver que solo tenemos los puertos 21 y 80.

Realizando un escaneo más profundo de los puertos encontrados podemos ver que tenemos acceso al servicio FTP por medio del usuario anónimo.

Al ingresar al servicio FTP observamos que tenemos una carpeta, posiblemente sea la carpeta web.

Ingresamos a la carpeta y podemos observar 3 archivos.

Ingresamos la dirección IP en el navegador y podemos ver un texto interesante.

Probamos uno de los archivos que encontramos y podemos deducir que se trata de la carpeta encontrada en el servicio anterior. También nos indica una pista.

Como no tenemos información adicional, probaremos subiendo algunas variantes de PHP.

Antes de abrir el archivo iniciamos nuestro listener.

Pero al abrir el archivo nos descarga el archivo, lo cual ocurre con varias extensiones que probamos.

Sin embargo, cuando probamos la extensión php5 notamos que nos recarga la página.

Al dirigirnos a nuestro listener, podemos observar que tenemos acceso.

Para facilitar las cosas en este punto migraremos la shell porque en este caso nos ocurre que no podemos hacer uso de las flechas o subir y bajar al comando anterior. Para ello primero hacemos

script /dev/null -c bash

luego un ctrl+z, regresaremos a nuestra consola seguido de ello ingresaremos los siguientes comandos para recuperar la shell usamos stty

stty raw -echo; fg
                reset xterm

para obtener más características usamos

export TERM=xterm

para la variable de entorno

echo $SHELL

y para pasar a bash usamos

export SHELL=/bin/bash

para establecer el tamaño adecuado de la consola ingresamos

stty rows 59 cols 236

de esta manera ya nos podemos mover con más libertad en la consola. Revisamos los usuarios que tenemos y observamos uno llamado marta, que era la firma del mensaje en la página.

También recordemos que había un texto que indicaba que teníamos un password en un archivo .jpg. Así que buscando todos estos archivos con esta extensión solo encontramos uno.

Para pasarnos el archivo revisamos si tenemos Python y como es así, iniciamos nuestro servidor.

En nuestra máquina descargamos el archivo.

Al abrir el archivo no podemos observar nada.

Probamos usando steghide, pero nos pide una frase.

Para poder ver si obtenemos la frase empleamos stegcracker y luego de unos segundos vemos que la frase es portugal.

Extraemos el archivo y podemos observar que se trata de un .zip, pero este contiene un password.

Para este paso empleamos zip2john así obtenemos el hash y con el uso de john podemos observar que el password es secret.

Descomprimimos el archivo y podemos observar 2 textos.

Al llevar a CyberChef solo vemos un texto y suponemos que el password sería

vGffXfDreF453!

Probamos el password, pero no es correcto. Intentamos con otros Usuarios y ocurre lo mismo.

Como ya ocurrió en otras máquinas, intentamos con el nombre de la imagen y este si funciona.

marta:TOPSECRETIMAGE

Realizamos un sudo -l y observamos que tenemos la capacidad de ejecutar el binario join con todos los permisos.

Buscamos este binario en GTFOBins donde observarnos Que no podemos elevar privilegios pero si podemos leer archivos sin restricciones.

Como no tenemos el servicio SSH habilitado, leeremos el archivo shadow.

Copiamos los campos de los 3 usuarios que desconocemos.

Luego de ejecutar shadow para ver si obtenemos alguna credencial, vemos que solo obtuvimos las credenciales de peter.

peter:boomer

Nos conectamos como peter y al realizar un sudo -l observamos que tenemos permisos para ejecutar el binario setarch.

De la misma manera buscando en la página de GTFOBins podemos ver que nos indica la manera de aprovecharnos de este binario. Siendo en este que tenemos la capacidad de obtener una shell.

Para este paso no es solo ejecutar como indica.

Debemos obtener la arquitectura, para ello primero ingresamos el comando uname -a

Luego de ellos agregamos la arquitectura y somos root. De esta manera culminando esta máquina.