Darren Mar-Elia

Vista a 10.000 pies:

Muchos de nosotros estamos familiarizados con la variedad de herramientas, ataques y adversarios que se centran en vulnerar Active Directory. Con el lanzamiento en 2018 de DCShadow, se añadió otro vector altamente eficaz a esa lista cada vez mayor. Para el crédito del equipo de investigación, junto con el exploit, discutieron cómo entender y potencialmente mitigar el ataque con un mayor monitoreo y administración DEL Directorio Activo. Sin embargo, como ocurre con muchos de los ataques, no se trata sólo de entender CÓMO te han disparado... sino desde dónde. Aquí es donde el equipo de investigación de Semperis ha centrado algunos esfuerzos recientes. Ahora podemos ofrecer una imagen mucho más precisa del panorama empresarial e identificar con claridad y precisión los equipos cliente que han utilizado o están utilizando la herramienta de ataque contra el Directorio Activo de su organización.

Antecedentes:

Mimikatz, la herramienta de explotación de credenciales, proporciona una función llamada "DCShadow". Puedes pensar en DCShadow como lo opuesto al comando DCSync. Mientras que DCSync puede forzar a Active Directory (AD) a sincronizar las cuentas de usuario y sus hashes de contraseñas a un atacante, DCShadow permite a un atacante inyectar cambios en AD. Lo hace simulando el comportamiento de un controlador de dominio, que es esencialmente cualquier máquina comprometida dentro de un dominio de Active Directory. Cabe destacar que DCShadow es una herramienta de persistencia de dominio. Requiere que el atacante ya tenga acceso de Administrador de Dominio, o equivalente, en un dominio AD antes de que pueda ser utilizado. Sin embargo, una vez que se ha conseguido ese nivel de acceso, es una herramienta poderosa y silenciosa para crear y actualizar objetos en AD con el propósito de crear puertas traseras, elevar el acceso en cuentas regulares, y de otra manera establecer un punto de apoyo y ejecutar el control dentro del entorno objetivo.

Detectabilidad

La parte difícil de DCShadow es que, debido a que elude los mecanismos normales mediante los cuales se auditan los cambios en AD (es decir, normalmente se hace a través del registro de eventos de seguridad de Windows en los controladores de dominio), no se puede detectar fácilmente cuando se está utilizando. Y, si el atacante está realizando cambios sigilosos que usted no está buscando (por ejemplo, inyectando el SID de Enterprise Admins en el atributo sidHistory en un usuario sin privilegios) puede ser muy difícil detectar estas puertas traseras. Por ejemplo, cuando se ejecuta DCShadow, se añade temporalmente un objeto de clase servidor al contexto de nombres de configuración en un bosque determinado, para hacer creer a otros controladores de dominio que el servidor falso es un DC real. Pero ese objeto se elimina rápidamente cuando DCShadow completa su ejecución. Afortunadamente para el defensor, resulta que DCShadow deja algunas huellas dactilares cuando se ejecuta en un host.

Descubrir el uso de DCShadow

En primer lugar, algunos antecedentes. Un controlador de dominio "normal" registra una serie de nombres principales de servicio Kerberos (SPN) cuando se convierte en un DC. Uno de ellos es un SPN basado en GUID, como se muestra aquí:

Ese SPN basado en GUID tiene una característica interesante. Si lo miramos de cerca, vemos que en realidad hay dos GUID en el SPN. El primero, E3514235-4B06-11D1-AB

04-00C04FC2DCD2, es lo que se conoce como Well-Known GUID (WKGUID) y es registrado por cada controlador de dominio en cada bosque AD de la misma manera. El segundo GUID, en nuestro ejemplo: 8b699bb0-d35e-4199-8dd4-6a296c5fc7db, es único para un DC en particular.

[semperis-mid-scroll-cta]

Entonces, ¿cómo nos ayuda esto con la detección de DCShadow? Bueno, resulta que cuando DCShadow se ejecuta en un host determinado, añade un par de SPNs a esa máquina para hacer que otros DCs piensen que es un DC. Uno de ellos es el SPN basado en WKGUID. Desafortunadamente, lo que no hace es limpiarse cuando termina de ejecutarse (afortunadamente, un DCShadow desordenado). El resultado es que cualquier host que haya ejecutado DCShadow sigue almacenando el SPN basado en WKGUID en el atributo servicePrincipalName de su cuenta de máquina.

Puedes ver un ejemplo en la segunda captura de pantalla. En este ejemplo, hemos ejecutado DCShadow repetidamente desde este host; fíjate en cuántos SPN de WKGUID aparecen en la lista:

La buena noticia aquí, es que podemos usar esta información para distinguir hosts en AD que han ejecutado DCShadow. En primer lugar, sabemos que sólo los DCs *legítimos* deberían tener este SPN WKGUID en su cuenta de máquina. Eso es bastante fácil de buscar, pero podemos reducir aún más nuestra búsqueda buscando también otro SPN que sabemos que NO DEBERÍA estar en ninguna máquina que no sea un DC legítimo. El resultado que obtuvimos es la siguiente consulta LDAP:

"(&(objectClass=ordenador)(servicePrincipalName=E3514235-4B06-11D1-AB04-00C04FC2DCD2*)(!(servicePrincipalName=ldap*))"

Esta consulta busca todos los objetos informáticos cuyo atributo SPN contenga el SPN WKGUID (estamos utilizando un comodín aquí para excluir la parte GUID única de ese SPN) Y, no incluye el SPN LDAP, que todo DC legítimo contiene.

De acuerdo con la naturaleza sigilosa de DCShadow, el acto de añadir este SPN WKGUID a la cuenta de máquina del DC falso no se registra en el registro de eventos de seguridad del DC real que recibe la solicitud de replicación del DC falso.

Resumen

Suponiendo que DCShadow no "limpie su acto" en el corto plazo, esta detección nos permite llegar rápidamente a cualquier máquina que esté siendo utilizada para alojar inyecciones de DCShadow, ponerlas en cuarentena y ejecutar procesos forenses e IR completos ANTES de que puedan hacer más daño.

Demostración de ataque DCShadow

DCShadow explota un interruptor en la utilidad Mimikatz que permite a los usuarios privilegiados inyectar cambios maliciosos en Active Directory sin ser detectados. Vea este vídeo de presentación para aprender a detectar controladores de dominio maliciosos, deshacer rápidamente los cambios no deseados y restaurar la vista de su SIEM. Si tiene alguna pregunta, no dude en ponerse en contacto con la gente de Semperis.