# HackMyVM Light — 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/](https://hackmyvm.eu/machines/)

Al momento de descargar esta máquina y descomprimir el archivo, en este caso observamos un archivo.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864794314/5f07e5ac-0c5c-4d03-9543-2212ef77d8a3.png align="center")

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.13`.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864803084/ae92f0ca-824b-4b80-bb43-87fdce3627e8.png align="center")

Realizamos un escaneo de puertos, pero de primera no nos indica nada.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864834106/45b282c9-d49a-4e3b-95fc-32000fb75952.png align="center")

Realizamos un escaneo más profundo y vemos que tenemos dos puertos, en el último podemos ver que nos muestra información que puede ser un archivo PNG.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864850371/40859253-094c-414d-982a-11dfa5814197.png align="center")

Probamos extrayendo el archivo con `Netcat`, pero nos indica que lo rechaza.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864877811/93624fd5-7ae5-471f-baa7-abe6906974d0.png align="center")

Realizamos un nuevo escaneo y vemos que ahora es otro puerto.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864887157/38d88f44-6291-4074-8dfc-9814a28a1b33.png align="center")

Como no podemos descargar el archivo, ya que el puerto cambia, lo haremos desde todos los puertos. De esta manera si podemos obtener el archivo y si observamos el archivo está en una representación hexadecimal.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864897250/9635e0b4-dd17-4ade-aee3-5b007351ea0d.png align="center")

Convertimos el archivo y al abrirlo vemos unas credenciales.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864916915/de165bd3-6c0a-4679-a7d7-47ef4fc953e7.png align="center")

Ingresamos las credenciales y logramos ingresar como el usuario `lover`.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864927258/410983f9-3985-4abe-932a-adf7415d87b0.png align="center")

Realizamos un `sudo -l` y podemos observar que tenemos binario interesante.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864933575/c99b84a5-2ef4-4927-855b-2bc78a364ee1.png align="center")

Buscando a que se puede referir observamos que tiene relación con [Python](https://docs.python.org/es/3.8/library/2to3.html).

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864940465/49215dc0-908b-4866-a22b-77c93cac5db9.png align="center")

Tratamos de ejecutar alguna `shell` para aprovecharnos de manera directa, pero no tiene resultado.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864947420/0159d4f3-f19a-47d7-88d7-e7a89f460406.png align="center")

Revisamos por medio de `crontabs` podemos ver que ejecuta un archivo que tenemos en el directorio del usuario, pero también vemos que se ejecuta al reiniciar, pero no sabemos si al reiniciar el equipo el archivo regresara a estar como antes y también observamos de primera que no se ejecuta con permisos root.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864960155/28012286-775e-498c-a133-e845ddd7d2a3.png align="center")

Revisaremos si tenemos algún otro archivo ejecutándose, para ello pasaremos `pspy` de nuestra máquina a la máquina víctima.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738864981757/584b2d4e-bac6-4734-a784-3c0a47d7428d.png align="center")

Descargamos el archivo, damos permisos de ejecución e iniciamos.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738865002420/736275a0-770e-4277-a01e-0685ac27a68c.png align="center")

Luego de unos minutos vemos que tenemos un archivo que se ejecuta cada cierto tiempo. Tenemos que tener en cuenta que el script está en la carpeta de `root`, pero debemos recordar el binario `2to3` que podemos emplear para escalar privilegios.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738865019823/3fbac111-ebe6-43ce-a63a-c80ca9b56414.png align="center")

Para ello crearemos una `revshell` en la carpeta `tmp`.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738865031604/571f765b-b2f0-4944-88a0-4c1987ad5c1c.png align="center")

Comenzamos nuestro `listener`.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738865038923/dda337e2-67b0-4868-ac41-5b593f56003f.png align="center")

Reemplazaremos el archivo [`light.py`](http://light.py) de root con el nuestro empleando `2to3`

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738865053603/ba7a8388-cd71-4538-81b1-8b7ceec7a7fa.png align="center")

Luego de ello si vamos a nuestro listener podemos observar que somos `root`. De esta manera culminando esta máquina.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1738865064105/6449fbcd-ab30-41e2-9afd-854ad243b223.png align="center")
