IntermedioWindowsregistropersistenciaRun keysCOM hijackingdetecciónMITRE ATT&CK

Persistencia en el Registro de Windows: Cómo el Malware Sobrevive al Reboot

Guía completa de técnicas de persistencia via registro de Windows usadas por malware. Run keys, Services, AppInit_DLLs, Image File Execution Options, COM hijacking, y las estrategias de detección para cada técnica con Sysmon, Autoruns y reglas Sigma.

MalwareIntel Research··9 min lectura
Serie: Malware en Windows — Parte 5

El problema de la persistencia

El malware necesita sobrevivir a los reinicios. Sin persistencia, un simple reinicio elimina el malware de la memoria y la infección termina. El registro de Windows es el mecanismo de persistencia más usado por dos razones: está profundamente integrado en el proceso de arranque del sistema, y ofrece docenas de ubicaciones donde configurar la ejecución automática de programas.

Este artículo cataloga las técnicas de persistencia via registro organizadas por privilegio requerido, prevalencia en malware real, y dificultad de detección.

Mapa de persistencia en el registro

Vista general por privilegio

Privilegio requeridoTécnicaClave de registroPrevalencia
Ninguno (usuario)HKCU Run keysHKCU\...\RunMuy alta
NingunoHKCU RunOnceHKCU\...\RunOnceAlta
NingunoCOM hijacking (HKCU)HKCU\Software\Classes\CLSIDMedia
NingunoStartup folder (via registro)HKCU\...\Explorer\Shell FoldersMedia
AdminHKLM Run keysHKLM\...\RunAlta
AdminServicesHKLM\SYSTEM\CurrentControlSet\ServicesMuy alta
AdminWinlogonHKLM\...\Winlogon\ShellMedia
AdminAppInit_DLLsHKLM\...\Windows\AppInit_DLLsBaja (deprecated)
AdminImage File Execution OptionsHKLM\...\Image File Execution OptionsMedia
AdminBoot ExecuteHKLM\SYSTEM\...\Session Manager\BootExecuteBaja
SYSTEMLSA Authentication/NotificationHKLM\SYSTEM\...\LsaBaja (APTs)

Técnica 1: Run y RunOnce Keys (T1547.001)

Las claves más comunes

Auto-ejecucion al login de cualquier usuario (requiere admin):
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

Auto-ejecucion al login del usuario actual (sin admin):
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

Versiones 32-bit en sistemas 64-bit (WoW64):
HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run
HKCU\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run

Cómo funciona

Cada valor en estas claves contiene un nombre (arbitrario) y una ruta al ejecutable. Windows ejecuta todos los programas listados en estas claves al iniciar sesión:

[HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"WindowsUpdate"="C:\Users\user\AppData\Roaming\svchost.exe"
"SecurityCenter"="powershell.exe -ep bypass -w hidden -f C:\ProgramData\update.ps1"
"OneDriveSync"="rundll32.exe C:\Users\user\AppData\Local\Temp\payload.dll,DllMain"

Valores sospechosos

IndicadorSospecha
Ruta a %APPDATA%, %TEMP%, %LOCALAPPDATA%Alta (software legítimo se instala en Program Files)
Nombre que imita software legítimo ("WindowsUpdate", "SecurityCenter")Alta
Uso de rundll32.exe, regsvr32.exe, mshta.exeAlta (LOLBins)
PowerShell con -enc o -ep bypassMuy alta
Ejecutable sin extensión o con extensión dobleAlta
Ruta con espacios sin comillasMedia (puede ser explotable, no necesariamente malicioso)

RunOnce vs Run

  • Run: ejecuta el programa en cada inicio de sesión. El valor persiste
  • RunOnce: ejecuta el programa una vez y luego elimina el valor. Usado por malware para una ejecución "silenciosa" que no deja rastro permanente en el registro

Prevalencia en malware

Prácticamente todo malware commodity usa Run keys: Agent Tesla, Remcos, NanoCore, FormBook, RedLine, AsyncRAT, y miles más. Es la técnica de persistencia más básica y más común.

Técnica 2: Servicios de Windows (T1543.003)

Claves de registro

HKLM\SYSTEM\CurrentControlSet\Services\[nombre_servicio]

Cada servicio tiene subclaves que definen:

ValorTipoSignificado
ImagePathREG_EXPAND_SZRuta al ejecutable del servicio
StartREG_DWORD0=Boot, 1=System, 2=Automatic, 3=Manual, 4=Disabled
TypeREG_DWORD1=Kernel driver, 16=Win32 own process, 32=Win32 shared
DisplayNameREG_SZNombre visible en services.msc
DescriptionREG_SZDescripción del servicio
ObjectNameREG_SZCuenta bajo la que corre (LocalSystem, etc.)

Cómo lo usa el malware

sc create MalwareService binPath= "C:\ProgramData\payload.exe" start= auto

O via registro directo:

[HKLM\SYSTEM\CurrentControlSet\Services\WindowsTelemetryService]
"ImagePath"="C:\\ProgramData\\telemetry.exe"
"Start"=dword:00000002
"Type"=dword:00000010
"DisplayName"="Windows Telemetry Service"
"Description"="Provides telemetry data collection for Windows diagnostics"

Detección

IndicadorMétodo
Servicio con ImagePath en directorio no estándarAutoruns, sc query
Servicio sin descripción o con descripción genéricaAutoruns
Servicio creado recientemente (comparar con baseline)Sysmon Event ID 12/13
Servicio con binario sin firma digitalAutoruns (verificar firma)
Event ID 7045 (servicio instalado)Security Event Log
Event ID 4697 (servicio instalado, audit)Security Event Log

Técnica 3: COM Hijacking (T1546.015)

Concepto

COM (Component Object Model) es el sistema de componentes reutilizables de Windows. Cada objeto COM se identifica por un CLSID (Class ID) y está registrado en el registro con la ruta a su DLL de implementación.

COM hijacking funciona así:

  1. Identificar un CLSID de un objeto COM que Windows o una aplicación cargan automáticamente
  2. Registrar una DLL maliciosa para ese CLSID en HKCU (que tiene precedencia sobre HKLM)
  3. Cuando el sistema o la aplicación intenta instanciar el objeto COM, carga la DLL maliciosa

Por qué es sigiloso

  • No modifica Run keys (no aparece en los checks más básicos)
  • No crea servicios visibles
  • La DLL se carga en el contexto de un proceso legítimo
  • HKCU no requiere privilegios de administrador
  • Muchos objetos COM se cargan silenciosamente en procesos comunes como explorer.exe

CLSIDs comúnmente abusados

CLSIDObjetoProceso que lo carga
{BCDE0395-E52F-467C-8E3D-C4579291692E}MMDeviceEnumeratorexplorer.exe, svchost.exe
{42aedc87-2188-41fd-b9a3-0c966feab6a6}MruPidlListexplorer.exe
{F3DA0DC7-AFD4-44A0-A49D-92C8B22A0227}Copy/Move/Rename Extensionexplorer.exe
{fbeb8a05-beee-4442-804e-409d6c4515e9}Shell Folderexplorer.exe
{b5f8350b-0548-48b1-a6ee-88bd00b4a5e7}CAccPropServicesClassMúltiples

Ejemplo

; El CLSID existe en HKLM apuntando a una DLL legitima
[HKLM\SOFTWARE\Classes\CLSID\{BCDE0395-E52F-467C-8E3D-C4579291692E}\InProcServer32]
@="C:\\Windows\\System32\\MMDevAPI.dll"

; El malware crea la misma clave en HKCU (tiene precedencia)
[HKCU\SOFTWARE\Classes\CLSID\{BCDE0395-E52F-467C-8E3D-C4579291692E}\InProcServer32]
@="C:\\Users\\user\\AppData\\Roaming\\evil.dll"

Cuando explorer.exe carga el objeto COM, busca primero en HKCU, encuentra la DLL maliciosa y la carga.

Detección

  • Sysmon Event ID 13: SetValue en HKCU\Software\Classes\CLSID\ (cualquier escritura aquí es sospechosa)
  • Autoruns: tab "Explorer" muestra COM objects registrados en HKCU
  • Comparar CLSIDs registrados en HKCU con un baseline limpio

Técnica 4: Winlogon (T1547.004)

Claves clave

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
  Valor por defecto: "explorer.exe"
  Malware añade: "explorer.exe, C:\malware.exe"

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
  Valor por defecto: "C:\Windows\system32\userinit.exe,"
  Malware añade: "C:\Windows\system32\userinit.exe, C:\malware.exe"

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify
  Subclaves que registran DLLs para eventos de Winlogon

Impacto

Modificar Winlogon\Shell es particularmente destructivo: si el valor es incorrecto, Windows no puede iniciar el escritorio (explorer.exe no se lanza). Algunos malware explotan esto como mecanismo de bloqueo de tipo "locker ransomware".

Técnica 5: Image File Execution Options (T1546.012)

Concepto

IFEO (Image File Execution Options) es un mecanismo legítimo de Windows para depuración: permite especificar un debugger que se ejecute automáticamente cuando un programa específico se lanza.

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\notepad.exe
  "Debugger"="C:\malware.exe"

Cuando el usuario ejecuta notepad.exe, Windows lanza C:\malware.exe notepad.exe en su lugar.

Uso malicioso

UsoEjemplo
Reemplazar un programa legítimoIFEO en taskmgr.exe para impedir que el usuario vea procesos
Persistencia sigilosaIFEO en un programa que se ejecuta frecuentemente
Bloquear herramientas de seguridadIFEO en MsMpEng.exe (Defender) apuntando a un binario vacío
Ejecución indirectaIFEO en sethc.exe (Sticky Keys) para backdoor de accesibilidad

Sticky Keys Backdoor

Técnica clásica de persistencia y backdoor:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe
  "Debugger"="cmd.exe"

Presionar Shift 5 veces en la pantalla de login invoca sethc.exe, que ahora ejecuta cmd.exe con privilegios de SYSTEM. Acceso sin credenciales.

Variantes: utilman.exe (Win+U), osk.exe (teclado en pantalla), narrator.exe.

Técnica 6: AppInit_DLLs (T1546.010)

Clave de registro

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows
  "AppInit_DLLs"="C:\evil.dll"
  "LoadAppInit_DLLs"=dword:00000001

Comportamiento

Cuando LoadAppInit_DLLs es 1, Windows carga la DLL especificada en AppInit_DLLs en cada proceso que carga user32.dll (prácticamente todos los procesos GUI).

Estado actual

Microsoft deprecó AppInit_DLLs en Windows 8+ y lo deshabilitó por defecto con Secure Boot activo. Sin embargo, en sistemas legacy o con Secure Boot deshabilitado, sigue funcional.

Herramientas de detección

Autoruns (Sysinternals)

La herramienta definitiva para auditar persistencia en Windows:

  • Muestra más de 40 ubicaciones de auto-arranque
  • Verifica firmas digitales de cada entrada
  • Permite comparar con un estado anterior (baseline)
  • Exporta resultados para análisis
  • Versión CLI (autorunsc.exe) para automatización
autorunsc.exe -accepteula -a * -c -h -s -v -vt > autoruns_output.csv

Flags: -a * (todas las ubicaciones), -c (CSV), -h (hashes), -s (verificar firmas), -v (VirusTotal), -vt (submit a VT).

Sysmon para registro

Event IDEventoFiltro recomendado
12RegistryEvent (CreateKey)Claves en Run, Services, CLSID
13RegistryEvent (SetValue)Valores en Run, Winlogon, IFEO
14RegistryEvent (RenameKey)Rename de claves de persistencia

Regla Sigma: Run key modification

title: Suspicious Run Key Modification
id: a1234567-b2c3-d4e5-f678-9abcdef01234
status: stable
logsource:
    category: registry_set
    product: windows
detection:
    selection:
        TargetObject|contains:
            - '\CurrentVersion\Run\'
            - '\CurrentVersion\RunOnce\'
    filter_legit:
        Details|contains:
            - 'C:\Program Files'
            - 'C:\Program Files (x86)'
            - 'C:\Windows\System32'
    condition: selection and not filter_legit
level: high
tags:
    - attack.persistence
    - attack.t1547.001

Mapeo MITRE ATT&CK

TécnicaIDPersistencia via registro
Boot or Logon Autostart ExecutionT1547Técnica padre
Registry Run Keys / Startup FolderT1547.001Run, RunOnce, Startup folder
Winlogon Helper DLLT1547.004Winlogon Shell, Userinit, Notify
Create or Modify System Process: Windows ServiceT1543.003Services key
Event Triggered Execution: COM Object HijackingT1546.015CLSID en HKCU
Event Triggered Execution: IFEO InjectionT1546.012Image File Execution Options
Event Triggered Execution: AppInit DLLsT1546.010AppInit_DLLs

Checklist de auditoría de persistencia

Para una auditoría rápida de un sistema Windows sospechoso:

  1. Ejecutar Autoruns y exportar a CSV. Comparar con un baseline limpio
  2. Verificar firmas digitales de todas las entradas. Entradas sin firma = investigar
  3. Revisar Run keys en HKCU y HKLM. Rutas fuera de Program Files = sospechoso
  4. Listar servicios recientes: Get-WinEvent -FilterHashtable @{LogName='System'; Id=7045} | Select TimeCreated, Message
  5. Verificar CLSID en HKCU: reg query HKCU\SOFTWARE\Classes\CLSID /s. Cualquier entrada es sospechosa
  6. Verificar IFEO: reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options" /s /v Debugger
  7. Verificar Winlogon: reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell y /v Userinit

Fuentes y referencias

  • Microsoft. "Run and RunOnce Registry Keys." Microsoft Docs.
  • Microsoft. "Image File Execution Options." Microsoft Docs.
  • Russinovich, M. "Autoruns for Windows." Sysinternals, Microsoft.
  • Russinovich, M. et al. "Windows Internals Part 1." Microsoft Press, 2017.
  • MITRE ATT&CK. "Boot or Logon Autostart Execution (T1547)." https://attack.mitre.org/techniques/T1547/
  • MITRE ATT&CK. "Event Triggered Execution (T1546)." https://attack.mitre.org/techniques/T1546/
  • Sikorski, M. & Honig, A. "Practical Malware Analysis." No Starch Press, 2012.
  • Red Canary. "Persistence Techniques: Registry." 2024 Threat Detection Report.
  • Elastic Security. "Persistence via Registry Detection Rules." Elastic SIEM.
  • hasherezade. "PE-sieve and Hollows Hunter." https://github.com/hasherezade/

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.