
Aproveite um driver legítimo de callout WFP para impedir que agentes EDR enviem telemetria.
Coautor: @oops4git(https://github.com/oops4git)
O EDRPrison aproveita um driver legítimo de callout do WFP, o WinDivert, para silenciar efetivamente sistemas EDR. Inspirando-se em ferramentas como Shutter, FireBlock e EDRSilencer, este projeto foca em técnicas de evasão baseadas em rede. Ao contrário de seus antecessores, o EDRPrison instala e carrega um driver externo legítimo de callout do WFP, em vez de depender apenas do WFP integrado. Além disso, ele bloqueia o tráfego de saída de processos EDR adicionando dinamicamente filtros em tempo de execução, sem interagir diretamente com os processos EDR ou seus executáveis.
Em resumo, o EDRPrison possui os seguintes recursos e capacidades principais:
Consulte o artigo para obter mais detalhes técnicos: https://winslow1984.com/books/malware/page/edrprison-borrow-a-legitimate-driver-to-mute-edr-agent
Privilégios elevados são necessários para executar o EDRPrison com sucesso. O EDRPrison é composto pelos seguintes três componentes:
O EDRPrison oferece diversos aprimoramentos e melhorias em relação aos seus antecessores, tornando-o uma ferramenta mais robusta e furtiva para evasão de EDR baseada em rede:
Devido aos recursos disponíveis para mim, testei o EDRPrison contra o Elastic Endpoint e o Microsoft Defender for Endpoint (MDE) em meu servidor físico até o momento.
Os processos relevantes para Elastic Endpoint e MDE estão embutidos no código-fonte. Durante os testes, nem o programa principal nem o WinDivert foram detectados pelos sistemas de segurança.
Testei algumas amostras de malware comuns, como o Mimikatz. Essas amostras ainda podem ser detectadas porque, mesmo sem conectividade com a internet, os sistemas EDR mantêm capacidades básicas de detecção, como assinaturas baseadas em hash. Após executar o malware, o número de pacotes aumentou, indicando que eles continham dados de alerta.

Embora algumas detecções ocorram localmente, elas não aparecem no painel do EDR. Sem conectividade com a internet, os sistemas EDR não conseguem aproveitar capacidades avançadas, como aprendizado de máquina e computação em nuvem, para prevenir ataques de malware mais sofisticados.


Modifique o trecho de código a seguir para embutir mais processos 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);
}
As seguintes abordagens podem ser usadas para detectar ou mitigar o uso do EDRPrison. No entanto, dependendo do ambiente, algumas dessas detecções podem resultar em falsos positivos (FP).
Se o driver WinDivert ainda não estiver instalado no sistema, o EDRPrison instalará o driver de callout na primeira execução. Tanto o SO quanto os dados de telemetria registrarão esse evento.
O EDRPrison e outros programas dependentes do WinDivert exigem a presença de WinDivert64.sys e WinDivert.dll no disco. O monitoramento desses arquivos pode ajudar a detectar tais programas.
Ferramentas como o WinDivertTool podem detectar processos que estão atualmente utilizando a Plataforma de Filtragem do Windows (WFP).

A Elastic possui uma regra de detecção que pode identificar ações de descarte ou bloqueio de pacotes contra processos de software de segurança, o que pode indicar a presença do EDRPrison.
A ferramenta WFPExplorer auxilia administradores a revisar sessões WFP ativas, callouts registrados e filtros.




Um possível recurso futuro poderia adicionar proteções adicionais para a instalação de drivers, aumentando ainda mais a segurança contra o uso não autorizado de drivers como o WinDivert.
Do ponto de vista de red team, várias estratégias podem ser empregadas para subverter as detecções mencionadas, dependendo das configurações de segurança do ambiente.
Se o WinDivert for considerado malicioso no ambiente, drivers alternativos assinados e de código aberto podem ser usados. Essas alternativas devem ter menos registros de uso malicioso e ainda suportar interceptação de pacotes, reinjeção e outras técnicas de manipulação.
Em ambientes onde drivers externos não são autorizados a menos que aprovados, é desafiador, porém viável, fazer engenharia reversa de um driver de callout WFP instalado ou integrado. Ao reutilizar suas funções de callout, profissionais de red team podem aproveitar drivers existentes. Muitas soluções de software de segurança incluem seus próprios drivers de callout WFP que podem ser reaproveitados.
Em vez de bloquear ou descartar pacotes interceptados, profissionais de red team podem redirecioná-los ou encaminhá-los por um proxy. Esse método pode evitar regras de detecção focadas em ações de descarte ou bloqueio de pacotes, ao mesmo tempo que ainda atinge a interferência desejada nos processos EDR.
Os seguintes recursos me inspiraram e ajudaram muito durante minha pesquisa. Estendo meus agradecimentos a todos os autores: