HTB - Perfection
https://app.hackthebox.com/machines/Perfection
Última actualización
https://app.hackthebox.com/machines/Perfection
Última actualización
Nombre de la Máquina: Perfection
IP de la Máquina: 10.129.229.121
Sistema Operativo: Linux
Dificultad: Easy
Fecha de Publicación: 02 Mar 2024
Realizamos un ping a la máquina objetivo para verificar la conectividad y obtener información sobre la ruta utilizando la opción -R
para incluir la ruta de retorno:
El valor de TTL (Time To Live) igual a 63 puede ser indicativo de que el sistema operativo de la máquina objetivo es Linux. El TTL es un valor en el campo de los paquetes IP que indica la duración que un paquete puede estar en una red antes de ser descartado. Linux establece por defecto el valor de TTL de sus paquetes IP en 64, que al pasar por un salto en la red se decrementa a 63.
Luego, realizamos un escaneo de puertos utilizando Nmap para identificar los puertos abiertos en la máquina objetivo. Utilizamos las opciones -p-
para escanear todos los puertos, --open
para mostrar solo los puertos abiertos, -sS
para un escaneo de tipo TCP SYN, --min-rate 5000
para establecer la velocidad mínima de paquetes y -vvv
para un nivel de verbosidad alto. Además, utilizamos -n
para desactivar la resolución de DNS, -Pn
para no realizar el escaneo de ping, y -oG allPorts
para guardar la salida en un archivo con formato Greppable para luego utilizar nuestra función extractPorts:
Posteriormente, realizamos un escaneo más detallado de los puertos identificados utilizando la opción -sCV
para detección de versiones y scripts de enumeración de servicios. Específicamente, indicamos los puertos a escanear con -p __PORTS__
(reemplazando __PORTS__
con los puertos identificados en el paso anterior) y guardamos la salida en un archivo de texto con el nombre targeted
:
Para añadir la entrada "10.129.229.121 perfection.htb" al archivo /etc/hosts
, puedes usar el siguiente comando en la terminal:
Al inspeccionar la pagina nos encontramos con una calculadora de notas.
Por lo que primero ingreso valores para entender cómo funciona la herramienta. De paso lo hago con Burpsuite capturando el request y enviandolo al repeater.
También podemos encontrar cierta "seguridad".
Entonces lo que quiero hacer es bypassear el filtro el cual arroja "Malicious input blocked". Para ello debo primero saber a qué me estoy enfrentando, para eso existen herramientas como WhatWeb, Wappalyzer.
Así que lo que necesitamos es realizar una SSTI (Server Side Template Injection) en ruby. Que logre bypassear ese filtro. Para ello podemos hacer uso de HackTricks: https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#erb-ruby
{{7*7}} = {{7*7}}
${7*7} = ${7*7}
<%= 7*7 %> = 49
<%= foobar %> = Error
Lo importante es andar jugando con el url enconde para que esta funcione, aquí podemos ver como nos retorna el valor 49. Esto quiere decir que es vulnerable.
Cogemos estabilidad en la shell:
Y buscamos informacion interesante (.txt, .db, .sql, .dump).
Identificamos el hash con hash-identifier
Entonces utilzo john y no hay buenos resultados.
Entonces subo LinEnum.sh a la máquina para entender un poco más de ella y Voilà.
Quiere decir que nuestro usuario Susan tiene privilegios root, quiere decir que si logramos descifrar la clave ya estaríamos listos. También encuentro un archivo llamado "susan" en /var/mail/. El cual describe como está compuesta la contraseña:
Quiere decir que la clave sería algo como: susan_nasus_1234567890. Así que lo que se me ocurre es preguntarle a chatGPT:
Y qué creen, su respuesta fue de mucha ayuda:
En mi caso puede tardar hasta 3 horas. Así que a esperar el resultado. Luego accedemos como root y obtenemos la segunda flag.