Driftingblues3 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.94SVN ( https://nmap.org ) at 2025-04-10 11:50 EDT
Nmap scan report for 192.168.28.18
Host is up (0.0011s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 6a:fe:d6:17:23:cb:90:79:2b:b1:2d:37:53:97:46:58 (RSA)
| 256 5b:c4:68:d1:89:59:d7:48:b0:96:f3:11:87:1c:08:ac (ECDSA)
|_ 256 61:39:66:88:1d:8f:f1:d0:40:61:1e:99:c5:1a:1f:f4 (ED25519)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-title: Site doesn't have a title (text/html).
| http-robots.txt: 1 disallowed entry
|_/eventadmins
|_http-server-header: Apache/2.4.38 (Debian)
MAC Address: 08:00:27:0E:A1:B3 (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 7.42 secondsVeremos que hay una pagina web alojada en el puerto 80 que si entramos veremos una pagina normal, por lo que vamos a intentar entrar al robots.txt a ver que nos encontramos.
Info:
Veremos que hay un directorio llamado /eventadmins que si entramos dentro de el veremos esto otro:
Vemos lo que parece ser un archivo HTML en el que si probamos a entrar a el veremos esto otro:
Info:
Si inspeccionamos la pagina veremos esta linea bastante interesante:
Veremos que esta codificado en Base64 que si lo decodificamos veremos esto:
Info:
Veremos que hay otro mensaje codificado de nuevo, por lo que lo decodificaremos de la siguiente forma:
Info:
Vemos lo que parece ser otro archivo en la pagina web, vamos a probar a meternos de esta forma:
Info:
Vemos que nos esta mostrando de forma repetitiva que se esta abriendo una sesion de root, por lo que vamos a probar a intentar injectar algun comando para ver si se muestra de forma ejecutada.
Vamos a realizar un LOG POISONING mediante SSH ya que vemos que se esta realizando una conexion por SSH y cuando intentamos inciciar sesion por SSH se muestra el nombre de usuario, por lo que vamos a intentar injectar comandos mediante el nombre de usuario:
Info:
Ahora echo esto tendremos que enviar la siguiente peticion para que se cargue dicho comando pero con el parametro enviado:
Info:

Veremos que ha funcionado, por lo que vamos a probar a enviarnos una reverse shell de la siguiente forma:
Volvamos a enviar este comando:
Y enviamos este payload de esta forma codificada en URL:
Pero antes de enviar eso por la URL nos pondremos a la escucha para obtener la shell:
Y si enviamos el payload, volveremos 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 robertj
Si vamos a la /home y listamos en cuales podremos entrar veremos lo siguiente:
Vemos que podemos entrar en la carpeta de la /home del usuario robertj y si listamos dentro veremos lo siguiente:
Vemos que tambien podemos entrar en el .ssh de dicho usuario, por lo que podremos aprovechar esto para meter nuestra clave PEM de nuestro host y poder conectarnos por SSH sin necesidad de ingresar la contraseña de dicho usuario, pudiendo autenticarnos como el, por lo que haremos lo siguiente:
MAQUINA HOST
Info:
Ahora que hemos generado esto en la carpeta .ssh/ vamos a copiarnos el contenido de la clave publica y pasarnosla un archivo que tendremos que llamar como authorized_keys, para que asi nos podamos conectar desde nuestro host:
Info:
Ahora en la maquina victima le pegaremos dicho contenido dentro de la carpeta .ssh/ de la carpeta robertj:
Echo esto desde nuestro host vamos a conectarnos con dicho usuario con nuestra clave PEM desde el host.
Info:
Con esto veremos que ha funcionado, por lo que leeremos la flag del usuario.
user.txt
Escalate Privileges
Si hacemos el id veremos esto:
Veremos que pertenecemos al grupo operators, pero si listamos los permisos SUID que tenemos veremos esto:
Info:
Veremos esta linea interesante, que casualmente pertenecemos a dicho grupo:
Vamos a ver que pasa si lo ejecutamos:
Info:
Vemos que se estan ejecutando varios comandos y nos muestra la salida, pero vamos a ver si utiliza rutas absolutas dentro del binario.
Info:
Vemos que mas o menos estamos viendo los comandos que esta utilizando, y no esta utilizando rutas absolutas por lo que podremos realizar la tecnica llamada PATH hijacking/binary hijacking con el binario ip en este caso.
Vamos a crear un script que ponga permisos SUID a la bash de la siguiente forma:
Lo guardamos y ahora vamos a modificar el PATH para que cuando lo ejecutemos es ejecute como root el script llamado ip por lo que tendremos que poner que primero vaya a la ruta /tmp para que funcione:
Ahora si vemos el PATH:
Info:
Veremos que ha funcionado, por lo que vamos a ejecutar de nuevo el binario:
Info:
Ahora vamos a comprobar que esta bien ejecutado:
Info:
Vemos que funciono, por lo que vamos a ejecutar esto otro para obtener el usuario root:
Info:
Con esto veremos que somos root por lo que leeremos la flag del usuario root.
root.txt
Last updated