SOC Prime Bias: Crítico

08 Jun 2026 19:48 UTC

PulseRAT Entregue Através de uma Isca de Parceria EAU-Índia

Author Photo
SOC Prime Team linkedin icon Seguir
PulseRAT Entregue Através de uma Isca de Parceria EAU-Índia
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Um arquivo ISO malicioso disfarçado como um arquivo de parceria estratégica entre EAU e Índia está sendo usado para distribuir um trojan de acesso remoto baseado em .NET rastreado como PulseRAT. O malware é instalado através de um dropper embutido no ISO e usa uma Planilha Google como seu canal de comando e controle. Para manter o acesso, ele cria uma tarefa agendada chamada WindowsVaultSyncService, constrói um diretório de cofre em %LOCALAPPDATA%, e usa um mutex para evitar múltiplas execuções no mesmo host. A campanha depende de um atrativo conectado a uma relação de defesa de alto perfil entre os Emirados Árabes Unidos e a Índia.

Investigação

O analista desempacotou o arquivo ISO, identificou o atalho LNK responsável por lançar o executável e realizou engenharia reversa no dropper para descobrir seu payload e lógica de persistência. Análises adicionais do PulseRAT revelaram como ele usa Planilhas Google para comando e controle, gera seu mutex, executa PowerShell na memória do processo e cria sua tarefa agendada para persistência. Nomes de arquivos, caminhos do sistema de arquivos, padrões de mutex e o identificador da planilha foram todos documentados para apoiar a engenharia de detecção.

Mitigação

As organizações devem bloquear a execução de binários desconhecidos lançados a partir de mídias removíveis ou montadas e monitorar a criação de tarefas agendadas chamadas WindowsVaultSyncService. O controle de aplicação deve ser aplicado para binários executados de %LOCALAPPDATA%MicrosoftVault, e os defensores devem inspecionar o tráfego da API do Google Sheets para acesso a contas não autorizadas ou atividade inesperada de planilhas. Qualquer tarefa agendada maliciosa deve ser removida, e o arquivo vaultsvc.exe deve ser excluído de sistemas afetados.

Resposta

Se a atividade do PulseRAT for detectada, isole o endpoint afetado imediatamente, colete imagens de memória volátil e disco, e procure pelos indicadores de comprometimento documentados. Desative e remova a tarefa agendada maliciosa, exclua o diretório do cofre e redefina quaisquer contas de serviço relacionadas ao Google comprometidas. Uma revisão forense completa também deve ser realizada para identificar possíveis movimentos laterais, e as partes interessadas relevantes nos EAU e na Índia devem ser informadas.

