Elad Shamir

Tras publicar parches de seguridad para dos vulnerabilidades de Active Directory durante el martes de parches de noviembre de 2021, Microsoft instó a los clientes el 20 de diciembre a aplicar los parches inmediatamente para evitar que los atacantes se apoderen de los dominios de Windows. Además de aplicar los parches, las organizaciones pueden aumentar sus defensas contra los ataques ejecutando un par de acciones que ayudarán a prevenir la creación no autorizada de cuentas que podrían conducir a una escalada de privilegios y a un ataque.

Lecturas relacionadas

Mirando entre bastidores de CVE-2021-42278 y CVE-2021-42287

El9 de noviembre de 2021, Microsoft publicó cuatro CVE relacionadas con problemas de seguridad en Active Directory y las atribuyó a Andrew Bartlett. El tema común de tres de estas actualizaciones de seguridad parece implicar la validación de la unicidad de ciertos atributos de los objetos de AD y la verificación de que no se crucen cables al emitir tickets Kerberos, lo que lleva a la emisión de tickets para la entidad de seguridad equivocada o para el servicio equivocado.

Mientras que muchos en la comunidad infosec especulaban con que la explotación de estos problemas implicaría condiciones de carrera poco fiables u otros casos límite, los investigadores de seguridad Charlie Clark y Ceri Coburn publicaron un artículo en el que demostraban cómo se puede abusar de CVE-2021-42278 para escalar privilegios por defecto de forma fiable en cualquier dominio/bosque, e incluso en confianzas entre bosques en configuraciones específicas.

Antes de esta actualización de seguridad, no se exigía que el atributo sAMAccountName de las cuentas de equipo/servicio terminara con un signo de dólar ($), lo que permitía la existencia de cuentas con un nombre idéntico al de las cuentas con privilegios, como controlador de dominio, excepto por el signo de dólar al final.

Charlie y Ceri descubrieron que un atacante podía solicitar un Ticket Granting Ticket (TGT) de Kerberos para una cuenta con un sAMAcountName idéntico al de un controlador de dominio (excluyendo el signo de dólar al final) y luego cambiar el atributo sAMAccountName de esa cuenta. El TGT del atacante seguiría siendo válido, a pesar de cambiar el atributo sAMAccountName de la cuenta.

Ahora el atacante podría llamar a la extensión Kerberos S4U2Self para obtener un vale de servicio Kerberos para cualquier usuario arbitrario, incluidos los usuarios con privilegios, como los miembros del grupo Domain Admins, para el servicio asociado con el TGT del atacante. El controlador de dominio intentaría emitir el vale para un servicio asociado con el nombre de cuenta en el TGT sin el signo de dólar. Cuando el controlador de dominio no encuentra esa cuenta porque su atributo sAMAccountName ha cambiado, buscaría un servicio asociado con el nombre en el TGT con un signo de dólar al final y encontraría la cuenta del controlador de dominio. Como resultado, el controlador de dominio emitiría de forma fiable un ticket para el usuario privilegiado al controlador de dominio y lo enviaría al atacante.

Aunque en este ataque se abusa de una función de la extensión de delegación restringida de Kerberos (S4U2Self), añadir todas las cuentas con privilegios al grupo de usuarios protegidos o configurarlas como sensibles para la delegación no mitigaría el riesgo porque estos controles de seguridad sólo afectan a S4U2Proxy.

Aunque este ataque requiere privilegios de escritura en el atributo sAMAccountName de una cuenta que tenga al menos un Service Principal Name (SPN), por defecto, todos los usuarios autenticados pueden crear hasta diez nuevas cuentas de equipo en el dominio, lo que les permite "traer su propia cuenta de equipo" y explotar esta vulnerabilidad.

Tenga en cuenta que el grupo de Usuarios Autenticados incluye usuarios extranjeros de otros bosques con una relación de confianza adecuada, lo que significa que -bajo la configuración por defecto- los atacantes pueden crear una cuenta de equipo en un bosque de confianza y ejecutar el ataque también en ese bosque, rompiendo otro límite de seguridad.

Cómo mitigar CVE-2021-42278 y CVE-2021-42287

Para evitar los ataques que aprovechan CVE-2021-42278 y CVE-2021-42287, recomiendo encarecidamente tres medidas:

  1. Instale inmediatamente los parches(CVE-42287 y CVE-422278)
  2. Cambiar el valor del atributo MSDS-MachineAccountQuota a cero.
  3. Aplique el Principio de Mínimo Privilegio a la asignación de derechos de usuario denominada "Añadir estaciones de trabajo al dominio" (SeMachineAccountPrivilege).

Este plan de acción ayudará a evitar la creación no autorizada de cuentas informáticas y elevará el nivel de exigencia para ejecutar este ataque, así como varios otros ataques que requieren una cuenta informática o una cuenta que tenga un SPN.