AvanzadoDLLWindowshijackinganálisismalwaredetección

Guía para Analizar DLLs Maliciosas en Sistemas Windows

Cómo detectar, analizar y responder a DLLs maliciosas en Windows. Técnicas de DLL hijacking, sideloading, análisis estático y dinámico, y herramientas de investigación.

MalwareIntel Research··5 min lectura
Serie: Guías de Herramientas — Parte 9

Por qué importa

Las DLLs son el vector favorito de malware avanzado en Windows. APT groups, ransomware y commodity malware usan DLL hijacking, sideloading e injection como técnicas primarias de evasión. Una DLL maliciosa cargada por un proceso legítimo firmado es invisible para muchas herramientas de detección.

Técnicas de abuso de DLLs

DLL Hijacking (T1574.001)

Explota el orden de búsqueda de DLLs de Windows:

Orden de busqueda de DLLs en Windows:
  1. Directorio de la aplicacion
  2. Directorio del sistema (C:\Windows\System32)
  3. Directorio de Windows (C:\Windows)
  4. Directorio actual
  5. Directorios en PATH

Si la aplicacion busca "helper.dll" sin ruta completa:
  → El atacante coloca helper.dll maliciosa en el directorio de la app
  → Windows la carga ANTES de buscar en System32
  → La aplicacion legitima ejecuta codigo malicioso

DLL Sideloading (T1574.002)

Variante específica: el atacante distribuye un ejecutable legítimo firmado junto con una DLL maliciosa que el ejecutable espera cargar:

Ejemplo clasico:
  carpeta_maliciosa/
    ├── OneDriveUpdater.exe  (legitimo, firmado por Microsoft)
    └── version.dll          (maliciosa, cargada por OneDriveUpdater)

OneDriveUpdater.exe carga version.dll automaticamente.
Como el EXE es legitimo y firmado, EDR confía en el proceso.
La DLL maliciosa se ejecuta dentro del contexto del proceso firmado.

DLL Injection (T1055.001)

Inyección directa de DLL en proceso remoto:

// Flujo simplificado de DLL injection:
// 1. Abrir el proceso target
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, targetPID);

// 2. Reservar memoria en el proceso remoto
LPVOID addr = VirtualAllocEx(hProc, NULL, dllPathLen, MEM_COMMIT, PAGE_READWRITE);

// 3. Escribir la ruta de la DLL maliciosa
WriteProcessMemory(hProc, addr, dllPath, dllPathLen, NULL);

// 4. Crear thread remoto que carga la DLL
CreateRemoteThread(hProc, NULL, 0, (LPTHREAD_START_ROUTINE)LoadLibraryA, addr, 0, NULL);

DLL Search Order Hijacking en servicios

Servicios de Windows que cargan DLLs desde directorios con permisos débiles. Si un usuario puede escribir en el directorio donde un servicio busca una DLL, puede escalar privilegios.

Flujo de análisis de una DLL sospechosa

1. Identificar la DLL

Señales de alerta:
  - DLL sin firma digital en directorio de aplicacion firmada
  - DLL con nombre de sistema (kernel32.dll, version.dll) fuera de System32
  - DLL con timestamp reciente en directorio de aplicacion antigua
  - DLL con tamanio diferente al esperado
  - DLL cargada por proceso inusual (Sysmon Event ID 7)

2. Ubicar y extraer

# Copiar la DLL a entorno de analisis seguro
# NUNCA ejecutarla en el equipo de produccion

# Verificar hash
certutil -hashfile suspicious.dll SHA256

# Comprobar firma digital
sigcheck.exe -a suspicious.dll

3. Verificar firma y propiedades

PropiedadQué verificar
Firma digitalVálida, expirada, self-signed, ausente
PublisherCoincide con el software esperado
TimestampFecha de compilación coherente
Version infoNombre interno, descripción, versión
TamañoComparar con versión legítima conocida

4. Análisis estático

Herramientas:
  - PEStudio: vista rapida de imports, exports, strings, secciones
  - CFF Explorer: estructura PE detallada, secciones, headers
  - IDA / Ghidra: desensamblado y analisis de funciones exportadas
  - FLOSS: extraccion de strings ofuscadas
  - Detect It Easy: identificacion de packer/compiler

Que buscar:
  - Imports sospechosos: VirtualAlloc, CreateRemoteThread, URLDownloadToFile
  - Exports que replican DLL legitima + export adicional malicioso
  - Strings: URLs, IPs, rutas, mutex, claves de registro
  - Entropia alta en secciones (posible packing)
  - Seccion .text con tamanio mucho mayor al esperado

5. Análisis dinámico

# Ejecutar DLL en sandbox con rundll32
rundll32.exe suspicious.dll,DllMain
rundll32.exe suspicious.dll,ExportedFunction

# O cargar con regsvr32
regsvr32 /s suspicious.dll

# Monitorizar con:
# - Process Monitor (ficheros, registro, red)
# - API Monitor (API calls de la DLL)
# - Wireshark (trafico de red)
# - Procmon (cambios en sistema)

6. Correlaciones

Busca el hash en:

  • VirusTotal (reputación multi-vendor)
  • MalwareBazaar (familia conocida)
  • ANY.RUN (análisis previos públicos)
  • MISP/OpenCTI (correlación con campañas)

Herramientas de detección

HerramientaQué detecta
Sysmon Event 7Carga de DLLs con hash, firmante y proceso
Process MonitorOperaciones de fichero/registro en tiempo real
AutorunsDLLs en puntos de persistencia
SigcheckVerificación de firmas digitales
PE-sieveDLLs inyectadas o hollowed en memoria
Hollows HunterDetección de process hollowing y DLL injection

Reglas de detección

# Sigma: DLL sideloading comun
title: DLL Sideloading via OneDrive
logsource:
    category: image_load
    product: windows
detection:
    selection:
        ImageLoaded|endswith: '\version.dll'
        Image|endswith: '\OneDriveUpdater.exe'
    filter:
        ImageLoaded|startswith: 'C:\Windows\'
    condition: selection and not filter
level: high

IOCs asociados a DLLs maliciosas

TipoEjemploQué indica
Nombre de archivoversion.dll en dir no-systemDLL sideloading
Hash (SHA256)No coincide con versión legítimaDLL reemplazada
FirmanteSelf-signed o sin firmaDLL no legítima
Export inusualDllRegisterServer con shellcodeBackdoor
Import sospechosoVirtualAllocEx, WriteProcessMemoryInjection capability

Buenas prácticas defensivas

  1. Mantén lista blanca de DLLs legítimas por aplicación. Compara hashes periódicamente.
  2. Monitoriza Sysmon Event ID 7. Carga de DLLs es la telemetría más valiosa para detectar sideloading.
  3. Valida firmas digitales. DLLs de sistema y aplicaciones enterprise deben estar firmadas.
  4. Verifica permisos de directorios. Directorios donde residen ejecutables de servicios no deben ser escribibles por usuarios normales.
  5. Documenta hallazgos y comparte IOCs. Integra en tu plataforma de threat intelligence.
  6. Usa EDR con detección de DLL injection. CrowdStrike, SentinelOne, Microsoft Defender ATP detectan las técnicas más comunes.

Fuentes y referencias

Preguntas frecuentes

Artículos relacionados

Este contenido tiene fines exclusivamente educativos y de investigación en ciberseguridad defensiva. No se proporcionan binarios maliciosos ni payloads ejecutables. El uso indebido de esta información es responsabilidad exclusiva del usuario. Leer disclaimer completo.