π©HTB - Perfection
https://app.hackthebox.com/machines/Perfection

InformaciΓ³n General
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
Enumeration
Ping para obtener ruta de retorno
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.
Escaneo de puertos con Nmap
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:

Escaneo detallado con Nmap
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:

Modificando /etc/hosts
Para aΓ±adir la entrada "10.129.229.121 perfection.htb" al archivo /etc/hosts, puedes usar el siguiente comando en la terminal:

InspecciΓ³n con Burpsuite
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".

Wappalyzer
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.

Server Side Template Injection en Ruby
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
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.


Γltima actualizaciΓ³n