# DET0300 — Detection Strategy for Reflective Code Loading ## Descrição Esta estratégia detecta Reflective Code Loading, uma técnica onde adversários carregam e executam código diretamente na memória sem criar arquivos em disco, contornando detecções baseadas em assinatura de arquivo e monitoramento de filesystem. A técnica, popularizada pela biblioteca `ReflectiveDLLInjection`, permite que um shellcode carregue uma DLL completa em memória, resolvendo suas dependências e imports sem chamar as funções de carregamento normais do Windows (`LoadLibrary`). Os indicadores técnicos incluem regiões de memória com permissões `RWX` (leitura, escrita e execução) não associadas a módulos carregados pelo loader do Windows, presença de estruturas PE (magic bytes `MZ`/`PE`) em heap ou regiões alocadas dinâmicamente, e chamadas de API `NtAllocateVirtualMemory`/`VirtualAlloc` seguidas de `NtProtectVirtualMemory` concedendo permissões de execução sem mapeamento de arquivo correspondente. [[s0154-cobalt-strike|Cobalt Strike]] (Reflective DLL Injection), [[Metasploit]] (Meterpreter) e ferramentas de pós-exploração como [[s0633-sliver|Sliver]] e [[Brute Ratel]] utilizam amplamente esta técnica para evasão de EDR. A detecção requer instrumentação de memória via ETW ou scanning periódico de regiões de memória suspeitas por scanners de EDR. ## Indicadores de Detecção - Região de memória com permissão `PAGE_EXECUTE_READWRITE` não mapeada a nenhum módulo de disco - Magic bytes `MZ`+`PE` encontrados em heap ou região `MEM_PRIVATE` de processo de sistema - `NtAllocateVirtualMemory` com `MEM_COMMIT|MEM_RESERVE` seguido de `NtWriteVirtualMemory` e `NtProtectVirtualMemory` (RWX) - Chamada a `NtCreateThreadEx` ou `RtlCreateUserThread` com start address em região anônima - Ausência de `LoadLibrary` no stack trace de módulo carregado (indicativo de reflective loading) - Thread com call stack originado em região de memória sem módulo associado (threadless injection) ## Técnicas Relacionadas - [[t1620-reflective-code-loading|T1620 — Reflective Code Loading]] - [[t1055-process-injection|T1055 — Process Injection]] - [[t1027-obfuscated-files-or-information|T1027 — Obfuscated Files or Information]] - [[t1059-command-and-scripting-interpreter|T1059 — Command and Scripting Interpreter]] ## Analytics Relacionadas - [[an0838-analytic-0838|AN0838 — Analytic 0838]] - [[an0839-analytic-0839|AN0839 — Analytic 0839]] - [[an0840-analytic-0840|AN0840 — Analytic 0840]] --- *Fonte: [MITRE ATT&CK — DET0300](https://attack.mitre.org/detectionstrategies/DET0300)*