Smol HackMyVM (Intermediate - 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-04 05:47 EDT
Nmap scan report for 192.168.1.169
Host is up (0.00044s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 44:5f:26:67:4b:4a:91:9b:59:7a:95:59:c8:4c:2e:04 (RSA)
|   256 0a:4b:b9:b1:77:d2:48:79:fc:2f:8a:3d:64:3a:ad:94 (ECDSA)
|_  256 d3:3b:97:ea:54:bc:41:4d:03:39:f6:8f:ad:b6:a0:fb (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
|_http-title: Did not follow redirect to http://www.smol.hmv
|_http-server-header: Apache/2.4.41 (Ubuntu)
MAC Address: 08:00:27:D5:03:1C (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.83 seconds

Vemos que tiene una pagina web alojada en el puerto 80, pero ya de primeras vemos que nos redirije al siguiente dominio llamado www.smol.hmv por lo que lo añadiremos a nuestro archivo hosts:

Lo guardamos y volveremos a cargar la pagina, veremos lo siguiente:

Veremos que ahora si funciona, si bajamos al footer veremos que esta hosteado por wordpress por lo que vamos a realizar un escaneo con la herramienta llamada wpscan.

wpscan

Info:

Veremos varios usuarios, ahora vamos a ver si sacamos la contraseña alguno:

users.txt

Info:

No veremos que consigamos ninguna credencial, pero veremos la siguiente seccion de plugins los cuales pueden ser vulnerables:

Vamos a buscar si tuviera alguna vulnerabilidad dicho plugin, veremos que si hay una vulnerabilidad y nos muestra el POC de dicha vulnerabilidad:

URL = PoC Vuln jsmol2wp

Por lo que tendremos que ajustarlo a nuestras necesidades, quedando de la siguiente forma:

Si nos metemos aqui para poder ver el archivo llamado wp-config.php, veremos que nos deja:

Por lo que si intentamos leer el archivo passwd veremos que tambien nos deja:

Info:

Vemos varios usuarios en el sistema:

Viendo respecto al ID que tiene cada uno, podemos saber que el primero el haberse creado es think por lo que vamos a probar fuerza bruta con dicho usuario.

Si probamos a conectarnos mediante ssh para probar, veremos lo siguiente:

Info:

Vemos que requiere de una clave PEM por lo que vamos a probar a leer una id_rsa de algun usuario, pero veremos que no podremos, por lo que vamos a utilizar la anterior informacion que obtuvimos con el archivo wp-config.php para intentar iniciar sesion en wordpress.

Y metemos como credenciales lo siguiente:

Veremos que si funciona y estaremos dentro, pero no somos administradores, por lo que vamos a realizar fuzzing para ver que plugins hay y poder leerlos.

Info:

Veremos que nos ha encontrado un archivo llamado wp-content/plugins/hello.php por lo que vamos a intentar leerlo con dicha vulnerabilidad:

Info:

Veremos que funciona y en esta parte estamos viendo algo interesante:

Que decodificado quedaria asi:

Escalate user www-data

Veremos que esta en un codigo de direccion de memoeria en little endian (octal y hexadecimal), que quedaria asi:

  • \143 (octal) = c

  • \155 (octal) = m

  • \x64 (hex) = d

Palabra: cmd

Por lo que vemos podremos ejecutar comando mediante ese parametro, por lo que nos generaremos una reverse shell de la siguiente forma:

Lo guardamos y haremos lo siguiente:

Abriremos un servidor de python3:

Ahora nos pondremos a la escucha:

Y seguidamente ejecutaremos lo siguiente:

Si volvemos a donde tenemos la escucha veremos lo siguiente:

Veremos que ha funcionado, por lo que seremos dicho usuario, ahora vamos a sanitizar la shell.

Sanitizacion de shell

Escalate user diego

Nos acordamos de que tenemos las credenciales para poder entrar en mysql, vamos a ver si encontramos credenciales registradas de algun usuario del sistema en dicha base de datos.

Dentro seleccionaremos dicha base de datos:

Ahora vamos a ver la DDBB de la tabla usuarios.

Info:

Vemos que la mayoria de nombres estan en el sistema, por lo que vamos a intentar crackear alguna contraseña.

Vamos a crear un listado de hashes para intentar crackearlos:

hash

Info:

Vemos que ha funcionado y obtendremos unas credenciales, por lo que vamos a intentar conectarnos por SSH para tener una mejor shell.

Pero antes tendremos que escalar a diego para generarnos una clave PEM ya que solo podemos entrar por eso.

Metemos como contraseña sandiegocalifornia, por lo que leeremos la flag del usuario.

user.txt

Escalate user think

Si listamos las carpetas de la /home veremos lo siguiente:

Info:

Vemos que esta dentro del grupo internal y si vemos a que grupo pertenecemos, veremos lo siguiente:

Info:

Vemos que pertenecemos, por lo que podremos entrar dentro de las carpetas de la home, si investigamos veremos una en concreto bastante interesante, que seria la del usuario think, vemos que tiene una clave PEM en la que podremos meternos y leerla.

Veremos que nos deja, por lo que nos copiaremos el id_rsa pasandolo a nuestro host.

Maquina HOST

Lo guardamos y establecemos los permisos necesarios.

Ahora nos vamos a conectar por SSH mediante la clave PEM.

SSH

Info:

Echo esto veremos que estamos dentro.

Escalate user gege

Despues de una busqueda intensiva, si leemos el siguiente archivo veremos lo siguiente:

Info:

Vemos que si ahora realizamos lo siguiente podremos escalar a dicho usuario sin ningun tipo de password, por lo que haremos lo siguiente:

Y con esto ya seremos dicho usuario.

Escalate user xavi

Si vemos nuestra home veremos el siguiente archivo wordpress.old.zip, si intentamos descomprimirlo veremos que nos pide una contraseña, por lo que vamos a probar a crackear la contraseña de la siguiente forma.

Vamos abrir un servidor de python para pasarnos el archivo a nuestro host.

Ahora en nuestro host haremos lo siguiente:

Una vez que ya tengamos el archivo obtendremos el hash del ZIP.

Vamos a crackearlo con john de la siguiente forma:

Info:

Veremos que hemos obtenido la contraseña de forma correcta, por lo que vamos a utilizarla ahora para descomprimir dicho archivo.

Ahora si entramos en la carpeta descomprimida, veremos el famoso archivo de configuracion para la conexion de la DDBB a wordpress, pero si lo leemos veremos que tiene otras credenciales, en este caso el del usuario xavi.

Info:

Veremos esta parte interesante aqui:

Por lo que vemos las credenciales seran:

Por lo que las probaremos:

Metemos como contraseña P@ssw0rdxavi@ y veremos que seremos dicho usuario.

Escalate Privileges

Si hacemos sudo -l veremos lo siguiente:

Veremos que podemos editar el archivo passwd con el editor de texto llamado vi como el usuario root, por lo que haremos lo siguiente:

Guardamos el archivo y ahora realizaremos lo siguiente:

Info:

Y con esto ya seremos root por lo que leeremos la flag de root.

root.txt

Last updated