Mastodon Mastodon Mastodon Mastodon

DLL hijacking

Actualizado: · CyberSecureFox Editorial Team

El DLL hijacking es una técnica en la que el atacante consigue que un programa de Windows cargue una DLL maliciosa en lugar de la biblioteca legítima, de modo que su código se ejecuta dentro de un proceso de confianza.

Cómo funciona el DLL hijacking

Los programas de Windows cargan las bibliotecas DLL por su nombre. Sin ruta completa, Windows busca en una secuencia de ubicaciones: el directorio de la aplicación, las carpetas del sistema, el directorio actual y la variable PATH. Quien pueda escribir en una ubicación revisada antes que la legítima puede dejar allí una DLL homónima. Variantes:

  • Secuestro del orden de búsqueda: la DLL va a un directorio revisado antes que el real.
  • Phantom DLL hijacking: se aporta una DLL que el programa busca pero que no existe.
  • Sustitución de DLL: se sobrescribe una DLL legítima en una carpeta con permisos de escritura.

Muy próximo es el DLL sideloading, donde el atacante trae su propio ejecutable firmado junto con una DLL maliciosa. MITRE ATT&CK agrupa estos métodos en Hijack Execution Flow (T1574), y la debilidad subyacente es CWE-427.

Por qué importa el DLL hijacking

El código malicioso corre bajo un programa legítimo, a menudo firmado digitalmente, lo que ayuda a evadir las defensas. Se usa para la persistencia, el sigilo y la escalada de privilegios cuando un servicio que corre como SYSTEM carga una biblioteca de una carpeta donde escriben usuarios normales. El problema es antiguo: en 2010 Microsoft publicó el Security Advisory 2269637 sobre carga insegura de bibliotecas, tras demostrarse que muchas aplicaciones populares cargaban DLL desde recursos compartidos de red.

Cómo protegerse del DLL hijacking

  • Cargar las bibliotecas con rutas completas y usar API como SetDefaultDllDirectories para restringir la búsqueda.
  • Mantener Safe DLL Search Mode e impedir que usuarios sin privilegios escriban en carpetas de programas y del PATH.
  • Usar control de aplicaciones (WDAC, AppLocker) con reglas para DLL.
  • Vigilar DLL sin firmar cargadas por procesos firmados o desde rutas raras.
Sinónimos:
secuestro de dll, secuestro del orden de búsqueda de dll, precarga de dll