🟢PermX
En esta ocasión vamos a hacer el writeup de la máquina PermX de Hack the Box, una máquina Linux de dificultad easy.

Primer acceso
Añadimos la IP 10.10.11.23 a nuestro /etc/hosts y accedemos través del navegador.

Parece una web de cursos online. En la pestaña About, encontramos la parte del equipo, que nos podría servir para hacer bruteforce contra usuarios dirigidos:

La mayoría de links no llevan a ningún lado y solamente recargan la página actual. En principio no encontramos nada relevante.
Escaneo de puertos
Solo encontramos 2 puertos abiertos, el 22 y el 80. Los típicos. Podríamos probar a hacer bruteforce de SSH con los usuarios que encontramos en la web.
Fuzzing
Haciendo fuzzing con dirsearch nos encontramos unos pocos directorios:
Revisando los directorios no encontramos nada relevante.
Enumeración de Vhosts
En este momento puede parecer que no podemos hacer nada, pero vamos a usar ffuf para enumerar subdominios dentro de este host:
Encontramos los subdominios www y lms, por lo que vamos a añadirlos a nuestro /etc/hosts.
Nos interesa sobre todo el subdominio lms.permx.htb:

Llegamos a un panel de login de Chamilo, un software de elearning. En este punto podríamos buscar exploits específicos.
Búsqueda de exploits
Haciendo un poco de research nos encontramos este exploit en Github que nos podría servir:
Si lo ejecutamos nos da las instrucciones:
Necesitamos especificarle:
Una reverse shell (en php)
El host de destino
El puerto para nuestra reverse shell
Voy a crear una reverse shell por ejemplo con el plugin de Hack Tools:

Lo voy a guardar en el directorio raiz / con el nombre de shell.php
Explotación
Vamos a ejecutar el exploit de la siguiente manera:
Ahora si vamos a la siguiente ruta deberíamos ver nuestra shell:

Hay más hackers atacando la máquina, por eso que hay varias reverse shells subidas, pero hacemos click en la nuestra y recibimos la conexión en la terminal!
Somos el usuario www-data, y vemos que hay un usuario mtz en el sistema (user flag), pero no podemos acceder. Vamos a hacer un poco de credential hunting:
Ejecutamos un Linpeas y encontramos cosas relevantes, como un posible usuario y contraseña para una base de datos MongoDB:
Usando técnicas de Credential Hunting buscando archivos de configuración, encontramos uno que contiene credenciales para una base de datos:
Conexión a base de datos
Vamos a usar estar credenciales para conectarnos a mysql:
Enumeración de la BBDD
De todas las tablas de la base de datos, nos interesa la tabla user, donde podría haber información confidencial sobre el usuario:
Buuum! Obtenemos las credenciales del admin y de un nuevo usuario anonymous.
En BCrypt, el hash incluye el salt y el costo. Por ejemplo:
Vamos a guardar estos 2 hashes en un archivo hashes.txt y vamos a crackearlo con john:
User flag
Intentamos crackear estos hashes pero tarda demasiado. Vamos a probar a conectarnos por SSH con la contraseña de la base de datos, ya que puede estar reutilizada, y nos logueamos como el único usuario que habia en el sistema mtz:

Tenemos la User Flag! 🏆
Escalada de privilegios
Lo primero, comprobamos como siempre los permisos de ejecución de este usuario mtz:
Vamos a ver el contenido del script acl.sh:
Este script permite modificar los permisos dentro del path /home/mtz , entonces lo que vamos hacer es ejecutar los siguientes dos comandos:
El primer comando crea un simlink, una especie de acceso directo del path
/con un nombre llamado root.El segundo comando ejecuta el script acl.sh que este otorga permisos de escritura y lectura al archivo o carpeta que sea crea con el nombre root ubicado en
/home/mtz. Esto nos permite leer y escribir el archivo/etc/shadow, lo que nos permitiría cambiar la contraseña del usuario root.
Ejecutando el script para leer /etc/shadow
Crear nuevo password de root
Elevar privilegios
Como veis, hemos modificado la contraseña del usuario root con la que hemos creado mediante openssl, siguiendo la misma estructura de contraseña.
Una vez que hemos modificado la contraseña, cambiamos al usuario root con su root y listo. Ya somos root! 😎
Última actualización
¿Te fue útil?
