RustyKey HackTheBox (Hard)
Escaneo de puertos
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>nmap -sCV -p<PORTS> <IP>Info:
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-14 15:56 PDT
Nmap scan report for 10.10.11.75
Host is up (0.031s latency).
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-10-14 23:08:33Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: rustykey.htb0., Site: Default-First-Site-Name)
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open tcpwrapped
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: rustykey.htb0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp open mc-nmf .NET Message Framing
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49673/tcp open msrpc Microsoft Windows RPC
49674/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49675/tcp open msrpc Microsoft Windows RPC
49677/tcp open msrpc Microsoft Windows RPC
49678/tcp open msrpc Microsoft Windows RPC
49684/tcp open msrpc Microsoft Windows RPC
49696/tcp open msrpc Microsoft Windows RPC
49738/tcp open msrpc Microsoft Windows RPC
59660/tcp open msrpc Microsoft Windows RPC
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
| smb2-time:
| date: 2025-10-14T23:09:35
|_ start_date: N/A
|_clock-skew: 11m33s
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 70.93 secondsVeremos varios puertos, pero entre ellos los que mas nos interesan son el LDAP, WinRM, SMB, etc... tambien si nos vamos a la informacion de la maquina de HTB veremos que nos proporcionan unas credenciales como en un pentesting real.

Vemos un dominio en el reporte de namp llamado rustykey.htb y veremos que el DC se llama como tal DC, por lo que vamos añadir a nuestro archivo hosts lo siguiente:
Lo guardamos y vamos a probar a realizar un poco de fuzzing por SMB a ver que vemos.
Pero tendremos antes que configurar la time zone con el del DC osea el del dominio como tal, esto se puede conseguir poniendo en cada comando que se vaya a utilizar la conexion del DC el ntpdate junto con el dominio, en este caso lo vamos a utilizar para obtener el TGT del usuario rr.parker ya que de normal las credenciales no van, requiere de autenticacion mediante kerberos con el TGT.
Info:
Ahora nos exportaremos dicho archivo generado en la variable de kerberos para que nos funcione cuando vayamos a lanzar un comando autenticado por dicho usuario.
Echo esto vamos a listar los recursos compartidos que tiene el usuario en SMB a ver si funciona ahora.
Info:
Veremos que ha funcionado, pero no veremos nada interesante de recursos, por lo menos sabemos que la autenticacion funciona, por lo que vamos a descargarnos un ZIP de BloodHound para poder visualizar los privilegios de los usuarios y todo el árbol en general del AD.
Info:
BloodHound
Ahora vamos a instalar BloodHound de forma rapida en un docker:
URL = Download BloodHound en Docker
Info:
Ahora que esta importado en nuestro docker y levantado podremos acceder a el desde la siguiente URL.
Nos logueamos con las credenciales propocionadas por la herramienta, entrando nos pedira cambiar las credenciales y ya nos metera dentro:
Una vez dentro vamos a importar el .zip y tendremos que esperar un poco a que cargue todos los datos, despues cuando vayamos al dashboard principal veremos todos los datos, vamos a investigar el usuario rr.parker a ver que tiene.
Pero no veremos nada interesante de dicho usuario, despues de buscar informacion y estar un rato investigando, podemos probar una tecnica llamada Timeroasting, consiste en lo siguiente:
Vamos a listar los ususarios para tener algunos identificados antes.
Info:
Y con esto las computadoras del dominio.
Info:
Timeroasting
Veremos algunos interesantes, pero de momento por conocimiento los dejaremos ahi sabiendo que son esos usuarios los que hay en el dominio, ahora vamos a poner en practica la tecnica Timeroasting.
URL = GitHub herramienta timeroast.py
Info:
Veremos que nos ha sacado unos cuantos hashes de forma correcta, por lo que vamos a probar a ver cuales podremos crackear con hashcat en la version BETA, de esta forma:
hashes.txt
URL = Ultima version Hashcat BETA
Info:
Veremos que ha funcionado y nos saca una contraseña solamente llamada Rusty88!, y si comparamos ese hash con la informacion que obtuvimos en la tecnica de Timeroasting veremos que se corresponde con el SID terminado en 1125 por lo que nos iremos a BloodHound y filtraremos por dicho RID del SID obtenido para saber el usuario que es.
Escalate user BB.MORGAN
Si buscamos por 1125 en el buscador de BloodHound nos aparecera este equipo con dicho identificador:

Y este equipo tiene estos privilegios asociados de AddSelf al grupo llamado HELPDESK.

Con estos privilegios y sabiendo que tenemos la contraseña de dicho equipo, podremos utilizar su autenticacion aprovechando estos privilegios respecto a dicho grupo.
Y desde ese grupo vemos que tenemos estos privilegios a estos usuarios del dominio:

Vamos a utilizar la herramienta bloodyAD para realizar todo esto, primero vamos añadirnos con la maquina IT-COMPUTER3 al grupo de HELPDESK ya que tenemos los privilegios para ello.
URL = GitHub Herramienta BloodyAD
Ahora antes de ejecutar la herramienta, vamos a generar un TGT del equipo IT-COMPUTER3 para podernos autenticar desde kerberos y que no de error.
Info:
Vamos a exportar la variable de kerberos para que podamos autenticarnos.
Una vez echo esto, en el archivo de kerberos vamos añadir el dominio de la maquina victima para que no haya problemas con el KDC del DC del AD.
Una vez añadido, vamos a ejecutar la herramienta de esta forma:
Info:
Ahora podremos forzar el cambio de contraseñas de dichos usuarios que vimos antes, pero el que mas nos interesa es el de BB.MORGAN que tiene lo siguiente:

