¿Qué es el DLL hijacking? Explicación del DLL hijacking y cómo prevenirlo

¿Qué es el DLL hijacking? Explicación del DLL hijacking y cómo prevenirlo

Escrito por: Lizzie Danielson

Publicado: 19/9/2025

mujer trabajando en una laptop

El DLL hijacking ocurre cuando los atacantes introducen un archivo DLL malicioso en un lugar donde las aplicaciones de Windows buscan los archivos que necesitan. El sistema entonces carga su código en lugar del DLL real, lo que les da a los atacantes un punto de apoyo persistente en tu entorno.

El DLL hijacking es una técnica clásica para explotar cómo las aplicaciones de Windows buscan y cargan archivos de biblioteca de vínculos dinámicos (DLL). Los atacantes usan este punto débil para escalar privilegios, robar datos o ejecutar cargas útiles sigilosas. Aunque se remonta a Windows 2000, el DLL hijacking sigue siendo una amenaza real para empresas, equipos de red team y cualquiera que defienda un entorno Windows.

¿Qué es el DLL hijacking?

El DLL hijacking ocurre cuando una aplicación de Windows carga un DLL (biblioteca de vínculos dinámicos) malicioso en lugar de uno legítimo, porque el atacante colocó su DLL donde el sistema espera encontrar el original. Este truco funciona porque muchas aplicaciones no especifican la ruta completa y confiable hacia los DLL que necesitan. En cambio, dependen del orden de búsqueda predeterminado de Windows, que no siempre es seguro. ¿El resultado? El código del atacante se ejecuta con los mismos privilegios que la aplicación, abriendo puertas para los actores maliciosos.

Propósito detrás del DLL hijacking

  • Obtener acceso no autorizado o control

  • Escalar los privilegios del usuario

  • Mantener una persistencia sigilosa

  • Desplegar malware evadiendo la detección

Cómo funciona el DLL hijacking paso a paso

¿Quieres saber cómo los atacantes logran el DLL hijacking? Así es como suele suceder:

  • Encontrar un objetivo: Los atacantes buscan aplicaciones que cargan DLL sin especificar dónde encontrarlos.

  • Crear un DLL malicioso: Escriben una versión maliciosa del DLL, a menudo imitando el nombre y las exportaciones del DLL real.

  • Colocar el DLL: El atacante coloca el DLL malicioso en un directorio que Windows revisará (como la propia carpeta de la app).

  • Iniciar o activar la app: Cuando la aplicación se inicia, Windows busca el DLL y encuentra primero la copia del atacante.

  • Ejecución de código: Listo. El código del atacante se ejecuta, a menudo con los mismos permisos que la propia aplicación.

Comportamiento legítimo (que a los atacantes les encanta abusar)

Mucho software, especialmente las aplicaciones más antiguas o mal programadas, no usa rutas completamente calificadas para los DLL. Esto significa que Windows tiene que buscar el archivo siguiendo un orden de búsqueda establecido. Si el atacante logra colocar su archivo al principio de la lista de búsqueda, el sistema carga el código malicioso sin pensarlo dos veces.

Qué es un archivo DLL

DLL significa biblioteca de vínculos dinámicos (Dynamic Link Library). Estos archivos son como cajas de herramientas para las aplicaciones de Windows, llenos de funciones y recursos que las apps necesitan para funcionar.

  • Los archivos DLL suelen terminar en .dll, pero a veces verás variantes como .drvo incluso .exe.

  • No se pueden iniciar directamente; las apps los llaman según los necesiten.

  • Un solo DLL puede servir a muchos programas, lo que significa que un único DLL malicioso puede infectar varias aplicaciones si es secuestrado.

  • Para la explicación de Microsoft, consulta su documentación oficial.

Por qué el DLL hijacking es peligroso

