t800 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-04-25 11:15 EDT
Nmap scan report for 192.168.28.22
Host is up (0.00086s latency).

PORT    STATE SERVICE VERSION
80/tcp  open  http    nginx 1.14.2
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: nginx/1.14.2
800/tcp open  ssh     OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey: 
|   2048 b6:be:5a:0b:ec:0b:53:69:b6:7b:54:46:7d:40:56:75 (RSA)
|   256 a3:3c:a5:67:ba:42:94:04:49:47:24:30:63:91:ef:c3 (ECDSA)
|_  256 b2:75:86:d8:45:99:9a:9d:89:10:41:9a:d0:03:6c:a8 (ED25519)
MAC Address: 08:00:27:40:81:57 (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.62 seconds

Veremos que hay un puerto 80 en el que esta alojada una pagina web, vamos a ver que contiene, si entramos dentro veremos una imagen de un señor, pero poco mas, por lo que vamos a realizar un poco de fuzzing:

Gobuster

Info:

Veremos que hay 2 rutas interesantes, entre ellas la llamada sexy y la otra llamada robots.txt, vamos a ver que hay en el robots.txt:

Info:

Veremos que tendremos que realizar fuzzing en busca de una imagen en la pagina del directorio llamado sexy, por lo que haremos lo siguiente:

Info:

Veremos que nos ha encontrado una imagen, por lo que vamos a ver que contiene:

Si la abrimos veremos una imagen del mismo hombre pero con otra pose, por lo que vamos a ver si a nivel de metadatos vemos algo interesante:

exiftool

Info:

Veremos algo muy interesante en los metadatos y es que hay unas credenciales en ellos, por lo que vamos a probarlo con el servidor SSH de la siguiente forma:

SSH

Si miramos en la pagina principal el codigo veremos esta parte del codigo en HTML:

Vemos lo que parece ser un nombre de usuario, por lo que vamos a probarlo por SSH.

Metemos como contraseña chmodxheart y veremos que estamos dentro.

Info:

Escalate user superruut

Si listamos los permisos SUID veremos lo siguiente:

Info:

Veremos esta linea de aqui:

Y seguidamente esta:

Veremos que esos binarios no suelen ser muy comunes, por lo que vamos a investigar a ver que hacen:

En el binario conky no veremos gran cosa, pero si buscamos con calife veremos lo siguiente:

URL = Manual binario calife

Vemos que si ejecutamos el binario junto con el nombre de un usuario podremos obtener una shell de dicho usuario, vamos a probar con root:

Tambien lo podemos descubrir por que si intentamos obtener la ayuda del binario veremos lo siguiente:

Nos indica que no es un usuario valido por lo que vamos a intentar con root:

Metemos como contraseña chmodxheart pero no nos dejara, por lo que vamos a probar con el otro usuario llamado superruut:

Metemos como contraseña chmodxheart y nos llevara a un editor de texto vi por lo que vamos aprobechar eso enviando un comando para obtener una shell de la siguiente forma:

Info:

Con esto veremos que seremos dicho usuario, por lo que leeremos la flag del usuario:

userflag.txt

Escalate Privileges

Como antes hemos visto tenemos con permisos SUID el binario conky por lo que vamos a investigar sobre el.

Si investigamos veremos que desde los archivos de configuracion si el out_to_console esta en True podremos exfiltrar informacion que nosotros modifiquemos dentro de dicho archivo, por lo que podremos hacer lo siguiente:

Primero vamos a ver donde se encuentra el archivo de configuracion:

Info:

Veremos que el que nos interesa es el siguiente:

Pero si leemos el archivo veremos lo siguiente:

Por lo que vemos la opcion que necesitamos esta desactivada, por lo que vamos a crear un archivo de configuracion en nuestra /home de la siguiente forma:

Vamos a ver si con esto funciona, ahora ejecutamos el binario para probarlo:

Info:

Veremos que ha funcionado de forma correcta, por lo que haremos lo siguiente:

Maquina Host

Lo guardamos y establecemos los permisos necesarios:

Ahora vamos a conectarnos mediante la clave PEM de la siguiente forma:

Info:

Con esto ya seremos root por lo que leeremos la flag de root:

rootflag.txt

Last updated