Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 062

AppInit_DLLs

Revisado porCybersecurity entrepreneur & security researcher

O que é AppInit_DLLs?

AppInit_DLLsTécnica legada de persistência no Windows que abusa de um valor do registo para carregar uma DLL específica em todos os processos de utilizador que ligam ao user32.dll.


O abuso de AppInit_DLLs (MITRE ATT&CK T1546.010) visa HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs e o seu gémeo WOW6432Node. Quando LoadAppInit_DLLs está definido como 1, a rotina de inicialização do user32.dll mapeia cada DLL listada em AppInit_DLLs em qualquer processo que carregue user32.dll, ou seja, praticamente todas as aplicações gráficas interativas. Uma única escrita no registo proporciona, portanto, uma ampla execução de código e persistência, atuando como um "gatilho em novo processo" em vez de um arranque automático de uso único.

A técnica é antiga mas instrutiva. Forneceu o mecanismo de carregamento do clássico rootkit Vanquish, e software comercial usou-a historicamente (e de forma desajeitada): a Nvidia e vários IMEs distribuíram AppInit DLLs, razão pela qual as equipas de segurança não podem simplesmente alertar quando o valor não está vazio. Desde o Windows 8, quando o Secure Boot está ativado, o mecanismo AppInit é desativado a menos que cada DLL listada esteja assinada por código, reduzindo drasticamente o seu alcance; no Windows 10/11 com Secure Boot ativado, está praticamente morto. Ainda surge em parques legados de Windows 7/Server 2008 e em hosts onde o Secure Boot foi desativado por compatibilidade.

Defesas: manter o Secure Boot ativado, aplicar a política "exigir AppInit DLLs assinadas", estabelecer uma linha de base do valor com o Autoruns da Sysinternals e alertar sobre escritas no registo nestas chaves via Sysmon Event ID 13 ou telemetria de EDR.

flowchart TD
  A[Atacante com admin local] --> W[Escreve o caminho da DLL na chave AppInit_DLLs]
  W --> L[Define LoadAppInit_DLLs = 1]
  L --> N[Um novo processo GUI arranca]
  N --> U[O processo carrega user32.dll]
  U --> SB{Secure Boot ativo e DLL nao assinada?}
  SB -->|Sim| BLK[Carregamento ignorado - tecnica neutralizada]
  SB -->|Nao| INJ[DLL maliciosa mapeada no processo]
  INJ --> RUN[O codigo executa em cada app interativa -> persistencia]
  W -.detetado.-> DET[Alertas Sysmon EID13 / linha de base Autoruns]

Exemplos

  1. 01

    Adicionar o caminho de uma DLL auxiliar maliciosa a AppInit_DLLs num servidor Windows 7 para registar cada tecla em todos os processos.

  2. 02

    Combinar AppInit_DLLs com Secure Boot desativado para implantar um rootkit em modo utilizador.

Perguntas frequentes

O que é AppInit_DLLs?

Técnica legada de persistência no Windows que abusa de um valor do registo para carregar uma DLL específica em todos os processos de utilizador que ligam ao user32.dll. Pertence à categoria Ataques e ameaças da cibersegurança.

O que significa AppInit_DLLs?

Técnica legada de persistência no Windows que abusa de um valor do registo para carregar uma DLL específica em todos os processos de utilizador que ligam ao user32.dll.

Como se defender contra AppInit_DLLs?

As defesas contra AppInit_DLLs costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Quais são outros nomes para AppInit_DLLs?

Nomes alternativos comuns: Injeção AppInit DLL, Persistência AppInit user32.

Termos relacionados