Veremos que esta dentro de un grupo antes llamado PROTECTED OBJECTS si intentamos cambiarle la contraseña veremos que no nos deja por alguna proteccion de este grupo, por lo que vamos a eliminarle de este grupo y posteriormente cambiarle la contraseña, ya despues de eso veremos que esta en el grupo REMOTE MANAGEMENT USERS por lo que nos podremos conectar por WinRM con dicho usuario.
Eliminación del grupo PROTECTED OBJECTS
Info:
Cambio de contraseña del usuario BB.MORGAN
Info:
Con esto veremos que cambiamos la contraseña del usuario BB.MORGAN de forma correcta por lo que vamos a solicitar el TGT del usuario con esta nueva contraseña.
Info:
Ahora exportaremos la variable de kerberos de esta forma:
Y con esto ya nos podremos conectar con dicho usuario por WinRM utilizando la autenticacion de kerberos.
Evil-winrm
Info:
Veremos que ya estaremos dentro con dicho usuario, por lo que vamos a leer la flag del usuario.
user.txt
Escalate user EE.REED
Si listamos el Desktop de dicho usuario veremos a parte de la flag este archivo PDF bastante interesante.
Nos lo vamos a descargar con la utilidad download del propio evil-winrm.
Info:
Ahora si nos vamos a nuestra maquina atacante, veremos que esta nuestro archivo PDF vamos abrirlo a ver que contiene.
Info:
Esto significa que el grupo SUPPORT tiene el derecho de modificar el registro y puede probar funciones relacionadas con la compresión/descompresión.
Si investigamos este grupo en BloodHound veremos lo siguiente:

Vemos que el usuario EE.REED pertenece a dicho grupo y recordemos que desde el usuario IT-COMPUTER3 perteneciendo al grupo de HELPDESK podemos forzar le cambio de contraseña a dicho usuario, por lo que vamos ha realizar lo siguiente.
Info:
Ahora habiendo cambiado la contraseña, vamos a solicitar un TGT de dicho usuario para tenerlo guardado de esta forma, pero nos dara error y esto puede ser por que tambien esta dentro del grupo PROTECTED OBJECTS, por lo que vamos a eliminarlo de esta forma:
Info:
Ahora si solicitamos el TGT de nuevo:
Info:
Veremos que si nos deja, rapidamente vamos a descargarnos la herramienta RunasCs.exe para poder obtener una shell como dicho usuario.
URL = Download RunasCs.exe ZIP GitHub
Una vez descargado el .zip del RunasCs vamos a descomprimirlo.
Info:
Ahora desde la shell vamos a descargarnos el RunasCs.exe llendo al directorio Downloads de nuestra carpeta de usuario para que podamos utilizarlo.
Info:
Ahora si desde una shell de Windows poniendo shell en el meterpreter...
Pero antes nos pondremos a la escucha:
Ahora si enviamos este comando...
Info:
Ahora si volvemos a donde tenemos la escucha:
Veremos que ha funcionado, por lo que seremos dicho usuario.
Escalate user MM.TURNER
Ahora siendo dicho usuario recordemos que estamos en el grupo SUPPORT el cual puede modificar el registro y funciones relacionadas con la compresión/descompresión.
COM Hijacking
Vamos a Identificar COM objects usados por aplicaciones privilegiadas de esta forma:
Info:
El CLSID {E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} corresponde a zipfldr.dll (Compressed Folders Handler). Este se ejecuta cuando se abren archivos ZIP en el Explorador de Windows.
Vamos a generar un payload malicioso que sea una .dll con msfvenom para poder aprovechar este Hijacking 7-Zip.
Info:
Una vez generado nuestro payload vamos a pasarnoslo a la maquina atacante, recordemos que teniamos una shell con el usuario a por evil-winrm por lo que vamos a utilizarla para desplazarnos a la carpeta Temp y subir el archivo asi:
Info:
Ahora desde el usuario ee.reed vamos a desplazarnos a dicha carpeta y utilizar ese payload de esta forma:
Pero antes nos pondremos a la escucha con metasploit para obtener le meterpreter.
Info:
Ahora estando a la escucha vamos a ejecutar la tecnica de COM Hijacking con el 7zhack.dll de nuestro payload para obtener la shell.
NOTA: Estamos intentando hacerlo en un
HKLM(Local Machine). Esto lo hacemos por que sabemos que el usuarioSUPPORTtiene escritura privilegiada en elHKLM.
Info:
Veremos que ha funcionado y si esperamos un rato veremos lo siguiente en nuestra escucha:
Vemos que hemos obtenido acceso con el usuario mm.turner.
Escalate Privileges
Si nos vamos a nuestro BloodHound a ver los privilegios que tiene dicho usuario...

Vemos que somos del grupo DELEGATIONMANAGER y que este a su vez tiene los privilegios de AddAllowedToAct sobre el DC del dominio entero, por lo que podremos escalar privilegios maximos con esta vulnerabilidad de esta forma:
Primero vamos hacer que IT-COMPUTER3 puede obtener tickets de servicio para cualquier servicio en el DC. Esto lo hacemos mediante Resource-Based Constrained Delegation (RBCD)
Ahora vamos con dicho usuario exportarnos la variable del TGT de nuevo y ya que podemos obtener un TGS de cualquier servicio del DC, obtendremos el del backupadmin que es el que nos interesa.
Info:
Ahora vamos acceder por WinRM mediante este TGS obtenido de esta forma:
Info:
Veremos que ha funcionado, por lo que ya seremos administradores directamente, vamos a leer la flag del admin.
root.txt
Last updated