🟢Inclusiveness
Write-up de la máquina Inclusiveness de Proving Grounds #writeup #walkthrough
Last updated
Write-up de la máquina Inclusiveness de Proving Grounds #writeup #walkthrough
Last updated
Comenzamos realizando un escaneo rápido de los servicios que tiene abiertos está máquina.
La máquina objetivo tiene tres servicios abiertos (21,22 y 80). Vamos a realizar un escaneo profundo de estos servicios.
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.
Conociendo la información recibida de NMAP, podemos comenzar viendo el contenido del servidor FTP.
Solo podemos acceder a un directorio que no contiene información de interés. Puede ser útil más adelante.
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.
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".
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.
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.
Ya tenemos conexión en la máquina objetivo como www-data. El siguiente paso será buscar la flag local.txt.
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.
Cambiamos el directorio /tmp de la ruta del sistema de destino, y verificamos que el cambio se ha realizado correctamente.
Ejecutamos "rootshell"
Después de ejecutar "rootshell", obtenemos acceso a la máquina como usuario "root". Solo quedará buscar la flag para completar este CTF.