PulseRAT Entregue Através de uma Isca de Parceria EAU-Índia
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
Detecções
Uso Possível de ‘Choice’ para Adiar Execução (via linha de comando)
Ver
Imagem de Disco Óptico VHDMP Foi Montada (via VHDMP)
Ver
Tarefa Agendada Suspeita (via auditoria)
Ver
Atividade Possível de Utilitário de Comando e Controle do Google (via proxy)
Ver
IOCs (HashSha256) para detectar: PulseRAT – RAT baseado em Planilhas Google usando Lure de Parceria EAU-Índia
Ver
Detecção de Execução In-Process do PowerShell pelo PulseRAT [PowerShell do Windows]
Ver
Execução de Executável Suspeito via Arquivo LNK e Payload de RAT [Criação de Processo do Windows]
Ver
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 umpowershell.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