
Aproveche un controlador callout WFP legítimo para evitar que los agentes EDR envíen telemetría.
Coautor: @oops4git(https://github.com/oops4git)
EDRPrison aprovecha un controlador WFP callout legítimo, WinDivert, para silenciar eficazmente los sistemas EDR. Inspirándose en herramientas como Shutter, FireBlock y EDRSilencer, este proyecto se centra en técnicas de evasión basadas en red. A diferencia de sus predecesores, EDRPrison instala y carga un controlador WFP callout externo y legítimo en lugar de depender únicamente del WFP integrado. Además, bloquea el tráfico saliente de los procesos EDR añadiendo dinámicamente filtros en tiempo de ejecución sin interactuar directamente con los procesos EDR ni con sus ejecutables.
En resumen, EDRPrison tiene las siguientes características y capacidades clave:
Consulte el artículo para obtener más detalles técnicos: https://winslow1984.com/books/malware/page/edrprison-borrow-a-legitimate-driver-to-mute-edr-agent
Se requieren privilegios elevados para ejecutar EDRPrison correctamente. EDRPrison consta de los siguientes tres componentes:
EDRPrison ofrece varias mejoras y perfeccionamientos respecto a sus predecesores, convirtiéndolo en una herramienta más robusta y sigilosa para la evasión de EDR basada en red:
Debido a los recursos disponibles, hasta ahora he probado EDRPrison contra Elastic Endpoint y Microsoft Defender for Endpoint (MDE) en mi servidor físico.
Los procesos relevantes para Elastic Endpoint y MDE están codificados (hardcoded) en el código fuente. Durante las pruebas, ni el programa principal ni WinDivert fueron detectados por los sistemas de seguridad.
Probé algunas muestras de malware comunes, como Mimikatz. Estas muestras aún pueden ser detectadas porque, incluso sin conectividad a internet, los sistemas EDR conservan capacidades básicas de detección, como las firmas basadas en hash. Después de ejecutar el malware, el número de paquetes aumentó, lo que indica que contenían datos de alerta.

Aunque algunas detecciones ocurren localmente, no aparecen en el panel del EDR. Sin conectividad a internet, los sistemas EDR no pueden aprovechar capacidades avanzadas como el aprendizaje automático y la computación en la nube para prevenir ataques de malware más sofisticados.


Modifique el siguiente fragmento de código para codificar (hardcode) más procesos EDR.
static void initData()
{
processDictionary.TryAdd("MsMpEng.exe", 1);
processDictionary.TryAdd("MsSense.exe", 1);
processDictionary.TryAdd("SenseIR.exe", 1);
processDictionary.TryAdd("SenseNdr.exe", 1);
processDictionary.TryAdd("SenseCncProxy.exe", 1);
processDictionary.TryAdd("SenseSampleUploader.exe", 1);
processDictionary.TryAdd("elastic-endpoint.exe", 1);
processDictionary.TryAdd("elastic-agent.exe", 1);
}
Los siguientes enfoques se pueden utilizar para detectar o mitigar el uso de EDRPrison. Sin embargo, dependiendo del entorno, algunas de estas detecciones podrían dar lugar a falsos positivos (FP).
Si el controlador WinDivert no está ya instalado en el sistema, EDRPrison instalará el controlador callout en la primera ejecución. Tanto el sistema operativo como los datos de telemetría registrarán este evento.
EDRPrison y otros programas dependientes de WinDivert requieren la presencia de WinDivert64.sys y WinDivert.dll en el disco. El monitoreo de estos archivos puede ayudar a detectar dichos programas.
Herramientas como WinDivertTool pueden detectar procesos que están utilizando actualmente la Plataforma de Filtrado de Windows (WFP).

Elastic tiene una regla de detección que puede identificar acciones de descarte o bloqueo de paquetes contra procesos de software de seguridad, lo que puede indicar la presencia de EDRPrison.
La herramienta WFPExplorer ayuda a los administradores a revisar las sesiones WFP activas, los callouts registrados y los filtros.




Una posible característica futura podría añadir protecciones adicionales para la instalación de controladores, mejorando aún más la seguridad contra el uso no autorizado de controladores como WinDivert.
Desde la perspectiva de un red team, se pueden emplear varias estrategias para subvertir las detecciones mencionadas, dependiendo de las configuraciones de seguridad del entorno.
Si WinDivert se considera malicioso en el entorno, se pueden usar controladores alternativos firmados y de código abierto. Estas alternativas deberían tener menos registros de uso malicioso y seguir admitiendo la interceptación de paquetes, la reinyección y otras técnicas de manipulación.
En entornos donde los controladores externos no están autorizados a menos que sean aprobados, es un desafío, pero factible, realizar ingeniería inversa de un controlador WFP callout instalado o integrado. Al reutilizar sus funciones callout, los red teamers pueden aprovechar los controladores existentes. Muchas soluciones de software de seguridad incluyen sus propios controladores WFP callout que pueden reutilizarse.
En lugar de bloquear o descartar los paquetes interceptados, los red teamers pueden redirigirlos o enviarlos a través de un proxy. Este método puede evitar las reglas de detección centradas en acciones de descarte o bloqueo de paquetes, logrando al mismo tiempo la interferencia deseada con los procesos EDR.
Los siguientes recursos me inspiraron y ayudaron mucho durante mi investigación. Agradezco a todos los autores: