🟢Solstice
Write-up de la máquina Solstice de Proving Grounds #writeup #walkthrough
Last updated
Write-up de la máquina Solstice de Proving Grounds #writeup #walkthrough
Last updated
Comenzamos enumerando que servicios tiene abiertos la máquina Solstice.
Existen 8 puertos abiertos en la máquina víctima. Vamos a realizar un escaneo profundo de estos servicios.
Tenemos tres puertos HTTP: 80, 8593 y 54787. Vamos a inspeccionar el contenido de los tres puertos.
El único puerto que parece devolver resultados es el 8593. Aquí encontramos la página de la biblioteca del sitio web.
Si nos fijamos en la URL, puede ser un posible punto vulnerable a LFI. Vamos a verificarlo.
Ahora que sabemos que la aplicación es vulnerable a LFI, trataremos de aprovechar la vulnerabilidad para obtener un shell. Una buena manera de hacerlo es mediante el envenenamiento de logs.
Probamos algunos archivos de logs interesantes (auth.log, mail.log, etc.), pero los únicos a los que pude acceder fueron los registros de access y error de Apache (/var/log/apache2/access.log y /var/log/apache2/error.log).
Sabemos que podemos acceder al registro de errores de Apache, donde es muy probable que podamos envenenar esto para obtener un shell.
Sabiendo que la aplicación es vulnerable a LFI y que tenemos acceso a los logs del servidor, vamos a tratar de envenenar estos logs, añadiendo código PHP malicioso a a los logs. Para ello, ejecutamos de la siguiente manera:
Ponemos a la escucha un oyente nc en el puerto 4444. Para que funcione la shell debemos cargar en el navegador el archivo access.log.
Ya tenemos acceso de bajos privilegios en la máquina objetivo. Vamos a buscar la flag local.txt
Realizamos las diversas enumeraciones para buscar posibles puntos vulnerables.
*Cambio de IP
Buscamos todos los archivos y directorios con SUID
Encontramos un directorio extraño /var/tmp/sv. Vemos su contenido.
Después de ingresar al directorio, descubrimos que hay un index.php en este directorio donde todos los usuarios tienen permisos de lectura y escritura, y el propietario es root.
El propósito es obtener una shell reversa de un usuario escribiendo una carga útil y accediendo al archivo index.php debajo del sitio.
Enumeramos los servicios que se están ejecutando en la máquina víctima.
¿Qué tenemos hasta ahora? Un archivo donde www-data tiene permisos de escritura y lectura, y un servidor interno que se ejecuta como "root".
Sabiendo esto, vamos a modificar el archivo index.php para añadir la carga útil para ejecutar la reverse shell y trataremos de cargarlo a accediendo al puerto 57 a través de localhost de la máquina "solstice".
Modificamos index.php
El siguiente paso será acceder a 127.0.0.1:57.
Al mismo tiempo, en nuestra máquina de ataque tenemos a la escucha un oyente nc en el puerto 1234.
Como vemos, ya tenemos acceso a la máquina víctima con privilegios máximos. Solo quedará buscar la flag proof.txt