Translator HackMyVM (Easy - Linux)
Escaneo de puertos
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>nmap -sCV -p<PORTS> <IP>Info:
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-16 03:17 EDT
Nmap scan report for 192.168.5.40
Host is up (0.00051s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5 (protocol 2.0)
| ssh-hostkey:
| 3072 08:cf:50:b2:4f:41:43:c4:66:56:ce:96:b9:04:8c:77 (RSA)
| 256 40:b7:11:24:76:59:cd:e0:79:db:71:d1:39:29:d5:45 (ECDSA)
|_ 256 44:64:ba:b8:52:4f:ca:00:dd:3e:c3:28:71:6f:77:76 (ED25519)
80/tcp open http nginx 1.18.0
|_http-server-header: nginx/1.18.0
|_http-title: Site doesn't have a title (text/html).
MAC Address: 08:00:27:38:EC:CC (PCS Systemtechnik/Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.93 secondsVeremos que hay un puerto 80 en el que tiene alojada una pagina web, vamos a ver que contiene si entramos, estando dentro veremos una especie de traductor, en el cual si metemos una palabra nos lo traducira de la siguiente forma:
Info:
Vemos que el tipo de patron que esta utilizando para traducir es sustitución alfabética invertida o tambien conocido como Cifrado Atbash, lo que hace es invertir el abecedario dependiendo de la letra que pongamos, vamos a montarnos un script de python3 para traducirlo de mejor forma.
translate.py
Ahora si lo ejecutamos de esta forma:
Info:
Vemos que se esta traduciendo bien, vamos a probar a meter algo ya traducido, pero para intentar realizar un RCE a ver si se pudiera.
Si metemos directamente rw que es igual a id veremos lo siguiente:
Se esta traduciendo bien, pero como que se duplica, vamos a probar varios tipos de concatenacion, a ver si se pudiera concatenar y de alguna forma bypassear esto.
Info:
Por lo que vemos efectivamente se esta ejecutando el comando, por lo que vamos a realizarnos una reverse shell de esta forma.
Info:
Para hacerlo mas facil vamos a utilizar directamente el parametro que utiliza para traducir la pagina llamado hmv con curl.
Antes de enviar el comando, nos pondremos a la escucha:
Ahora si enviamos el comando y volvemos a donde tenemos la escucha veremos lo siguiente:
Veremos que ha funcionado, por lo que tendremos que sanitizar la shell.
Sanitización de shell (TTY)
Escalate user ocean
Si nos vamos a la siguiente ruta bastante interesante:
Veremos lo siguiente:
Vemos que hay un archivo que no hemos visto antes llamado hvxivg por lo que vamos a leerlo:
Vemos que es una frase codificada por el mismo codificado que estabamos utilizando antes, por lo que vamos a llevarlo a nuestro script a ver como lo traduce.
Info:
Vamos a probar dicha password con el usuario oceana ver si funciona.
Metemos como contraseña ayurv3d4 y veremos que somos dicho usuario, por lo que leeremos la flagdel usuario.
user.txt
Escalate user india
Si hacemos sudo -l veremos lo siguiente:
Vemos que podemos ejecutar el binario choom como el usuario india por lo que haremos lo siguiente:
Info:
Con esto veremos que seremos dicho usuario.
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Vemos que podemos ejecutar el binario trans como el usuario root por lo que haremos lo siguiente.
Info:
En toda esta informacion veremos un parametro bastante interesante que es el siguiente:
Como esto se esta ejecutando con root podemos aprobechar una vulnerabilidad con el binario man que se esta ejecutando si yo pongo el parametro -M por lo que vamos a realizar lo siguiente:
Info:
Con esto veremos que ya seremos root, por lo que leeremos la flag de root.
root.txt
Last updated