El DLL hijacking es más que solo sigiloso; es efectivo.

  • Escalada de privilegios: El código malicioso puede ejecutarse con privilegios de sistema o administrador si la aplicación secuestrada se ejecuta a un nivel alto.

  • Ejecución de código: Los atacantes pueden ejecutar cualquier código que deseen dentro de tu entorno.

  • Persistencia y sigilo: Dado que muchas aplicaciones de Windows se inician automáticamente, el DLL hijacking puede persistir a través de los reinicios.

También es sigiloso. A menudo, los defensores solo ven procesos legítimos ejecutándose.

Ejemplos reales de ataques de DLL hijacking

Los atacantes han usado DLL hijacking en el mundo real durante años, incluso en ataques de alto perfil.

  • Stuxnet: Este gusano de sabotaje industrial usó DLL hijacking para evadir la detección y propagarse dentro de instalaciones nucleares.

  • WannaCry: Aunque es más conocido por su ransomware, algunas variantes también explotaron fallas en el orden de búsqueda de DLL.

  • Ataque a SolarWinds: En la conocida brecha de 2020, los atacantes lograron infiltrar un DLL armado y firmado digitalmente (consulta la alerta de CISA.)

  • CVE-2016-3213, CVE-2020-1300: Varios CVE registran fallas de DLL hijacking en software de alto perfil, incluyendo productos de Microsoft Office y Adobe.

  • Pruebas de concepto públicas: Herramientas y scripts en GitHub, como DLLSpy, pueden demostrar o probar el potencial de DLL hijacking.

Cómo detectar DLL hijacking

Los defensores tienen varias opciones para detectar esta amenaza clásica:

  • Process Monitor: Usa Process Monitor (parte de Sysinternals Suite) para rastrear las cargas de DLL.

  • Filtros: Aplica filtros para “NAME NOT FOUND” o DLL cargados desde directorios no estándar.

  • Plataformas de detección y respuesta para endpoints (EDR): Los EDR modernos pueden detectar cargas sospechosas y bloquear DLL desconocidos.

  • Revisa los registros: Busca aplicaciones que de repente cargan DLL desde directorios que antes no usaban.

Consejo profesional: Establece una base de referencia para la actividad normal de DLL, así es más probable que detectes anomalías.

Cómo encuentran los actores de amenazas las vulnerabilidades

Los atacantes (y a veces los equipos rojos o cazadores de bugs) buscan vulnerabilidades de hijacking en las apps al:

  • Monitorear las rutas de búsqueda de DLL: Buscan rutas faltantes o inseguras.

  • Hacer ingeniería inversa: Diseccionan los binarios de las apps para ver cómo y dónde cargan los DLL.

  • Hacer fuzzing: Las herramientas automatizadas pueden inyectar DLL de prueba en varios directorios de apps y ver qué funciona.

  • Leer informes públicos: Los avisos de seguridad suelen detallar qué apps están en riesgo, lo que las convierte en blancos fáciles.

Cómo prevenir el DLL hijacking

La prevención requiere trabajo en equipo:

Para desarrolladores

  • Usa rutas completamente calificadas: Siempre especifica la ruta completa de los DLL necesarios.

  • Firma los DLL: Usa firmas digitales para que solo se carguen archivos confiables.

  • Prácticas de codificación segura: Carga las bibliotecas explícitamente, evita rutas relativas y revisa el código en busca de cargas inseguras.

Para los equipos de seguridad

  • Lista de aplicaciones aceptadas: Permite que solo se ejecuten aplicaciones y DLL conocidos como seguros.

  • Monitoreo de la integridad de archivos: Genera alertas ante cambios en los DLL de directorios sensibles.

  • Educación y políticas: Capacita a los usuarios sobre los peligros del phishing y la ingeniería social para prevenir la colocación de DLL.

  • Gestión de riesgos de proveedores: Asegúrate de que el software de terceros siga las mejores prácticas.

Para más información sobre defensa, consulta la guía del NIST sobre desarrollo seguro de software (NIST SP 800-218).

¿Sigue siendo una amenaza el DLL hijacking hoy en día?

