# T1574.001 - DLL
## Técnica Pai
Esta é uma sub-técnica de [[t1574-hijack-execution-flow|T1574 - T1574 - Hijack Execution Flow]].
## Descrição
DLL Hijacking é uma técnica de persistência e evasão em que adversários abusam do mecanismo de carregamento de bibliotecas dinâmicas (DLLs) do Windows para executar código malicioso sob o contexto de um processo legítimo. O sistema operacional Windows localiza DLLs por meio de uma ordem de busca predefinida - primeiro o diretório do executável, depois pastas do sistema e, por fim, diretórios listados na variável PATH - e atacantes exploram essa sequência plantando arquivos maliciosos em locais prioritários para interceptar o carregamento antes da DLL original.
As variantes mais comuns incluem **DLL Sideloading** (plantar uma DLL maliciosa ao lado de um executável legítimo e assinado que a carrega automaticamente), **DLL Search Order Hijacking** (explorar a ordem de busca do Windows para que um diretório controlado pelo atacante sejá verificado antes do diretório legítimo) e **Phantom DLL Hijacking** (criar um arquivo com o nome de uma DLL inexistente referênciada por um processo privilegiado). Técnicas como **DLL Redirection** e **DLL Substitution** completam o espectro, modificando diretamente as entradas de registro ou substituindo arquivos legítimos.
A técnica é especialmente valorizada porque o código malicioso executa com a identidade e os privilégios do processo hospedeiro, tornando a detecção por listas de permissões de processos práticamente ineficaz. Quando o executável legítimo roda com privilégios elevados, a DLL carregada herda o mesmo nível de acesso, podendo ser encadeada com [[t1574-hijack-execution-flow|T1574 - Hijack Execution Flow]] para escalada de privilégios simultânea.
**Contexto Brasil/LATAM:** No Brasil, grupos como [[g0048-rtm|RTM]] - focados em fraude bancária corporativa - utilizam DLL Sideloading para carregar implants em processos de software financeiro amplamente usados no país, como sistemas de pagamento ERP e plataformas de NFe. A prevalência de versões desatualizadas de software empresarial no setor financeiro e varejo brasileiro amplia a superfície de ataque, pois aplicações antigas frequentemente referênciam DLLs que já não existem no caminho original, abrindo espaço para o phantom hijacking.
## Attack Flow
```mermaid
graph TB
A["Acesso Inicial<br/>(phishing / supply chain)"] --> B["Reconhecimento<br/>(mapeamento de DLLs)"]
B --> C["T1574.001<br/>DLL Hijacking"]:::highlight
C --> D["Execução sob<br/>processo legítimo"]
D --> E["Persistência /<br/>Privilege Escalation"]
classDef highlight fill:#e74c3c,color:#fff,stroke:#c0392b
```
## Como Funciona
1. **Preparação:** O adversário identifica um executável legítimo e assinado (ex: aplicação de segurança, VPN ou software ERP) que carrega uma DLL por nome sem caminho absoluto. Ferramentas como Process Monitor permitem mapear quais DLLs um processo tenta carregar e de onde.
2. **Execução:** O atacante planta a DLL maliciosa com o nome esperado em um diretório verificado antes do caminho original na ordem de busca do Windows. Ao iniciar o executável legítimo - sejá manualmente, na inicialização do sistema ou via agendador de tarefas - o Windows carrega a DLL do invasor em vez da original. Para evitar erros visuais, a DLL maliciosa normalmente exporta as mesmas funções da original e as encaminha para o arquivo legítimo, executando o payload de forma transparente.
3. **Pós-execução:** O código malicioso roda no contexto do processo hospedeiro, herdando seus tokens de segurança. O adversário pode estabelecer [[t1095-non-application-layer-protocol|comunicação C2]], instalar persistência adicional em chaves de registro ou mover-se lateralmente na rede. Como o processo visível é legítimo e assinado, ferramentas de monitoramento baseadas em nome de processo raramente alertam.
## Detecção
**Fontes de dados:**
- **Sysmon Event ID 7** - `ImageLoaded`: monitorar DLLs carregadas de caminhos incomuns (diretório do usuário, TEMP, Downloads) por processos privilegiados
- **Sysmon Event ID 1** - `ProcessCreaté`: correlacionar processos assinados iniciando a partir de diretórios não padrão
- **Windows Security Event ID 4688** - criação de processo com linha de comando incomum
- **Windows Security Event ID 4657** - modificação de chave de registro `HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs`
- **File System Monitoring** - detecção de arquivos `.dll` criados no diretório de executáveis conhecidos e legítimos
**Sigma Rule:**
```yaml
title: Suspicious DLL Loaded from User-Writable Path by Signed Process
id: a3f7d9c2-1b4e-4f88-9c12-e6d0a5b8f3d1
status: experimental
description: Detects signed processes loading DLLs from user-writable directories, indicating potential DLL hijacking
references:
- T1574.001
author: RunkIntel
daté: 2026-03-24
logsource:
product: windows
category: image_load
detection:
selection:
Signed: 'true'
ImageLoaded|contains:
- '\Users\'
- '\AppData\'
- '\Temp\'
- '\Downloads\'
- '\Public\'
filter_legit:
ImageLoaded|contains:
- '\AppData\Local\Microsoft\Teams\'
- '\AppData\Local\Google\Chrome\'
condition: selection and not filter_legit
falsepositives:
- Instaladores legítimos em fase de setup
- Alguns pacotes portáveis instalados em diretório do usuário
level: high
tags:
- attack.persistence
- attack.t1574.001
- attack.defense_evasion
```
## Mitigação
| Mitigação | Recomendação Prática |
|-----------|---------------------|
| [[m1044-restrict-library-loading\|M1044 - Restrict Library Loading]] | Habilitar `SafeDllSearchMode` no registro do Windows. Configurar aplicações para usar caminhos absolutos ao carregar DLLs. Usar `SetDllDirectory("")` em código próprio para remover o diretório atual da ordem de busca. |
| [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Implementar AppLocker ou Windows Defender Application Control (WDAC) com regras que bloqueiem DLLs não assinadas ou oriundas de caminhos não autorizados. Priorizar regras para diretórios sensíveis como `%SystemRoot%` e `%ProgramFiles%`. |
| [[m1047-audit\|M1047 - Audit]] | Auditar periodicamente os diretórios de instalação de aplicativos críticos comparando hashes de DLLs com valores conhecidos. Ferramentas como Sysinternals Sigcheck ou scripts PowerShell podem automatizar a verificação de integridade. |
| [[m1051-update-software\|M1051 - Updaté Software]] | Manter aplicações atualizadas, pois versões antigas frequentemente referênciam DLLs inexistentes ou de caminhos não protegidos. Priorizar atualização de software de segurança e soluções de gestão empresarial. |
| [[m1013-application-developer-guidance\|M1013 - Application Developer Guidance]] | Desenvolvedores devem usar caminhos absolutos e assinatura digital de DLLs. Auditar código para uso de `LoadLibrary()` sem caminho completo. Em ambientes corporativos brasileiros, exigir que fornecedores sigam práticas de Secure Software Development (SSDLC). |
## Threat Actors
Os seguintes grupos usam DLL Hijacking como técnica central de persistência e evasão:
- [[g0114-chimera|Chimera]] - grupo APT com foco em espionagem corporativa, utiliza sideloading em ferramentas de VPN corporativas
- [[g1021-cinnamon-tempest|Cinnamon Tempest]] - operador de ransomware que combina DLL hijacking com movimento lateral acelerado
- [[g0069-mango-sandstorm|MuddyWater]] - APT iraniano que usa a técnica contra alvos governamentais e de telecomúnicações no Oriente Médio e além
- [[g1047-velvet-ant|Velvet Ant]] - grupo com operações de longa duração em redes corporativas, explorou sideloading para persistência furtiva em appliances de rede
- [[g0048-rtm|RTM]] - grupo de fraude financeira com histórico de ataques a empresas brasileiras, usa DLL hijacking em processos de software de pagamento
- [[g0131-tonto-team|Tonto Team]] - APT com nexo chinês ativo contra infraestrutura crítica e pesquisa em múltiplos países
- [[g0040-patchwork|Patchwork]] - grupo de espionagem que utiliza sideloading em aplicações legítimas como vetor de entrega
- [[g0107-whitefly|Whitefly]] - ator focado em espionagem corporativa de longo prazo via sideloading silencioso
- [[g0143-aquatic-panda|Aquatic Panda]] - APT chinês com operações contra academia e setor de saúde usando DLL hijacking em ferramentas de gerenciamento
- [[g0093-gallium|GALLIUM]] - grupo voltado a provedores de telecomúnicações, usa a técnica para manter acesso persistente em infraestruturas de alto valor
## Software Associado
Os seguintes malwares e ferramentas implementam ou abusam de DLL Hijacking:
- [[s1041-chinoxy|Chinoxy]] - backdoor que usa sideloading em aplicações legítimas de colaboração para executar seu payload
- [[s0384-dridex|Dridex]] - trojan bancário amplamente usado contra alvos europeus e brasileiros, usa hijacking para carregamento furtivo
- [[s0528-javali|Javali]] - trojan bancário com foco explícito no Brasil e México, usa DLL sideloading em processos de software financeiro brasileiro
- [[s0664-pandora|Pandora]] - backdoor que combina DLL hijacking com comunicação C2 criptografada
- [[s0070-httpbrowser|HTTPBrowser]] - RAT usado por atores chineses com carregamento via DLL sideloading
- [[s0109-webc2|WEBC2]] - família de backdoors do APT1 que usa técnicas de DLL para persistência
- [[s0009-hikit|Hikit]] - rootkit sofisticado que utiliza hijacking para carregar componentes em modo kernel
- [[s0176-wingbird|Wingbird]] - backdoor que usa sideloading de DLL para mascarar execução em processos do sistema
- [[s0128-badnews|BADNEWS]] - RAT usado pelo grupo Patchwork, carregado via sideloading em aplicativos populares
- [[s1227-starproxy|StarProxy]] - ferramenta de proxy que abusa de DLL para persistir em ambientes comprometidos
---
*Fonte: [MITRE ATT&CK - T1574.001](https://attack.mitre.org/techniques/T1574/001)*