SOC Prime Bias: Medio

04 Jun 2026 15:13 UTC

El Demonio Llega Después: Un Havoc Stager Se Esconde Detrás de Microsoft Defender DLP

Author Photo
SOC Prime Team linkedin icon Seguir
El Demonio Llega Después: Un Havoc Stager Se Esconde Detrás de Microsoft Defender DLP
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Actores de amenaza en Brasil están distribuyendo una factura electrónica falsificada NF-e archivos adjuntos ZIP que entregan un instalador MSI malicioso. El MSI deja caer una DLL de Microsoft Defender Endpoint DLP falsa que en realidad funciona como un cargador de Havoc. Una vez lanzado, el cargador se conecta a un servidor de comando y control remoto, recupera una carga útil de Havoc en memoria, y crea persistencia a través de un Script de Inicio de Sesión valor de registro. También se han observado variantes similares en dominios registrados en Malasia usando el mismo envoltorio de entrega.

Investigación

LevelBlue SpiderLabs analizó el archivo ZIP, el dropper VBS y el paquete MSI, descubriendo un binario de Microsoft firmado, mpextms.exe, junto con un endpointdlp.dll sin firmar. El cargador contenía valores de configuración en texto claro, incluyendo el host de comando y control, rutas de URL, y una cadena de mutex. Capturas de red revelaron tráfico GET y POST a direcciones IP específicas junto con valores distintivos de user-agent. Los investigadores identificaron nueve variantes de cargador relacionadas que compartían el mismo metadato de versión y hash de importación.

Mitigación

Los defensores deben detectar DLLs sin firmar que se hagan pasar por componentes de Microsoft Defender Endpoint DLP o Dragon Data Protection, monitorear cambios en HKCUEnvironmentUserInitMprLogonScript, y alertar sobre el valor de mutex conocido. La regla YARA publicada debe ser desplegada para detectar el cargador antes de que pueda cargar la carga útil de Havoc. Los equipos de seguridad también deben verificar las firmas de Authenticode en todos los binarios con marca de Microsoft entregados dentro de los archivos.

Respuesta

Si se detecta esta actividad, bloquee las direcciones IP y dominios asociados, ponga en cuarentena los archivos MSI y DLL, y elimine la Script de Inicio de Sesión entrada del registro maliciosa. Realice un análisis forense del host para confirmar que no queda activa ninguna carga útil de Havoc en memoria, y rote las credenciales de los usuarios afectados. Se debe notificar a los equipos de negocio relevantes, y se deben actualizar las protecciones de correo electrónico para bloquear archivos adjuntos con temática NF-e similares.

graph TB %% Definición de clases classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef operator fill:#ff9900 %% Nodos action_phishing[«<b>Acción</b> – <b>T1566.001 Phishing: Adjunto de Spearphishing</b><br/>Entrega de un archivo ZIP malicioso disfrazado como una factura NF-e brasileña»] class action_phishing action action_vbscript[«<b>Acción</b> – <b>T1059.005 Intérprete de Comandos y Scripts: Visual Basic</b><br/>Un VBScript oculto inicia un cmd oculto que comienza la descarga del MSI»] class action_vbscript action action_download_msi[«<b>Acción</b> – <b>T1218.007 Ejecución Proxy mediante Binario Firmado: Msiexec</b><br/>Curl es invocado para obtener <i>update.msi</i> desde Google Cloud Storage»] class action_download_msi action action_msi_execution[«<b>Acción</b> – <b>T1218.007 Ejecución Proxy mediante Binario Firmado: Msiexec</b><br/>Msiexec ejecuta el MSI que contiene <i>mpextms.exe</i> firmado y el archivo malicioso <i>endpointdlp.dll</i>»] class action_msi_execution action action_dll_sideload[«<b>Acción</b> – <b>T1218 Carga Lateral de DLL</b> y <b>T1036.001 Suplantación</b><br/><i>endpointdlp.dll</i> imita una DLL de Microsoft Defender pero carece de una firma válida»] class action_dll_sideload action action_stager_c2[«<b>Acción</b> – <b>T1102.002 Protocolo de Capa de Aplicación: Protocolos Web</b><br/>El stager envía GET /stage/<hex> con un User-Agent personalizado «Microsoft-Delivery-Optimization/10.1»»] class action_stager_c2 action action_download_havoc[«<b>Acción</b> – <b>T1219 Herramienta de Acceso Remoto</b><br/>El demonio Havoc se descarga mediante HTTP y se ejecuta directamente en memoria sin tocar el disco»] class action_download_havoc action action_persistence[«<b>Acción</b> – <b>T1037.001 Script de Inicio de Sesión</b><br/>Escribe HKCU\Environment\UserInitMprLogonScript para iniciar <i>mpextms.exe</i> cuando el usuario inicia sesión»] class action_persistence action action_telemetry[«<b>Acción</b> – <b>T1102.003 Protocolo de Capa de Aplicación: Protocolos Web</b><br/>POST /api/v2/telemetry/diag al servidor C2»] class action_telemetry action action_defense_evasion[«<b>Acción</b> – <b>T1027.013 Archivos o Información Ofuscados: Carga Útil Incrustada</b>, <b>T1027.010 Relleno Binario</b>, <b>T1564.003 Ocultar Artefactos</b><br/>La carga útil está cifrada, los comandos están ofuscados y se ejecutan en ventanas ocultas»] class action_defense_evasion action %% Relaciones del flujo de ataque action_phishing –>|conduce_a| action_vbscript action_vbscript –>|activa| action_download_msi action_download_msi –>|invoca| action_msi_execution action_msi_execution –>|instala| action_dll_sideload action_dll_sideload –>|se_comunica_con| action_stager_c2 action_dll_sideload –>|crea| action_persistence action_stager_c2 –>|descarga| action_download_havoc action_stager_c2 –>|envía| action_telemetry action_download_havoc –>|habilita| action_defense_evasion

