🟠ICMP
Write-up de la máquina ICMP de Proving Grounds #writeup #walkthrough
Enumeración
Servicios abiertos
Comenzamos a resolver este CTF enumerando los servicios que tiene abiertos.
La máquina tiene abiertos los puertos 22 y 80. El siguiente paso será la enumeración profunda de los puertos abiertos.
Servicios abiertos:
Puerto 22 -> SSH -> OpenSSH 7.9
Puerto 80 -> HTTP -> Apache httpd 2.4.38
Enumeración Web
La máquina ICMP está ejecutando un servidor Web en el puerto 80. Veamos su contenido.
Tenemos una versión "Monitorr 1.7.6m"
Vamos a enumerar archivos y directorios presentes en el sitio Web.
Solo encontramos el directorio donde nos encontramos cuando accedemos al sitio Web.
Explotación
En la enumeración del sitio Web encontramos una versión de CMS, vamos a tratar de encontrar vulnerabilidades para esa versión.
Existe una vulnerabilidad de RCE sin autenticación para esa versión de CMS. Vamos a descargar ese exploit desarrollado en Python.
Para realizar la explotación necesitaremos la URL del sitio que queremos vulnerar, nuestra dirección IP y puerto local de escucha. También debemos poner a la escucha un oyente nc en el mismo puerto local indicado en la ejecución del exploit.
Tenemos acceso a la máquina objetivo con bajos privilegios. El siguiente paso será buscar la flag local.txt
Pivontando de www-data a fox
Después de que conseguimos el punto de apoyo en el sistema, verificamos a los usuarios del mismo.
Vamos a enumerar el contenido del directorio del usuario /fox.
Interesante en la enumeración. Vemos un directorio /devel para el que no tenemos permiso apra acceder y un archivo reminder. Veamos el contenido del archivo.
El archivo "reminder" indica que la encriptación se lleva a cabo mediante un archivo denominado crypt.php. Además, se dispone de un directorio de desarrollo con permisos de ejecución para otros usuarios, pero sin permisos de lectura/escritura. En consecuencia, se podría inferir que el archivo crypt.php podría encontrarse dentro de dicho directorio. Vamos a comprobarlo.
Puede la contraseña de algún servicio. Recordamos que este CTF ejecuta un servicio SSH en el puerto 22 y que tenemos un nombre de usuario, fox. Veamos si podemos conectarnos con el usuario fox a través de SSH.
Era la contraseña del usuario "fox" para el servicio SSH.
Elevación de privilegios
Una vez tenemos acceso a la máquina como usuario "fox", vamos a enumerar las diferentes formas de poder elevar privilegios. Comenzamos con sudo -l
.
Se permite ejecutar un comando con permisos de root, pero debido a que estamos en modo ICMP, no podemos acceder a un shell. Sin embargo, aún podemos transferir archivos a otra máquina. Consideramos enviar el archivo shadow o una clave privada SSH como posibles opciones.
Para lograrlo, es necesario activar el modo de escucha de hping3 en la máquina receptora y enviar el archivo desde la máquina de origen hacia la receptora. Esto vamos a hacerlo con dos instancias SSH diferentes de la misma máquina de destino.
Obtenemos una clave privada. Vamos a copiarla a nuestra máquina de ataque. A esta clave le damos permisos chmod 600.
Vamos a tratar de conectarnos a la máquina objetivo como usuario root a través del servicio SSH aprovechando la clave id_rsa que hemos encontrado.
Obtenemos acceso a la máquina objetivo como usuario "root". El último paso para completar la máquna será conseguir la flag proof.txt.
Y ya estaría completa la máquina ICMP de la plataforma Proving Grounds.
Last updated