# 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)*