Puedes correr, pero no puedes esconderte: exclusiones de Defender

El equipo de endpoint de Huntress se enfoca en ofrecer telemetría y protecciones en torno a amenazas reales de adversarios. Una cosa que hemos notado que suele pasarse por alto es que los adversarios aprovechan la configuración del antivirus de Microsoft Defender (MDAV) para evadir los análisis de sus binarios maliciosos. Obviamente, desactivar Defender por completo es lo ideal para los adversarios, pero la configuración que vamos a analizar hoy son las exclusiones de MDAV.

Las exclusiones son una funcionalidad que Microsoft ha expuesto. Permiten que un usuario con privilegios de administrador o superiores evada los análisis antivirus en carpetas, binarios y direcciones IP. Según el caso de uso, un atacante puede aprovechar las exclusiones de forma más sigilosa que al desactivar por completo el antivirus.

Antes de adentrarnos en las tácticas del adversario, veamos el funcionamiento interno de las exclusiones de MDAV. Microsoft admite cuatro tipos de exclusiones de antivirus, que permiten distintas acciones sobre las exclusiones:

Tipos de exclusiones de windows defender

Tipo de exclusión

Descripción

Proceso

Desactiva el análisis en tiempo real de los archivos abiertos por procesos específicos, es decir, el proceso (de origen) especificado no se analiza.

Ruta

Excluye rutas de archivos completas de los análisis en tiempo real o programados.

Extensión

Desactiva los análisis en tiempo real, programados o personalizados en ciertas extensiones de archivo.

IpAddress

Desactiva la inspección de paquetes de red entrantes desde una IP determinada.

Existen varias formas en que alguien puede interactuar con las exclusiones de MDAV:

  1. PowerShell (Set-MpPreference/Add-MpPreference)

  2. WMI (clase MSFT_MpPreference)

  3. Directiva de grupo (GPO)

  4. Modificación directa del registro

Cuando alguien establece una exclusión mediante PowerShell, la ejecución de la llamada pasa por la clase WMI MSFT_MpPreference. Luego pasa por COM y RPC hasta transferir la ejecución a MsMpEng.exe (el binario de MDAV). MsMpEng.exe entonces modifica la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions.

Si alguien crea una exclusión mediante una GPO, el flujo de ejecución a menudo pasa por el svchost de la GPO (C:\Windows\system32\svchost.exe -k netsvcs -p -s gpsvc), el cual establece un valor de registro dentro de la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Exclusions.

Nota: Esta es una clave de registro distinta a la que modifica MsMpEng.exe. Sin embargo, cada vez que alguien intenta consultar las exclusiones de Defender, se consultarán las exclusiones establecidas tanto por la GPO como por MDAV. La Figura 1 muestra un resultado de ProcMon al ejecutar (Get-MpPreference).ExclusionPath en PowerShell.

Figura 1: Actividad del registro mostrada por ProcMon

Ahora que entendemos un poco mejor las exclusiones de MDAV, veamos las tácticas del atacante.

Cómo los atacantes abusan de las exclusiones de defender

Como probablemente puedas notar, las exclusiones son una excelente forma de evadir los análisis de MDAV, y los dos tipos de exclusiones más usados y valiosos para un atacante son las exclusiones de ruta y de extensión. Cuando se establecen estos dos tipos de exclusiones, la ruta o el proceso que coincide con esa exclusión queda excluido de los análisis programados, los análisis bajo demanda y la protección y el monitoreo en tiempo real siempre activos. Vemos esto en las siguientes campañas de adversarios:

GootKit - 2019
Crea una exclusión de ruta de MDAV mediante la clase WMI MSFT_MpPreference.

WhisperGate - 2022
Crea una exclusión de ruta de MDAV para la unidad C:\ mediante el CmdLet Set-MpPreference de PowerShell

Muddled Libra - 2024

Como se mencionó antes, existen muchas formas de crear una entrada en la política de exclusiones: PowerShell, WMI, GPO y modificación directa del registro. Veamos un ejemplo de cada una:

PowerShell: 

Set-MpPreference: 
Set-MpPreference -ExclusionPath C:\Temp

Add-MpPreference:
Add-MpPreference -ExclusionPath C:\Temp

WMI: 

