ACL Abuse en Active Directory

🧩 Concepto General

Las ACL controlan quién puede acceder a qué dentro de Active Directory y qué tipo de permisos posee cada entidad (usuarios, grupos, equipos).

Una mala configuración en ACLs puede permitir escaladas, movimientos laterales o persistencia.

ACL = Lista de permisos aplicados a un objeto

Cada ACL posee múltiples ACE (Access Control Entries) → Cada ACE indica quién tiene qué permiso.


📘 Tipos de ACL

🟦 DACL — Discretionary Access Control List

Define qué usuarios/grupos pueden o NO pueden acceder a un objeto.

Tip

Si un objeto NO tiene DACL, todos tienen acceso completo.
Si tiene DACL vacía → nadie tiene acceso.

Ejemplos de ACE dentro de la DACL:


🟥 SACL — System Access Control List

Define qué accesos se auditan (logs de seguridad).

Info

Normalmente se accede desde la pestaña Auditing en ADUC.


📘 ¿Qué es un ACE?

Un ACE = una entrada que define:

  1. SID del principal (usuario/grupo)

  2. Tipo de ACE → Allowed / Denied / Audit

  3. Herencia → si aplica a objetos hijos

  4. Access Mask → permisos exactos (32 bits)

Orden de evaluación

Los ACE se leen de arriba hacia abajo hasta que una entrada Deny coincide → se bloquea.


📂 Ejemplo Visual (resumen)

🧩 ACL de un usuario (forend)

Pasted image 20251118184631.png

Info

Cada línea en "Permission Entries" = un ACE.


🛠️ ACEs importantes para ataques

Estos ACE son abusables y permiten movimiento lateral o escalada:

🔑 ForceChangePassword
→ Podemos resetear la contraseña de un usuario sin conocer la actual.

🔧 GenericWrite
→ Permite escribir atributos del objeto.
Casos típicos:

👤 AddSelf
→ El usuario puede añadirse a grupos específicos.

🔥 GenericAll
→ Control total: reset password, modificar atributos, añadir grupos, leer LAPS, etc.

🛠️ WriteOwner
→ Cambiar propietario del objeto → después otorgarse permisos.

🔐 WriteDACL
→ Modificar la DACL → darnos más permisos → escalada silenciosa.


⁉️ ¿Por qué son importantes los ACE?

Info

No son detectados por escáneres automáticos y suelen quedar años sin revisar.

Los atacantes los usan para:

Herramientas típicas:


🎯 Ejemplos de abusos reales

1️⃣ Abusar permisos de HelpDesk

→ Resetear contraseñas privilegiadas.

2️⃣ Abusar Add/Remove Member

→ Añadirnos a un grupo sensible.

3️⃣ Excesos de derechos heredados o por software

→ Exchange y otros sistemas suelen crear ACE peligrosos.


🧠 Resumen rápido (perfecto para Obsidian)

ACL = Conjunto

[!info] DACL = Permisos

[!warning] SACL = Auditorías

[!example] ACE = Cada permiso individual