# T1574 - Hijack Execution Flow ## Descrição Adversários podem executar payloads maliciosos interceptando o fluxo de execução do sistema operacional. Quando um programa é iniciado, o sistema operacional precisa localizar e carregar executáveis e bibliotecas dinâmicas - esse processo de busca e carregamento pode ser manipulado de diversas formas para que código malicioso sejá inserido na cadeia de execução de um processo legítimo, sem alertar o usuário ou os mecanismos de defesa. Esta técnica abrange três vetores principais de abuso. O primeiro é a **manipulação de localização de programas**: o adversário envenena diretórios ou variáveis de ambiente como `PATH` para que o sistema encontre seu executável malicioso antes do legítimo quando um comando é invocado. O segundo é o **sequestro de carregamento de bibliotecas**: o carregador dinâmico (DLL Loader no Windows, `dyld` no macOS, `ld.so` no Linux) é manipulado para importar uma biblioteca maliciosa no lugar da legítima. O terceiro vetor explora **permissões inadequadas** em arquivos de serviços, instaladores, ou entradas do Registro que o adversário pode sobrescrever. O valor estratégico desta técnica reside no fato de que o código malicioso é executado **dentro do contexto de um processo confiável e assinado digitalmente**. Isso ilude diretamente controles baseados em allowlisting de aplicações - como AppLocker e Windows Defender Application Control (WDAC) - que válidam o processo pai, mas não inspecionam as bibliotecas carregadas dinâmicamente. Em muitos casos, a técnica também promove escalada de privilégios, pois o processo legítimo sequestrado pode rodar com permissões administrativas ou de SYSTEM. A ubiquidade desta família de técnicas em grupos APT e operadores de ransomware de alto nível reflete sua eficácia: o [[g0096-apt41|APT41]], o [[g0032-lazarus-group|Lazarus Group]] e o [[g0046-fin7|FIN7]] utilizam variantes desta técnica em diferentes fases de suas operações, desde a instalação inicial de implantes até a evasão de defesas em redes altamente monitoradas. ## Como Funciona A técnica T1574 cobre mecanismos distintos dependendo do sistema operacional alvo. Os padrões mais relevantes são: ### DLL Search Order Hijacking (Windows - T1574.001) O Windows carrega DLLs seguindo uma ordem de busca padrão: diretório da aplicação, depois diretório do sistema (`System32`), depois diretórios no `PATH`. Se um adversário puder escrever em um diretório de alta prioridade na ordem de busca - especialmente o diretório da aplicação - uma DLL maliciosa será carregada no lugar da legítima. Aplicações portáteis e instaladores frequentemente têm esse problema. ### DLL Sideloading Uma variante específica do DLL Hijacking onde o adversário copia uma DLL maliciosa com o nome exato de uma DLL legítima esperada por um executável confiável (frequentemente assinado por um vendor renomado), e coloca o executável + DLL falsa em um diretório controlado pelo adversário. O Windows carrega o executável legítimo, que por sua vez carrega a DLL falsa. ### Path Interception (T1574.007 / T1574.008 / T1574.009) Manipulação da variável `PATH` ou abuso de serviços Windows com caminhos não-quotados. Se um serviço tem o caminho `C:\Program Files\My App\service.exe`, o Windows tentará primeiro executar `C:\Program.exe` - se esse arquivo existir e for controlado pelo adversário, ele é executado em vez do serviço legítimo. ### Dynamic Linker Hijacking (Linux/macOS - T1574.006) No Linux, a variável de ambiente `LD_PRELOAD` força o carregador dinâmico a carregar uma biblioteca específicada antes de qualquer outra, sobrescrevendo funções da libc ou de outras bibliotecas do sistema. No macOS, `DYLD_INSERT_LIBRARIES` cumpre a mesma função. Adversários usam esses mecanismos para interceptar chamadas de sistema e injetar código em processos legítimos. ## Attack Flow ```mermaid graph TB A[Adversário] --> B{Vetor de abuso\nselecionado} B --> C[DLL Search Order<br/>Hijacking - Windows] B --> D[PATH / Search Order<br/>Interception] B --> E[Permissões fracas<br/>em Serviços / Registro] B --> F[LD_PRELOAD /<br/>DYLD_INSERT - Linux/macOS] C --> G[Processo legítimo<br/>carrega biblioteca maliciosa] D --> G E --> H[Serviço elevado executa<br/>binário do adversário] F --> G G --> I[Código malicioso executa<br/>no contexto do processo confiável] H --> I I --> J{Objetivo alcançado} J --> K[Persistência<br/>Re-execução a cada invocação] J --> L[Escalada de Privilégios<br/>Se processo alvo é elevado] J --> M[Evasão de Defesas<br/>Allowlisting bypassado] ``` ## Sub-técnicas - [[t1574-001-dll|T1574.001 - DLL]] - [[t1574-002-dll-side-loading|T1574.002 - Hijack Execution Flow: DLL Side-Loading]] - [[t1574-004-dylib-hijacking|T1574.004 - Dylib Hijacking]] - [[t1574-005-executable-installer-file-permissions-weakness|T1574.005 - Executable Installer File Permissions Weakness]] - [[t1574-006-dynamic-linker-hijacking|T1574.006 - Sequestro do Vinculador Dinâmico]] - [[t1574-007-path-interception-by-path-environment-variable|T1574.007 - Path Interception by PATH Environment Variable]] - [[t1574-008-path-interception-by-search-order-hijacking|T1574.008 - Interceptação de Caminho por Sequestro de Ordem de Busca]] - [[t1574-009-path-interception-by-unquoted-path|T1574.009 - Path Interception by Unquoted Path]] - [[t1574-010-services-file-permissions-weakness|T1574.010 - Services File Permissions Weakness]] - [[t1574-011-services-registry-permissions-weakness|T1574.011 - Services Registry Permissions Weakness]] - [[t1574-012-corprofiler|T1574.012 - COR_PROFILER]] - [[t1574-013-kernelcallbacktable|T1574.013 - KernelCallbackTable]] - [[t1574-014-appdomainmanager|T1574.014 - AppDomainManager]] ## Táticas MITRE ATT&CK Esta técnica é mapeada para três táticas simultaneamente, o que reflete sua versatilidade: - **Persistence** - O código malicioso é re-executado cada vez que o processo legítimo é invocado, garantindo persistência sem a necessidade de outros mecanismos de inicialização. - **Privilege Escalation** - Processos que rodam com privilégios elevados (SYSTEM, root, sudo) carregam o payload do adversário, transferindo seus privilégios para o código malicioso. - **Defense Evasion** - A execução ocorre dentro de um processo confiável e frequentemente assinado digitalmente, iludindo controles de allowlisting como AppLocker e bypassing de monitoramento comportamental que confia em processos do vendor. ## Exemplos de Uso ### Lazarus Group - DLL Hijacking em Alvos Financeiros e de Defesa O [[g0032-lazarus-group|Lazarus Group]] é extensivamente documentado pelo uso de DLL Search Order Hijacking e DLL Sideloading em campanhas contra alvos financeiros, bolsas de criptomoedas e contratantes do setor de defesa. O implante [[s0567-dtrack|Dtrack]] utiliza técnicas de DLL hijacking para se injetar em processos confiáveis, evadindo soluções de segurança que confiam em binários assinados. Em campanhas como a Operation Dream Job, o Lazarus Group distribui aplicações de recrutamento trojanizadas que executam DLL sideloading como parte de sua cadeia de infecção. ### APT41 - DLL Sideloading para Evasão de EDR O [[g0096-apt41|APT41]], grupo chinês que combina espionagem patrocinada pelo estado com crime financeiro, é conhecido por usar DLL sideloading com executáveis assinados por vendors legítimos (VLC Media Player, antivírus, ferramentas de segurança) para carregar implantes. Essa técnica é especialmente eficaz porque o processo pai - um binário assinado e confiável - aparece em logs de segurança como atividade legítima. O APT41 aplica esta técnica em operações contra setor de saúde, telecomúnicações e governo. ### FIN7 - Unquoted Service Path em Ambientes Corporativos O [[g0046-fin7|FIN7]], grupo criminoso responsável por bilhões de dólares em fraudes financeiras globais, utiliza Unquoted Service Path (T1574.009) em combinação com permissões fracas em diretórios de instalação para escalar privilégios em redes corporativas. O grupo frequentemente combina essa técnica com seu framework customizado [[g0008-carbanak|Carbanak]] para manter acesso persistente privilegiado em redes de varejistas e empresas de hospitalidade. ### DarkGaté e Raspberry Robin - Malware de Alto Volume O [[darkgaté|DarkGaté]], um malware-as-a-service de alto volume distribuído via phishing e anúncios maliciosos, utiliza DLL sideloading para carregar seu payload em processos confiáveis, evadindo detecção por soluções de segurança que inspecionam apenas executáveis e não módulos carregados. O [[s1130-raspberry-robin|Raspberry Robin]], distribuído via dispositivos USB comprometidos, usa PATH interception para escalar privilégios sem acionar o prompt UAC padrão - explorando uma cadeia de vulnerabilidades em componentes do Windows. ### COATHANGER - Hijacking em Dispositivos de Rede O [[s1105-coathanger|COATHANGER]], implante persistente ligado a atores chineses e identificado em dispositivos FortiGaté da Fortinet, utiliza técnicas de dynamic linker hijacking (análogas a T1574.006) em sistemas Linux embarcados dos dispositivos de rede para garantir persistência que sobrevive a atualizações de firmware. ## Detecção ### Regra Sigma ```yaml title: Suspicious DLL Loaded from Writable Directory by Trusted Process id: 9f2c1a7e-4b8d-3e5f-c1a9-7b3d2e8f6c4a status: experimental description: > Detecta carregamento de DLL por processos confiáveis a partir de diretórios graváveis por usuários não privilegiados. Indica possível DLL Search Order Hijacking ou DLL Sideloading. Técnica MITRE ATT&CK T1574.001. references: - https://attack.mitre.org/techniques/T1574/001/ author: RunkIntel daté: 2026-03-25 tags: - attack.persistence - attack.privilege_escalation - attack.defense_evasion - attack.t1574.001 logsource: category: image_load product: windows detection: selection_trusted_process: Image|startswith: - 'C:\Windows\System32\' - 'C:\Program Files\' - 'C:\Program Files (x86)\' selection_suspicious_path: ImageLoaded|contains: - '\AppData\' - '\Temp\' - '\Users\Public\' - '\ProgramData\' ImageLoaded|endswith: '.dll' filter_known_legitimate: ImageLoaded|contains: - '\AppData\Local\Microsoft\Teams\' - '\AppData\Local\Google\Chrome\' condition: > selection_trusted_process and selection_suspicious_path and not filter_known_legitimate fields: - Image - ImageLoaded - User - Signed - SignatureStatus falsepositives: - Aplicações legítimas que carregam DLLs de AppData (Teams, Electron apps) - Ferramentas de desenvolvimento que carregam bibliotecas de build directories level: medium --- title: Unquoted Service Path in Windows Services id: 3d7a2f9b-8e1c-4a6d-b5f3-1c9e7a4d2b8f status: stable description: > Detecta serviços Windows com caminhos de executável não-quotados contendo espaços - condição que permite Path Interception. Técnica MITRE ATT&CK T1574.009. references: - https://attack.mitre.org/techniques/T1574/009/ author: RunkIntel daté: 2026-03-25 tags: - attack.persistence - attack.privilege_escalation - attack.t1574.009 logsource: category: process_creation product: windows detection: selection: CommandLine|contains: 'sc query' condition: selection falsepositives: - Auditoria legítima de serviços por administradores level: informational ``` **Fontes de dados adicionais para correlação:** | Fonte | O que monitorar | |-------|-----------------| | File: File Creation / Modification | Criação de DLL/dylib em diretórios de busca padrão de aplicações confiáveis | | Module: Module Load | Módulos carregados de caminhos fora de `System32`, `SysWOW64` ou diretórios assinados | | Process: Process Creation | Processos confiáveis gerando filhos a partir de diretórios temporários ou de usuário | | Windows Registry: Key Modification | Alterações em `HKLM\SYSTEM\CurrentControlSet\Services` e chaves de PATH | | Service: Service Metadata | Serviços com caminhos de executável não-assinados ou sem aspas | ## Mitigação | ID | Mitigação | Aplicação | |----|-----------|-----------| | M1052 | [[m1052-user-account-control\|User Account Control]] | Força prompt UAC antes de instalar em contexto de sistema; reduz impacto de exploração de path interception | | M1040 | [[m1040-behavior-prevention-on-endpoint\|Behavior Prevention on Endpoint]] | Bloqueia carregamento de módulos não assinados em runtime via EDR comportamental | | M1044 | [[m1044-restrict-library-loading\|Restrict Library Loading]] | Proíbe carregamento de bibliotecas de caminhos não autorizados; configura `DllSearchMode` restrito | | M1047 | [[m1047-audit\|Audit]] | Auditoria periódica de permissões em diretórios de instalação e chaves de serviços no Registro | | M1013 | [[m1013-application-developer-guidance\|Application Developer Guidance]] | Orienta developers a usar caminhos absolutos em imports e assinar todos os binários e bibliotecas | | M1018 | [[m1018-user-account-management\|User Account Management]] | Limita quem pode modificar serviços, diretórios do sistema e variáveis de PATH | | M1051 | [[m1051-update-software\|Updaté Software]] | Corrige instaladores vulneráveis e software legado com permissões inadequadas | | M1038 | [[m1038-execution-prevention\|Execution Prevention]] | Implementa allowlisting de aplicações via AppLocker ou WDAC; restringe execução de binários não autorizados | | M1022 | [[m1022-restrict-file-and-directory-permissions\|Restrict File and Directory Permissions]] | ACLs restritivas em diretórios de busca de DLL; remove permissão de escrita de usuários não privilegiados | | M1024 | [[m1024-restrict-registry-permissions\|Restrict Registry Permissions]] | Permissões mínimas em chaves de serviços e variáveis de ambiente no Registro | ## Contexto Brasil/LATAM O Hijack Execution Flow é uma das técnicas mais prevalentes em ataques contra organizações brasileiras e latino-americanas, especialmente nas seguintes modalidades: **Ransomware e crime cibernético organizado:** Grupos de ransomware como [[lockbit|LockBit]], [[black-basta|Black Basta]] e [[blackcat|BlackCat]] - todos com operações documentadas no Brasil - utilizam DLL sideloading e PATH interception extensivamente em suas ferramentas de pós-exploração. O [[g0046-fin7|FIN7]] e grupos similares direcionados ao setor de varejo e hospitalidade brasileiro usam essas técnicas para evadir EDRs corporativos. **Setor financeiro brasileiro:** O Brasil concentra um dos maiores volumes de ataques direcionados ao setor financeiro globalmente, segundo o relatório anual do CERT.br. Grupos especializados em fraude bancária utilizam DLL hijacking para injetar módulos de captura de tela e keylogging em browsers e aplicações bancárias, frequentemente sem que o EDR detecte a atividade maliciosa porque o processo pai é um browser legítimo. **Infraestrutura crítica:** A combinação de T1574 com [[t1190-exploit-public-facing-application|T1190]] (exploração de aplicações expostas) é documentada em ataques contra fornecedores de energia, telecomúnicações e saúde na região. O [[s1105-coathanger|COATHANGER]] - identificado em dispositivos FortiGaté - é um exemplo de como técnicas de hijacking de linker dinâmico são aplicadas em infraestrutura de rede crítica. **Recomendações para equipes brasileiras:** Priorizar a auditoria de serviços Windows com caminhos não-quotados (ferramenta `icacls` + `sc qc`), implementar monitoramento de carregamento de módulos via Sysmon (Event ID 7) com alertas para DLLs carregadas fora de `System32`, e revisar permissões de escrita em diretórios de instalação de aplicações críticas. ## Referências - [[g0096-apt41|APT41]] - grupo com uso extensivo de DLL sideloading - [[g0032-lazarus-group|Lazarus Group]] - campanhas financeiras com DLL hijacking - [[g0046-fin7|FIN7]] - uso documentado de unquoted service path - [[s0567-dtrack|Dtrack]] - malware Lazarus com DLL hijacking persistence - [[darkgaté|DarkGaté]] - MaaS com DLL sideloading para evasão - [[s1130-raspberry-robin|Raspberry Robin]] - PATH interception para escalada sem UAC - [[s1105-coathanger|COATHANGER]] - dynamic linker hijacking em dispositivos FortiGaté - [[g0008-carbanak|Carbanak]] - framework do FIN7 com técnicas de hijacking - [[t1574-001-dll|T1574.001 - DLL Search Order Hijacking]] - sub-técnica mais explorada - [[m1044-restrict-library-loading|M1044 - Restrict Library Loading]] - mitigação central para DLL hijacking --- *Fonte: MITRE ATT&CK - T1574 Hijack Execution Flow, v16.2*