🟢Potato
Write-up de la máquina Potato de Proving Grounds #writeup #walkthrough
Enumeración
Servicios abiertos
Como siempre, comenzamos la resolución del CTF enumerando los servicios que tiene la máquina abiertos.
Tres puertos abiertos: 22, 80 y 2112. Seguimos con el escaneo profundo de estos servicios.
La información más interesando que hemos recabado del escaneo de servicios es el inicio anónimo de sesión en el servidor FTP, que contiene un archivo de backup.
Enumeración Web
Inspeccionamos el contenido del puerto 80.
Nada destacable. Vamos con la enumeración de directorios.
Existe un directorio /admin y /admin/logs en el sitio Web. Vamos a ver el contenido de ambos directorios.
Probamos múltiples credenciales por defecto pero no obtenemos resultados.
Dentro del directorio /admin/logs tenemos la presencia de tres archivos logs, pero que tampoco contiene información de interés.
FTP
Descargamos el archivo.
Vamos a ver el contenido del archivo.
Explotación
El script usa la función strcmp para comparar el nombre de usuario proporcionado con admin y la contraseña proporcionada con $pass. Podemos tratar de realizar un bypass de "string compare" para la contraseña. Capturamos la petición con Burp.
Después de iniciar sesión, vemos un mensaje que nos dice que visitemos la página del panel.
Accedemos al panel de administrador.
Los archivos logs son los mismo que enumerábamos al comienzo del writeup. Lo más destacable, un posible punto vulnerable a LFI en la carga de los archivos logs.
Volvemos a capturar la petición de un archivo de log con Burp y tratamos de buscar el archivo /etc/passwd.
Obtenemos el hash del usuario "webadmin". Vamos a hacer dos cosas, primero descifrarlo con "john" y posteriormente, recordando que la máquina tiene abierto el puerto22, tratar de iniciar sesión con el usuario "webadmin" y la contraseña descifrada.
Desciframos la contraseña.
Las credenciales son "webadmin:dragon". Vamos a intentar iniciar sesión en la máquina víctima a través del servicio SSH.
Obtenemos acceso a la víctima con el usuario "webadmin". El siguiente paso, buscar la flag local.txt.
Elevación de privilegios
Para elevar privilegios, comenzamos enumerando posibilidades que podemos ejecutar como "root" sin password.
Dentro del directorio "/notes" hay dos archivos, un archivo que borra la pantalla y otro que muestra el comando id. Dentro de este directorio no tenemos permisos de escritura. Como el directorio /notes/ dispone del wildcard *, podemos ejecutar un archivo con permisos sudo fuera de este directorio. Creamos un archivo privesc.sh en el directorio "/home/webadmin".
Después de crear el archivo "privesc.sh", vamos a ejecutarlo de la siguiente manera.
Ya tenemos privilegios máximos en el objetivo. Solo quedará buscar la flag proof.txt para finalizar.
Last updated