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 seconds

Veremos 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 usuario SUPPORT tiene escritura privilegiada en el HKLM.

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