ServMon - HackTheBox

4 minute read

En este post se explicarán los pasos que se han seguido para conseguir vulnerar la seguridad de la máquina ServMon en Hack The Box, tal y como se refleja, es un sistema Windows con un nivel de dificultad fácil (4.1).

Ilustración 1: ServMon.

La fase de enumeración dio comienzo haciendo uso de NMAP:

Ilustración 2: Comando de NMAP ejecutado.

Ilustración 3: Resultados de NMAP parte 1.

Ilustración 4: Resultados de NMAP parte 2.

Ilustración 5: Resultados de NMAP parte 3.

Analizando los resultados obtenidos se puede apreciar que es un sistema Windows, con un servidor FTP que permite conexiones anónimas, un servicio web en el puerto 80 y NSClient++ dando algún servicio web en el puerto 8443. Además, la máquina parece tener el servicio SSH habilitado.

Se decidió realizar una conexión al servidor FTP, como usuario Anonymous, para recabar más información:

Ilustración 6: Conexión con el usuario Anonymous realizada con éxito.

Ilustración 7: Directorios existentes en el servidor FTP de la máquina ServMon.

Se encontraron dos directorios en el servidor FTP de la máquina ServMon, cada uno de ellos pertenecía a un usuario del sistema.

Ilustración 8: Descarga de los ficheros del directorio Nadine.

Ilustración 9: Lectura del fichero Confidential.txt.

En el fichero Confidential.txt del directorio Nadine, se podía encontrar un mensaje dirigido al usuario Nathan, donde se hablaba de una contraseña almacenada en un fichero, ubicado en el directorio del escritorio del usuario Nathan.

Ilustración 10: Descarga de los ficheros del directorio Nathan.

Ilustración 11: Lectura del fichero "Notes to do.txt".

En el fichero "Notes to do.txt" del directorio Nathan, se podía encontrar una lista de las tareas que le faltaban por realizar al usuario Nathan, entre ellas cambiar la contraseña del software NVMS.

Si se accedía por el puerto 80 al servicio web que se ejecutaba en la máquina ServMon, se podía apreciar el panel de login del software NVMS-1000.

Ilustración 12: Web en http://10.10.10.184/Pages/login.html.

NMAP identificó que el servicio NSClient++ se estaba ejecutando en el puerto 8443, accediendo vía web y especificando que se use el protocolo HTTPS, se podía distinguir lo siguiente:

Ilustración 13: Web en https://10.10.10.184:8443/index.html.

Con la información obtenida de los ficheros del servidor FTP y los nombres y versiones de los diferentes softwares identificados, el vector de ataque estaba claro, la intrusión al sistema pasaba por vulnerar la seguridad de NVMS-1000 o NSClient++. Buscando diferentes exploits, se encontró lo siguiente:

Ilustración 14: Exploits para NVMS.

Ilustración 15: Exploits para NSClient.

El exploit existente de NSClient++ es para realizar una escalada de privilegios, por tanto, la intrusión al sistema debe realizarse a través de los exploits de NVMS 1000, concretamente el propio del CVE-2019-20085. Que explota un Directory Traversal, pudiéndose así obtener información de los ficheros del sistema.

Ilustración 16: Obteniendo el fichero win.ini de la máquina 10.10.10.184.

En el fichero Confidential.txt se hacía referencia a un fichero en el escritorio del usuario Nathan, así que se procedió a descargarlo.

Ilustración 17: Descarga del fichero Passwords.txt del usuario Nathan.

Con las contraseñas obtenidas y los nombres de los dos usuarios conocidos, se ejecutó un ataque de diccionario al protocolo SMB, para averiguar la contraseña de alguno de los dos usuarios en el sistema.

Ilustración 18: Haciendo uso de Crackmapexec para ejecutar un ataque de diccionario.

Se obtuvo la contraseña del usuario Nadine y se accedió al sistema vía SSH, consiguiendo así la flag de user.txt.

Ilustración 19: Acceso al sistema mediante SSH con el usuario Nadine.

Ilustración 20: Flag user.txt.

Para conseguir acceso como usuario administrador del sistema, el vector de ataque estaba claro desde la fase de fingerprinting, dado que NSClient++ 0.5.2.35 posee un exploit para tal finalidad.

Simplemente se debían seguir los pasos que se describen en https://www.exploit-db.com/exploits/46802, el principal problema que se encontró fue la gran inestabilidad de la máquina en los servidores públicos de Hack The Box, haciendo muy difícil llevar a cabo esta tarea.

En los ficheros de configuración se podía obtener la contraseña del usuario administrador de la Web de NSClient++ o también ejecutando un comando especifico:

Ilustración 21: Contraseña del usuario administrador de la web de NSClient++.

Ilustración 22: Contraseña del usuario administrador de la web de NSClient++.

El siguiente paso consistía en iniciar sesión en la web con el usuario y contraseña, para poder cargar los módulos que ejecutarían el script malicioso que daría acceso al sistema, tal y como se indicaban en el exploit.

Ilustración 23: Descarga del script malicioso.

Ilustración 24: Inicio de sesión con el usuario administrador.

Ilustración 25: Carga del script malicioso.

Ilustración 26: Creando una tarea que ejecute el script malicioso cada minuto.

Una vez se finalizaron los pasos descritos anteriormente, se esperaron unos segundos, y se consiguió acceso al sistema como usuario administrador.

Ilustración 27: Obteniendo una shell como usuario administrador del sistema.

Ilustración 28: Flag root.txt.

Como conclusión se podría que no ha sido una máquina muy divertida, principalmente porque en la escalada de privilegios hubo excesivos problemas con la estabilidad de la máquina, pero independientemente de eso, ha sido sencillo y productivo.