Definitivamente. Aunque más apps usan prácticas de codificación más seguras, el DLL hijacking:

  • Sigue siendo un método preferido tanto para equipos rojos como para atacantes reales

  • Se usa activamente en operaciones sofisticadas de Amenaza Persistente Avanzada (APT)

  • Aparece en programas de recompensas por bugs, CTF e investigaciones legítimas de vulnerabilidades

  • Sigue afectando tanto aplicaciones heredadas como, sorprendentemente, aplicaciones modernas

DLL hijacking vs. inyección de DLL

DLL Hijacking

  • Explota cómo una aplicación busca y carga una DLL.

  • El atacante depende de la aplicación (no del atacante) para ejecutar la DLL maliciosa.

  • Usa la debilidad del orden de búsqueda.

DLL Injection

  • Obliga activamente a un proceso a cargar una nueva DLL (a menudo mediante herramientas o código).

  • Puede apuntar a procesos en ejecución.

  • La técnica es distinta y a veces más detectable.

¿Pueden verse afectados los sistemas que no son Windows?

El DLL hijacking es casi exclusivamente un problema de Windows porque los DLL son una característica nativa de Windows. Otras plataformas pueden tener problemas similares de carga de bibliotecas (como los archivos .so en Linux o .dylib en macOS), pero el “DLL hijacking” propiamente dicho es exclusivo de Windows. Consulta el aviso de CISA sobre carga de bibliotecas para más contexto.

Puntos clave

El DLL hijacking es un ataque de toda la vida que sigue representando un riesgo para los entornos Windows en todas partes. Incluso organizaciones cuidadosas han sido víctimas. ¡La prevención es clave! La prevención incluye buenas prácticas de implementación, monitoreo constante y educación regular de los usuarios. La detección depende de entender el comportamiento de carga de DLL y estar atento a anomalías.

Preguntas frecuentes sobre DLL hijacking

Verifica si tu aplicación carga DLL usando rutas relativas en lugar de absolutas. Usa herramientas como Process Monitor e intenta colocar un DLL falso en el directorio de la aplicación; si se carga, eres vulnerable.

Sí. Si se explota en una aplicación que se ejecuta con privilegios altos, los atacantes pueden obtener derechos de sistema o de administrador.

Puede serlo, porque los DLL maliciosos a menudo se esconden en ubicaciones de archivos legítimas y se ejecutan bajo procesos de aplicaciones normales.

A veces. El antivirus basado en firmas puede detectar DLL maliciosos conocidos, pero los DLL nuevos o especialmente diseñados a menudo evaden la detección, sobre todo si están firmados digitalmente.

Usa rutas absolutas al cargar DLL, firma tus bibliotecas, mantén actualizadas las dependencias de terceros y revisa el código regularmente para detectar prácticas de carga inseguras.

Recursos adicionales

Más información sobre ¿Qué hace un director de seguridad?
¿Qué hace un director de seguridad?
Ciberseguridad 101

Descubre qué hace un director de seguridad, su rol en evolución dentro de la ciberseguridad, las calificaciones necesarias y las oportunidades profesionales en esta guía completa.

Más información sobre Qué es la red de voz sobre IP (VoIP) y por qué importa en ciberseguridad
Qué es la red de voz sobre IP (VoIP) y por qué importa en ciberseguridad
Ciberseguridad 101

Aprende cómo funcionan las redes de voz sobre IP, su papel en la ciberseguridad y consejos prácticos para proteger la red de voz sobre IP en tu organización.

Más información sobre ¿Qué es ClickFix?
¿Qué es ClickFix?
Ciberseguridad 101

ClickFix es una técnica de ingeniería social que engaña a los usuarios para que ejecuten comandos maliciosos. Descubre cómo funciona, ejemplos reales y cómo prevenirla.

Protege lo que importa

Protege endpoints, correo electrónico y empleados con el poder de nuestro SOC 24/7. Prueba Huntress gratis y despliega en minutos para empezar a combatir las amenazas.
Probar Huntress gratis