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

AppInit_DLLs

Revisado porCybersecurity entrepreneur & security researcher

¿Qué es AppInit_DLLs?

AppInit_DLLsTécnica heredada de persistencia en Windows que abusa de un valor del registro para que una DLL determinada se cargue en todo proceso de usuario que enlace user32.dll.


El abuso de AppInit_DLLs (MITRE ATT&CK T1546.010) tiene como objetivo HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs y su gemelo en WOW6432Node. Cuando LoadAppInit_DLLs se establece en 1, la rutina de inicialización de user32.dll mapea cada DLL listada en AppInit_DLLs dentro de cualquier proceso que cargue user32.dll, es decir, prácticamente toda aplicación gráfica interactiva. Por tanto, una sola escritura en el registro proporciona una amplia ejecución de código y persistencia, actuando como un "disparador ante nuevo proceso" en lugar de un autoarranque de un solo uso.

La técnica es antigua pero instructiva. Aportó el mecanismo de carga del clásico rootkit Vanquish, y el software comercial la ha usado históricamente (y de forma torpe): Nvidia y varios IME distribuyeron AppInit DLLs, razón por la cual los equipos de seguridad no pueden limitarse a alertar cuando el valor no está vacío. Desde Windows 8, cuando Secure Boot está habilitado, el mecanismo AppInit se desactiva a menos que cada DLL listada esté firmada, lo que reduce drásticamente su alcance; en Windows 10/11 con Secure Boot activado, está prácticamente muerto. Todavía aparece en entornos heredados de Windows 7/Server 2008 y en equipos donde Secure Boot se deshabilitó por compatibilidad.

Defensas: mantener Secure Boot habilitado, aplicar la política "exigir AppInit DLLs firmadas", establecer una línea base del valor con Autoruns de Sysinternals y alertar sobre escrituras en el registro a estas claves mediante Sysmon Event ID 13 o telemetría de EDR.

flowchart TD
  A[Atacante con admin local] --> W[Escribe la ruta de la DLL en la clave AppInit_DLLs]
  W --> L[Establece LoadAppInit_DLLs = 1]
  L --> N[Se inicia un nuevo proceso GUI]
  N --> U[El proceso carga user32.dll]
  U --> SB{Secure Boot activo y DLL sin firmar?}
  SB -->|Si| BLK[Carga omitida - tecnica neutralizada]
  SB -->|No| INJ[DLL maliciosa mapeada en el proceso]
  INJ --> RUN[El codigo se ejecuta en cada app interactiva -> persistencia]
  W -.detectado.-> DET[Alertas de Sysmon EID13 / linea base de Autoruns]

Ejemplos

  1. 01

    Añadir la ruta de una DLL auxiliar maliciosa a AppInit_DLLs en un servidor Windows 7 para registrar cada pulsación de tecla en todos los procesos.

  2. 02

    Combinar AppInit_DLLs con Secure Boot deshabilitado para desplegar un rootkit en espacio de usuario.

Preguntas frecuentes

¿Qué es AppInit_DLLs?

Técnica heredada de persistencia en Windows que abusa de un valor del registro para que una DLL determinada se cargue en todo proceso de usuario que enlace user32.dll. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.

¿Qué significa AppInit_DLLs?

Técnica heredada de persistencia en Windows que abusa de un valor del registro para que una DLL determinada se cargue en todo proceso de usuario que enlace user32.dll.

¿Cómo defenderse de AppInit_DLLs?

Las defensas contra AppInit_DLLs combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.

¿Cuáles son otros nombres para AppInit_DLLs?

Nombres alternativos comunes: Inyección AppInit DLL, Persistencia AppInit user32.

Términos relacionados