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

nmap -p- --open --min-rate 2000 -Pn -n -vvv 192.168.236.101

Tres puertos abiertos: 22, 80 y 2112. Seguimos con el escaneo profundo de estos servicios.

nmap -p22,80,2112 -sVC -vvv 192.168.236.101

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.

feroxbuster --url http://192.168.236.101 -s 200,301

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.

john --wordlist=/home/elhackeretico/rockyou.txt webadmin 

Las credenciales son "webadmin:dragon". Vamos a intentar iniciar sesión en la máquina víctima a través del servicio SSH.

ssh webadmin@192.168.236.101

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.

sudo -l

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

touch privesc.sh
echo '/bin/sh' > shell.sh
chmod 777 shell.sh

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