
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.