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 requiredPuertos 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 usuariomichaelanewP@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
emilyen el dominioadministrator.htb, usando su contraseña conocida, apuntando al servidor10.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