🟠ICMP
Write-up de la máquina ICMP de Proving Grounds #writeup #walkthrough
Last updated
Write-up de la máquina ICMP de Proving Grounds #writeup #walkthrough
Last updated
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
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.
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
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.
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.