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