Flujo de Ataque

Ejecución de Simulación

Prerequisito: La Verificación Preliminar de Telemetría y Línea de Base debe haber pasado.

Justificación: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTPs identificados y buscan generar la telemetría exacta esperada por la lógica de detección.

  • Narrativa del Ataque y Comandos:
    Un atacante que ya ha obtenido un acceso inicial en la máquina de la víctima desea mantener persistencia a través de inicios de sesión del usuario. Ellos eligen el valor UserInitMprLogonScript porque se ejecuta antes de que se inicie el shell del usuario, proporcionando ejecución temprana de código. El atacante coloca un binario encubierto mpextms.exe (una versión renombrada de rundll32.exe) en la carpeta AppData del usuario y crea una DLL maliciosa endpointdlp.dll que realiza el volcado de credenciales. Al configurar el valor del registro a "%APPDATAmpextms.exe" "%APPDATA%endpointdlp.dll", el atacante asegura que en cada inicio de sesión la DLL se cargue lateralmente a través del rundll32.exe proxy firmado, satisfaciendo T1218.007 and T1027.013 mientras evade listas blancas binarias ingenuas.

  • Script de Prueba de Regresión:

    # -------------------------------------------------
    # Paso 1: Soltar binarios maliciosos (simulado)
    $payloadDir = "$env:APPDATAMalicious"
    New-Item -ItemType Directory -Path $payloadDir -Force | Out-Null
    
    # 'mpextms.exe' simulado – utilizando rundll32.exe renombrado para realismo
    $src = "$env:SystemRootSystem32rundll32.exe"
    $dstExe = Join-Path $payloadDir "mpextms.exe"
    Copy-Item -Path $src -Destination $dstExe -Force
    
    # DLL maliciosa simulada (archivo vacío para propósitos de prueba)
    $dllPath = Join-Path $payloadDir "endpointdlp.dll"
    New-Item -ItemType File -Path $dllPath -Force | Out-Null
    
    # Paso 2: Crear la entrada de persistencia del registro
    $regPath = 'HKCU:Environment'
    $regName = 'UserInitMprLogonScript'
    $regValue = "`"$dstExe`" `"$dllPath`""
    Set-ItemProperty -Path $regPath -Name $regName -Value $regValue -Force
    
    Write-Host "Entrada de persistencia creada: $regName = $regValue"
    # -------------------------------------------------
  • Comandos de Limpieza:

    # Remover la entrada de persistencia del registro
    Remove-ItemProperty -Path 'HKCU:Environment' -Name 'UserInitMprLogonScript' -ErrorAction SilentlyContinue
    
    # Eliminar los archivos descargados
    $payloadDir = "$env:APPDATAMalicious"
    Remove-Item -Path $payloadDir -Recurse -Force -ErrorAction SilentlyContinue
    
    Write-Host "Limpieza completada."