# DET0389 — Behavioral Detection of DLL Injection via Windows API
## Descrição
A injeção de DLL via Windows API é uma das técnicas de injeção de código mais populares entre adversários, aproveitando funções legítimas da API Win32 para carregar código malicioso no espaço de memória de processos confiáveis. A sequência clássica envolve: `OpenProcess` (obter handle ao processo alvo) → `VirtualAllocEx` (alocar memória no processo alvo) → `WriteProcessMemory` (escrever o path da DLL) → `CreateRemoteThread` com endereço de `LoadLibraryA/W` como função de início (forçar carregamento da DLL). Isso resulta na DLL maliciosa sendo executada no contexto do processo-alvo, herdando seus privilégios e contornando controles baseados em processo.
Variações da técnica incluem: `NtCreateThreadEx` para contornar hooks em `CreateRemoteThread`, `RtlCreateUserThread` como alternativa de baixo nível, reflective DLL injection (sem escrever a DLL em disco), e QueueUserAPC injection. Frameworks de post-exploitation como [[s0154-cobalt-strike|Cobalt Strike]] e [[Metasploit]] implementam reflective DLL injection como técnica padrão para carregamento de módulos, tornando a detecção baseada em arquivo insuficiente — é necessária análise comportamental de chamadas de API.
A estratégia correlaciona a sequência de chamadas API características no mesmo processo e em curto intervalo, monitoramento de `CreateRemoteThread` com `StartAddress` apontando para `LoadLibraryA`, e análise de DLLs carregadas em processos que não constam em listas de módulos legítimos.
## Indicadores de Detecção
- Sequência `OpenProcess` + `VirtualAllocEx` + `WriteProcessMemory` + `CreateRemoteThread` para mesmo PID
- `CreateRemoteThread` com `lpStartAddress` apontando para `LoadLibraryA` em processo de destino
- DLL carregada em processo legítimo (`explorer.exe`, `svchost.exe`) não presente no baseline de módulos
- `NtCreateThreadEx` chamado de processo de baixo privilégio com destino em processo de sistema
- Módulo DLL em memória sem arquivo correspondente em disco (reflective injection)
- `VirtualAllocEx` com permissão `PAGE_EXECUTE_READWRITE` em processo de destino por processo externo
## Técnicas Relacionadas
- [[T1055001-dynamic-link-library-injection|T1055.001 — Dynamic-link Library Injection]]
- [[t1055-process-injection|T1055 — Process Injection]]
- [[T1055012-process-hollowing|T1055.012 — Process Hollowing]]
- [[T1574002-dll-side-loading|T1574.002 — DLL Side-Loading]]
- [[T1036005-match-legitimate-name-or-location|T1036.005 — Match Legitimaté Name or Location]]
## Analytics Relacionadas
- [[an1095-analytic-1095|AN1095 — Analytic 1095]]
---
*Fonte: [MITRE ATT&CK — DET0389](https://attack.mitre.org/detectionstrategies/DET0389)*