Entrada

VivifyTech

En este artículo, estaremos resolviendo la máquina VivifyTech de la plataforma HackMyVM. Comenzaremos aprovechando una filtración de contraseñas y una lista de usuarios para llevar a cabo un ataque de fuerza bruta al protocolo SSH y obtener acceso a la máquina como el usuario sarah. A continuación, realizamos un movimiento lateral para obtener acceso como el usuario gbodja al encontrar su contraseña en un archivo de texto plano. Finalmente, aprovechamos una configuración inadecuada de sudo para elevar nuestros privilegios, logrando así una exitosa escalada de privilegios.

Reconocimiento

Comenzamos lanzando una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

VivifyTech Reconocimento usando el comando ping

Podemos observar, que responde al envío de nuestro paquete, verificando de esta manera que tenemos conectividad. Por otra parte, confirmamos que estamos frente a una máquina Linux basandonos en el TTL (Time To Live).

Enumeración

Descubrimiento de puertos abiertos

Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.

1
nmap -sS -p- --open --min-rate 5000 -Pn -n 192.168.1.14 -vvv -oG scanPorts

VivifyTech Descubrimiento de puertos abiertos

ver la Cheatsheet para más detalle sobre los parámetros utilizados.

Enumeración de versión y servicio

Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos abiertos.

1
nmap -sCV -p22,80 -vvv -oN targeted 192.168.1.14

VivifyTech Descubrimiento de versión y servicio con nmap

ver la Cheatsheet para más detalle sobre los parámetros utilizados.

Explotación

Usuario sarah

Accedemos al sitio web que se encuentra en ejecución en el puerto 80, donde nos encontramos con la tipica web por defecto de una instanacia de Apache2:

VivifyTech Web Apache2

Al realizar un poco de web fuzzing, nos encontramos con una instancia de Wordpress.

1
gobuster dir -u http://192.168.1.14 -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 50

VivifyTech Gobuster

Al ingresar a esta ruta, podemos observar la siguiente web:

VivifyTech Wordpress

Realizamos una enumeración de Wordpress en busca de plugins o temas vulnerables, en este caso, usando el script http-wordpress-enum de nmap.

1
nmap -p80 --script http-wordpress-enum --script-args http-wordpress-enum.root='/wordpress',search-limit=1000 192.168.1.14

VivifyTech Enumeración de Wordpress

Otras herramientas como wpscan, nuclei o la realización de fuzzing con ffuf, gobuster, entre otras, podrían ser utilizadas. Sin embargo, en este contexto, el resultado sería el mismo y no encontraríamos ninguna vulnerabilidad.

Si continuamos haciendo fuzzing, en este caso, bajo el directorio wordpress encontramos las carpetas tipicas de una instalación de este CMS.

Al intentar acceder desde nuestro navegador a wordpress/wp-content, descubrimos que no tenemos los permisos necesarios para listar el contenido del directorio. Sin embargo, al ingresar a wordpress/wp-includes, pudimos listar el contenido del directorio y encontramos un archivo llamado secrets.txt, el cual parece contener posibles contraseñas.

VivifyTech wp-includes - secrets.txt

Nos descargamos el archivo a nuestra máquina atacante.

VivifyTech secrets.txt

Podríamos optar por realizar un ataque de fuerza bruta utilizando hydra, sin embargo, esto implicaría contar únicamente con las contraseñas. Aunque factible, este enfoque consumiría considerablemente más tiempo de ejecución en comparación con el uso de una lista más específica de usuarios.

Recorriendo el sitio web, podemos encontrar el siguiente artículo en el cual se mencionan varios nombres (posibles usuarios).

VivifyTech Web VivifyTech

Armamos una lista con todos los nombres mencionados.

VivifyTech users.txt

Realizamos un ataca de fuerza bruta con hydra al puerto 22 (SSH) utilizando nuestra lista de usuarios y las posibles contraseñas del fichero secrets.txt.

VivifyTech hydra

Vemos que tenemos éxito y encontramos la contraseña del usuario sarah.

De esta forma, ya podemos conectarnos a la máquina víctima.

VivifyTech sarah

Leemos el flag de user.txt.

VivifyTech user.txt

Usuario gbodja

Si miramos dentro del directorio /home/sarah/.private, vemos que existe un archivo llamado Tasks.txt en el cual se revelan en texto plano las credenciales del usuario gbodja.

VivifyTech Tasks.txt

Usamos estas credenciales para loguearnos como este.

Escalación de privilegios

Haciendo una enumeración básica del sistema, podemos ver que el usuario gbodja puede ejecutar con sudo el binario de git sin solicitarse contraseña.

VivifyTech sudo -l

Efectuando una búsqueda rápida en GTFObins - git, podemos ver que existen varias formas de escalar nuestros privilegios en este contexto.

En este caso, utilizaré la siguiente:

1
2
sudo git -p help config
!/bin/sh

De esta manera, ya podemos leer el flag del root.txt.

VivifyTech root.txt

Con esto, concluimos el Writeup de la máquina VivifyTech.

Espero que los conceptos hayan quedado claros. En caso de tener alguna duda, te invito a realizar nuevamente la máquina para afianzar tus conocimientos.

¡Gracias por leer!

Happy Hacking!

Esta entrada está licenciada bajo CC BY 4.0 por el autor.