HackTheBox Administrator

Machine Information As is common in real life Windows pentests, you will start the Administrator box with credentials for the following account: Username: Olivia Password: ichliebedich

❯ nmap -sS -Pn -n -vvv --open --min-rate 5000 10.10.11.42 -oG port

PORT     STATE SERVICE          REASON
21/tcp   open  ftp              syn-ack ttl 127
53/tcp   open  domain           syn-ack ttl 127
88/tcp   open  kerberos-sec     syn-ack ttl 127
135/tcp  open  msrpc            syn-ack ttl 127
139/tcp  open  netbios-ssn      syn-ack ttl 127
389/tcp  open  ldap             syn-ack ttl 127
445/tcp  open  microsoft-ds     syn-ack ttl 127
464/tcp  open  kpasswd5         syn-ack ttl 127
593/tcp  open  http-rpc-epmap   syn-ack ttl 127
636/tcp  open  ldapssl          syn-ack ttl 127
3268/tcp open  globalcatLDAP    syn-ack ttl 127
3269/tcp open  globalcatLDAPssl syn-ack ttl 127

❯ nmap -sCV -p21,53,88,135,139,389,445,464,593,636,3268,3269 10.10.11.42 -oN target.txt
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-04-25 16:43 EDT
Nmap scan report for 10.10.11.42
Host is up (0.037s latency).

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-25 19:47:18Z)
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)
3269/tcp open  tcpwrapped
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-time: 
|   date: 2025-04-25T19:47:23
|_  start_date: N/A
|_clock-skew: -55m49s
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required

Puertos abiertos con su version y servicio que corren.


Verificamos el dominio y los agregamos al etc/hosts.


nxc

Este comando verifica si las credenciales proporcionadas permiten autenticar correctamente a través de WinRM, un protocolo que permite la administración remota de sistemas Windows.


Nos conectamos y estamos dentro.


Con este comando estámos preguntando al servidor SMB: Con este usuario y contraseña, ¿me puedes decir qué usuarios hay en el sistema?"


ldapdomaindump

Dumpeamos el DC para ir haciendonos una idea de todo y nos compartimos un servidor con python3 para verlo.

Tenemos los usuarios del sistema que ya teniamos cuando los enumeramos con nxc y mas abajo observamos los Remote Management Users, usuarios que se pueden conectar remotamente al DC.


Este comando usa la herramienta bloodhound-python, que sirve para recolectar información de Active Directory (AD) con el fin de analizarla visualmente después en la herramienta BloodHound.


Actualmente somos olivia, y observamos que olivia tiene derecho Generic All sobre el usuario Michael.


“Hola, soy olivia, tengo permisos. Quiero cambiar la contraseña del usuario michael a newP@ssword2022.”

🔐 Como olivia tiene privilegios suficientes (por ejemplo, es admin del dominio o tiene permisos de delegación), el cambio de contraseña se realiza sin problema.


Observamos que nos podemos conectar como michael le hemos cambiado la contraseña.


Ahora que ya tenemos credenciales validas para el usuario michael, observamos que michael tiene permisos de ForceChangePassword sobre Benjami, en español le podemos cambiar la contraseña al usario benjami.

Le cambiamos la contraseña al usuario benjamin.


FTP

Ahora con las credenciales del usuario benjamin nos conectamos por FTP y nos descargamos, lo que encontramos por aca.

Nos conectamos por FTP porque este usuario no pertenece al Remote Management Users


John

Obtenemos una contraseña.


Procedemos a observar el contenido con la conntraseña crackeada.


Obtenemos la contraseña para el Usuario Emily hay que recordar que ella forma parte del Remote Management Users es decir nos podemos conectar usando evil.

Nos conectamos y tenemos la primera bandera.


Privilege Escalation

Se identificó que la cuenta Emily tenía el permiso GenericWrite sobre la cuenta Ethan, lo que permitía modificar atributos como servicePrincipalName (SPN). Aprovechando esto, se utilizó TargetedKerberoast para asignar temporalmente un SPN ficticio a la cuenta Ethan.

Luego, se solicitó un TGS (Ticket Granting Service) al DC, obteniendo un hash cifrado asociado al servicio. Finalmente, el SPN asignado fue eliminado para evitar dejar evidencias.

❯ pip3 install -r requirements.txt --break-system-packages


Primero sincronizamos la hora con el servidor para evitar errores de autenticación, y luego lanzan un ataque Kerberoast contra el usuario emily en el dominio administrator.htb, usando su contraseña conocida, apuntando al servidor 10.10.11.42.

Crackeamos el hash para el usuario Ethan y ahora tenemos la contraseña del usuario Ethan.


Al revisar nuevamente en BloodHound, se verificó que el usuario ethan@administrator.htb dispone de privilegios DCSync, lo que nos permite llevar a cabo un DCSync Attack. Esto nos da la posibilidad de obtener todos los hashes NTLM del archivo NTDS.dit, que es la base de datos de Active Directory y almacena las contraseñas de todos los usuarios del dominio.


Verficaremos que el hash NTLM es válido y procederemos a conectarnos a través de evil-winrm con el usuario administrator@administrator.htb y verificar la flag de root.txt.


Nos conectamos y maquina resuelta somos administrador.

Última actualización