MonteverdeHTB-WriteUp-ETHCOP

EthicalHCOP
6 min readJun 15, 2020

EthicalHCOP.

MonteVerde es una máquina muy similar a la máquina Resolute, en donde aprovecharemos algo en los grupos para escalar privilegios. También, veremos un poco de modificación de un archivo powershell y estaremos haciendo bastante enumeración.

Reconocimiento y escaneo.

El escaneo de puertos nos da muchos puertos, entre ellos el 445 (SMB), 389 (LDAP), 5986 (Winrm). De dichos puertos, nos centraremos primeramente en el puerto 445 (SMB) y veremos si nos deja extraer información como usuarios, listar recursos compartidos e incluso intentar acceder a ellos.

Para realizar dicha enumeración de manera automática, utilizaremos la herramienta enum4linux a la cual solo le daremos la IP de dicha máquina.

Una vez más, vemos el mensaje en donde supuestamente nos deja acceder de manera anónima al servidor smb. Recordemos que este mensaje no siempre significa que tenemos acceso al servidor de manera anónima, en ocasiones significa que se pudo capturar datos de manera anónima sin comprometer el acceso como tal.

Sin embargo, en el mismo script pudo ser posible enumerar los usuarios del sistema o relacionados con el AD.

Ahora muy bien, tenemos un listado de usuarios y ninguna contraseña. Una de las cosas que se pueden intentar es un ataque ASREPRoast con GetNPUsers de impacket, este ataque no nos da ningún hash de alguno de los usuarios listados.

Explotación de Usuario.

Entonces, otra de las cosas que se puede intentar hacer es acceder al sistema aprovechando de algún mal manejo de las contraseñas. Según el OWASP, en algunos sistemas se utiliza una mala política de contraseñas colocando credenciales muy obvias / fáciles.

https://wiki.owasp.org/index.php/Testing_for_default_credentials_(OTG-AUTHN-002)
Entre las pruebas sugeridas, está en probar el mismo usuario como su contraseña “user/user”. Para esto intento hacer uso de la herramienta hydra como es de costumbre, pero esta presenta un error al momento de intentar conectarse a la máquina.

A pesar que hay mas herramientas para realizar este proceso, yo he decidido hacer mi propio script en bash usando smbclient para realizar dicho ataque.

https://github.com/EthicalHackingCOP/HackScripts/blob/master/SmbScript

Ejecutamos el script y esperamos que finalice con la esperanza de que algún usuario caiga en dicha verificación.

Al pasar unos segundos, el script nos retorna los directorios compartidos encontrados gracias al login en el sistema con el usuario SABatchJobs/SABatchJobs.

Así que pasamos a verificar ya de manera manual dicha información y vemos que efectivamente dicho usuario puede acceder al sistema SMB.

Una de las carpetas a las que tenemos acceso es a la carpeta Users, sin embargo vemos que dicho usuario no tiene una carpeta en el sistema. Aun así, vemos que en el usuario mhope, existe un archivo llamado azure.xml el cual descargamos con el comando get.

Al analizar este archivo, encontramos a lo que parece ser una configuración de algún servicio azure y unos datos en los cuales está la contraseña.

Hacemos uso de smbclient para confirmar el acceso de dicho usuario .

Así que si intentamos acceder con este usuario usando evil-winrm mediante el puerto 5985, ingresamos al sistema y de esta forma poder leer el hash del usuario.

Explotación de Root.

Como se comentó al inicio de este writeup, esta máquina tiene similitud con la máquina resolute. Si ejecutamos el comando whoami -groups para listar información acerca de los grupos del usuario actual, veremos al final un grupo llamado “Azure Admins”.

De igual manera, si listamos la info del usuario con net user, vemos que también nos muestra su relación con el grupo “Azure Admins”.

Buscando en google sobre alguna posible explotación en este grupo, muchas de las búsquedas nos referencian algo sobre “Azure AD Connect”.

https://github.com/fox-it/adconnectdump

Mirando en los programas del sistema, vemos un programa que coincide con la búsqueda anterior, incluso la carpeta “ Microsoft Azure AD Sync “ referenciado en el link de github.

Así que buscando un poco más sobre dicho resultado de “Azure AD Connect”, encontré algunos links de que contienen la poc a dicho ataque.

https://blog.xpnsec.com/azuread-connect-for-redteam/

En este sitio, encontramos la explicación de dicho ataque y un script en powershell para realizar la extracción de la contraseña.

https://gist.githubusercontent.com/xpn/0dc393e944d8733e3c63023968583545/raw/28723eb269eafff5168b31ba1ea4722171d50af7/azuread_decrypt_msol.ps1

Sin embargo, no todo es color de rosa y los errores no han de faltar. Al ejecutar el script, esté de entrada nos está retornando algunos errores, este primero en específico nos habla sobre una comilla simple y sobre el uso del @ en la sintaxis.

Entonces para esta primer parte simplemente reemplazamos el @ por un $.

Y corregimos la comilla simple al final de la línea iniciada con “add-type”.

Una vez solucionada esa parte y ejecutado nuevamente el script, vemos un nuevo error, ya esta vez hablándonos sobre la base de datos.

Luego de un par de horas de búsqueda acerca de este mensaje, encontré que el problema es en cómo está realizando la autenticación en la base de datos. Así que cambiamos la conexión que tiene originalmente el archivo a la autenticación windows mostrada en el link.

http://csharp.net-informations.com/data-providers/csharp-sql-server-connection.htm

Nuevamente ejecutamos el script y nos dirá algo sobre que falló la autenticación con el usuario. Esto se presenta ya que en los parámetros de conexión, no se establece el parámetro de Seguridad integrada en la conexión windows estos 2 normalmente van de la mano.

https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/connection-string-syntax

Por último, ejecutamos nuevamente el script y este nos retorna el dominio, el nombre y la contraseña del usuario administrador del sistema.

Finalmente accedemos mediante evil-winrm, crackmapexec, psexec o la herramienta de tu preferencia al sistema windows como administrador y de esta manera leer la bandera root.

--

--