Método Add en la clase MSFT_MpPreference:
Invoke-CimMethod -Namespace root/Microsoft/Windows/Defender -ClassName MSFT_MpPreference -MethodName Add -Arguments @{ExclusionPath=@("C:\Temp"); ThreatIDDefaultAction_Ids=@([Int64]1,[Int64]2,[Int64]3,[Int64]10); ThreatIDDefaultAction_Actions=@([Byte]1, [Byte]2, [Byte]3, [Byte]10); Force=$true}

GPO:

Configuración del equipo -> Plantillas administrativas -> Componentes de Windows -> antivirus de Microsoft Defender -> Exclusiones

Figura 2: Vista de la exclusión de GPO de C:\temp

Modificación directa del registro:

Debido a que MDAV bloquea la capacidad de escribir directamente en la clave del registro KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions, no es posible modificarla directamente. Sin embargo, un atacante podría modificar directamente el valor Paths de la siguiente clave de registro de GPO: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Exclusions. El siguiente comando muestra una de esas modificaciones para agregar la carpeta C:\temp a la exclusión:

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows
Defender\Exclusions\Paths" /v "C:\Temp" /t REG_SZ

La única salvedad es que esta política requiere un reinicio para aplicarse.

Pero espera... hay más.

Otra cosa interesante que encontramos durante esta iniciativa es que los atacantes pueden establecer el siguiente valor de clave de registro para "ocultar" las exclusiones de los administradores cuando intentan consultarlas:

HKLM\SOFTWARE\Policies\Microsoft\Windows
Defender\HideExclusionsFromLocalAdmins

La Figura 3 muestra intentos de consultar exclusiones antes y después de establecer el valor de registro HideExclusionsFromLocalAdmins. Como puedes ver, el administrador no puede ver las exclusiones al consultarlas mediante PowerShell.

Figura 3: Consulta de PowerShell fallida después de establecer el valor de HideExclusionsFromLocalAdmins

Aunque este valor de registro dice "HideExclusionsFromLocalAdmins", también impide que los usuarios SYSTEM consulten estos datos, como se ve en la Figura 4.

Figura 4: Consulta de PowerShell fallida a nivel SYSTEM

Esto es obviamente problemático porque, dependiendo de cómo los productos consultan la lista de exclusiones, permite que los atacantes potencialmente oculten las exclusiones que están estableciendo. Sin embargo, los administradores y los usuarios SYSTEM todavía pueden consultar estos datos. Solo necesitan hacerlo directamente a través del registro.

¿Qué está haciendo Huntress?

Si usas Huntress Managed EDR, ya sabes que buscamos una cobertura total y transparencia total con nuestros partners y clientes. Esto es exactamente lo que el equipo de Huntress Windows EDR creó en respuesta a esta técnica:

Telemetría:

  1. Recopilamos telemetría sobre las exclusiones que se establecen mediante operaciones de registro. Quisimos hacer esto porque, sin importar cómo alguien establezca una exclusión, esta debe quedar registrada en el registro. Esto nos permite ver si alguien establece esta exclusión mediante PowerShell, WMI, GPO o manualmente.

  2. Recopilamos telemetría sobre cuándo se establece la configuración HideExclusionsFromLocalAdmins mediante operaciones de registro.

Detecciones:

  1. Contamos con detecciones integradas para exclusiones sospechosas establecidas en la máquina. Esto aplica tanto para binarios maliciosos conocidos como para directorios sospechosos como C:\, Temp, Downloads, etc. 

  2. Detecciones relacionadas con el establecimiento de la configuración HideExclusionsFromLocalAdmins.

Mantente a la delantera frente a las exclusiones de Defender

En Huntress, queremos darte la mejor seguridad posible. Parte de ese proceso consiste en examinar tecnología más antigua y ver si los adversarios todavía la usan para tener éxito en sus campañas. Identificamos que las exclusiones de MDAV se usan más de lo que pensábamos originalmente. Estas técnicas les dan ventaja a los atacantes, y quisimos abordar eso. Para lograrlo, investigamos a fondo esta técnica, identificamos cómo los atacantes pueden ejecutarla y la han ejecutado, además de identificar formas en que los atacantes podrían ejecutar esta actividad de maneras que todavía no hemos visto, para así contar con la cobertura adecuada.

Quisimos presentar un análisis detallado de esta iniciativa y de cómo hemos logrado dar mayor comprensión y capacidades a nuestro agente de endpoint para ayudar a protegerte mejor. Esperamos que lo hayas disfrutado. Como siempre, no dudes en contactarnos si tienes alguna pregunta, o reservar una demo para ver estas capacidades en acción.

También te podría interesar