"graph TB %% Definições de classe classDef action fill:#99ccff,stroke:#333,stroke-width:2px classDef tool fill:#dddddd,stroke:#333,stroke-width:2px classDef process fill:#ffeb99,stroke:#333,stroke-width:2px %% Nós step_user_open["<b>Ação</b> – <b>T1204.002 Execução do Usuário: Arquivo Malicioso</b><br/><b>Descrição</b>: A vítima abre um arquivo de atalho malicioso (LNK).<br/><b>Subtécnica</b> T1547.009 Modificação de Atalho<br/><b>Descrição</b>: Atalho colocado para alcançar persistência."] class step_user_open action step_dropper["<b>Ação</b> – <b>T1027.009 Arquivos Ofuscados/Armazenados: Payloads Embutidos</b><br/><b>Descrição</b>: Dropper extrai payload oculto.<br/><b>Técnica</b> T1105 Transferência de Ferramenta de Ingresso<br/><b>Descrição</b>: Transfere payload para o sistema da vítima."] class step_dropper action step_persistence["<b>Ação</b> – <b>T1053 Tarefa/Trabalho Agendado</b><br/><b>Descrição</b>: Cria uma tarefa agendada para persistência.<br/><b>Técnica</b> T1070.004 Exclusão de Arquivo<br/><b>Descrição</b>: Dropper se autoexclui após instalação."] class step_persistence action step_execution["<b>Ação</b> – <b>T1055.013 Injeção de Processo: Process Hollowing</b><br/><b>Descrição</b>: Executa PowerShell em processo para rodar código malicioso.<br/><b>Técnica</b> T1602 Obter Informações de Identidade da Vítima<br/><b>Descrição</b>: Coleta informações do sistema (systeminfo)."] class step_execution action step_uid["<b>Ação</b> – <b>T1589 Obter Informações de Identidade da Vítima</b><br/><b>Descrição</b>: Gera um identificador único para a vítima (UID)."] class step_uid action step_c2["<b>Ação</b> – <b>T1102.001 Serviços Web: Dead Drop Resolver</b><br/><b>Descrição</b>: Usa Planilhas Google como canal de comando e controle.<br/><b>Técnica</b> T1102.002 Serviços Web: Exfiltração Através de Serviços Web<br/><b>Descrição</b>: Comunica-se com API remota do Google Sheets."] class step_c2 action step_rat["<b>Ação</b> – <b>T1219 Ferramentas de Acesso Remoto</b><br/><b>Descrição</b>: Fornece acesso remoto interativo ao host comprometido."] class step_rat action step_cleanup["<b>Ação</b> – <b>T1070.009 Limpeza dos Logs de Eventos do Windows</b><br/><b>Descrição</b>: Remove artefatos e limpa mecanismos de persistência."] class step_cleanup action %% Conexões step_user_open –>|conduz a| step_dropper step_dropper –>|cria| step_persistence step_persistence –>|ativa| step_execution step_execution –>|produz| step_uid step_uid –>|utilizado por| step_c2 step_c2 –>|ativa| step_rat step_rat –>|aciona| step_cleanup "

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check Pre‑flight de Telemetria e Linha de Base deve ter sido aprovado.

  • Narrativa de Ataque & Comandos:
    O adversário comprometeu uma conta de usuário e colocou uma DLL maliciosa ‘PulseRAT’ no host. PulseRAT carrega em um processo legítimo (por exemplo, explorer.exe) e cria um runspace de PowerShell (execução in‑process) para evitar a criação de um powershell.exevisível. Ele então recupera um payload PowerShell codificado em base64 de uma Planilha Google controlada pelo atacante, decodifica-o e executa-o dentro do runspace. Isso gera uma única entrada de EventoID 4104 que contém tanto a string marcador “System.Management.Automation.Runspaces” (da criação do runspace) quanto a palavra “base64” (do payload decodificado), satisfazendo a regra Sigma.

  • Script de Teste de Regressão:

    # Execução do PowerShell in‑process no estilo PulseRAT (simulação)
    # ---------------------------------------------------------
    # 1. Crie um runspace de PowerShell (in‑process)
    $runspace = [runspacefactory]::CreateRunspace()
    $runspace.Open()
    
    # 2. Construa um payload codificado em base64 (simulando dados controlados pelo atacante)
    $payload = 'Write-Host "Comprometido por PulseRAT"'   # payload simples
    $bytes   = [System.Text.Encoding]::Unicode.GetBytes($payload)
    $b64     = [Convert]::ToBase64String($bytes)
    
    # 3. Construa um bloco de script que decodifica e executa o payload
    $script = @"
    `$b64 = '$b64'
    `$decoded = [System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(`$b64))
    Invoke-Expression `$decoded
    "@
    
    # 4. Crie um pipeline de PowerShell dentro do runspace e invoque-o
    $powershell = [powershell]::Create()
    $powershell.Runspace = $runspace
    $null = $powershell.AddScript($script).Invoke()
    $powershell.Dispose()
    $runspace.Close()
  • Comandos de Limpeza:

    # Remova o runspace e libere recursos (se ainda houver)
    if ($runspace -and $runspace.RunspaceStateInfo.State -ne 'Closed') {
        $runspace.Close()
    }
    Remove-Variable -Name runspace -ErrorAction SilentlyContinue
    Remove-Variable -Name powershell -ErrorAction SilentlyContinue