Toolkit em Expansão do Gamaredon: GammaPhish e GammaWorm
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
O Gamaredon, um grupo APT apoiado pelo estado russo, continua a realizar operações de espionagem de longo prazo contra instituições governamentais ucranianas, corpos militares e infraestrutura crítica. Sua cadeia de infecção modular começa com um documento de spearphishing, explora uma falha de travessia de caminho do WinRAR e depois depende de VBScript, fluxos de dados alternativos e resolutores de dead-drop para se espalhar, persistir e recuperar cargas adicionais. A campanha também utiliza serviços legítimos, como Telegram, Cloudflare e Supabase para atividade de comando e controle. A detecção continua a ser um desafio porque os atacantes abusam pesadamente das funcionalidades embutidas do Windows e dos métodos de execução sem arquivos.
Investigação
O Sekoia TDR reconstruiu a cadeia de intrusão de janeiro de 2026 examinando mais de 70 artefatos coletados de sistemas comprometidos. Sua análise identificou o componente inicial de phishing, GammaPhish, seguido pelo carregador VBScript GammaLoad, o worm auto-replicante GammaWorm e o ladrão PowerShell GammaSteel, que armazena módulos no registro. Os pesquisadores também documentaram o uso do GammaWorm de fluxos de dados alternativos e tarefas agendadas para persistência, junto com solicitações de rede repetidas para múltiplos domínios de resoluidor de dead-drop. A investigação mapeou como cada componente suportou a cadeia de infecção mais ampla e a presença de longo prazo.
Mitigação
Como o malware pode continuamente buscar novas cargas através de resolutores de dead-drop, a abordagem de remediação mais segura é muitas vezes uma reconstrução completa do sistema. Os esforços defensivos devem se concentrar na detecção da criação suspeita de fluxos de dados alternativos, modificações de registro RunOnce, tarefas agendadas com nomes incomuns e tráfego de saída de processos não-navegadores para domínios de resolutores conhecidos. Bloquear infraestruturas de comando e controle identificadas e aplicar controles de verificação rigorosos a anexos de e-mail também podem reduzir a probabilidade de compromisso inicial.
Resposta
Se esta atividade for detectada, isole imediatamente o host afetado, colete evidências voláteis e execute uma aquisição forense completa. Remova arquivos escondidos em fluxos de dados alternativos, exclua a entrada maliciosa do registro RunOnce e desabilite quaisquer tarefas agendadas relacionadas. Domínios de resolutores conhecidos e endereços IP devem ser bloqueados na borda da rede, e as detecções de endpoint devem ser atualizadas para identificar as linhas de comando observadas e padrões de execução sem arquivos.
graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ddffdd classDef process fill:#ffeb99 classDef operator fill:#ff9900 %% Nodes attack_phishing[“<b>Ação</b> – <b>T1566.001 Spearphishing com anexo</b><br/>O adversário envia um arquivo ZIP malicioso por e-mail às vítimas.”] class attack_phishing action file_zip[“<b>Arquivo</b> – malicious.zip<br/>Contém um atalho .lnk e um dropper .exe compilado em Rust.”] class file_zip file action_user_exec[“<b>Ação</b> – <b>T1204.001 Execução pelo usuário</b><br/>A vítima abre o .lnk ou executa o .exe, iniciando a cadeia de execução.”] class action_user_exec action file_lnk[“<b>Arquivo</b> – payload.pdf.lnk<br/>Atalho com dupla extensão e ícone do Edge para parecer legítimo.”] class file_lnk file tool_wscript[“<b>Ferramenta</b> – wscript.exe<br/>Executa o payload VBScript.”] class tool_wscript tool file_vbs[“<b>Arquivo</b> – empty.vbs<br/>VBScript mínimo que inicia o PowerShell.”] class file_vbs file action_vbscript[“<b>Ação</b> – <b>T1059.005 Visual Basic</b><br/>VBScript executado via wscript para iniciar o PowerShell.”] class action_vbscript action action_powershell[“<b>Ação</b> – <b>T1059.001 PowerShell</b><br/>Profile.ps1 executa com bypass de política e descriptografa a próxima etapa.”] class action_powershell action file_dat[“<b>Arquivo</b> – 1.dat<br/>Contêiner XOR criptografado contendo RuntimeBroker_update.exe.”] class file_dat file process_runtime[“<b>Processo</b> – RuntimeBroker_update.exe<br/>Descriptografado a partir de 1.dat; carrega DLL maliciosa via DLL side-loading.”] class process_runtime process file_dll[“<b>Arquivo</b> – UnityPlayer.dll<br/>DLL maliciosa colocada ao lado do RuntimeBroker_update.exe.”] class file_dll file action_dll_sideload[“<b>Ação</b> – <b>T1546.009 AppCert DLL</b><br/>Side-loading de DLL permite execução de código.”] class action_dll_sideload action tool_rustloader[“<b>Ferramenta</b> – Rust loader (RUSTCLOAK)<br/>Aloca memória, grava PE descriptografado AZUREVEIL e executa via fibras do Windows.”] class tool_rustloader tool action_process_injection[“<b>Ação</b> – <b>T1055.002 Injeção de processos</b><br/>Injeção de PE usando fibras do Windows.”] class action_process_injection action file_azureveil[“<b>Arquivo</b> – AZUREVEIL.exe<br/>Payload descriptografado executado após injeção.”] class file_azureveil file action_discovery[“<b>Ação</b> – <b>T1083 Descoberta de arquivos</b><br/>O loader enumera arquivos e os move para %TEMP%.”] class action_discovery action action_network_discovery[“<b>Ação</b> – <b>T1016 Descoberta de rede</b><br/>Coleta informações de MAC e IP.”] class action_network_discovery action action_c2[“<b>Ação</b> – <b>T1102 Serviço Web</b><br/>Comunicação com Azure Blob Storage via HTTPS.”] class action_c2 action action_dead_drop[“<b>Ação</b> – <b>T1102.003 Comunicação unidirecional</b><br/>Envia beacons e recebe comandos do mesmo container.”] class action_dead_drop action action_encrypted_channel[“<b>Ação</b> – <b>T1573.001 Canal criptografado</b><br/>Comunicação cifrada com RC4 e SM4-CBC.”] class action_encrypted_channel action action_exfil[“<b>Ação</b> – <b>T1567.002 Exfiltração via serviço web</b><br/>Upload de dados criptografados para Azure Blob.”] class action_exfil action action_persistence[“<b>Ação</b> – <b>T1547.009 Modificação de atalho</b><br/>Persistência via atalho no startup.”] class action_persistence action %% Connections attack_phishing –>|entrega| file_zip file_zip –>|ativa| action_user_exec action_user_exec –>|abre| file_lnk file_lnk –>|executa| tool_wscript tool_wscript –>|executa| file_vbs file_vbs –>|inicia| action_vbscript action_vbscript –>|inicia| action_powershell action_powershell –>|descriptografa| file_dat file_dat –>|produz| process_runtime process_runtime –>|carrega| file_dll file_dll –>|usado por| action_dll_sideload process_runtime –>|injeta| action_process_injection action_process_injection –>|usa| tool_rustloader tool_rustloader –>|carrega| file_azureveil file_azureveil –>|executa| action_discovery action_discovery –>|também| action_network_discovery action_network_discovery –>|envia para| action_c2 action_c2 –>|usa| action_dead_drop action_dead_drop –>|depende de| action_encrypted_channel action_encrypted_channel –>|habilita| action_exfil action_exfil –>|pode ativar| action_persistence file_lnk –>|estabelece| action_persistence
Fluxo de Ataque
Detecções
Possíveis Pontos de Persistência [ASEPs – Software/NTUSER Hive] (via registro_event)
Ver
LOLBAS WScript / CScript (via criação_de_processo)
Ver
Comportamento Suspeito de Evasão de Defesa LOLBAS MSHTA pela Detecção de Comandos Associados (via criação_de_processo)
Ver
Uso Suspeito de CURL (via linha_de_comando)
Ver
Binário / Scripts Suspeitos na Localização de Inicialização Automática (via evento_de_arquivo)
Ver
Possível Abuso do Telegram como Canal de Comando e Controle (via consulta_dns)
Ver
Possível Infiltração/Exfiltração de Dados/C2 via Serviços/Ferramentas de Terceiros (via consulta_dns)
Ver
Possível Tentativa de Exploração da Vulnerabilidade CVE-2025-8088 / CVE-2025-6218 (WinRAR) (via evento_de_arquivo)
Ver
Comunicação de Domínios Suspeitos Trycloudflare (via dns)
Ver
Possível Abuso de Domínio de Desenvolvimento do Cloudflare (via dns)
Ver
IOCs (HashMd5) para detectar: matryoshka #1/3 da FSB – presentes do Gamaredon que continuam se desembrulhando – GammaPhish e GammaWorm
Ver
IOCs (SourceIP) para detectar: matryoshka #1/3 da FSB – presentes do Gamaredon que continuam se desembrulhando – GammaPhish e GammaWorm
Ver
IOCs (DestinationIP) para detectar: matryoshka #1/3 da FSB – presentes do Gamaredon que continuam se desembrulhando – GammaPhish e GammaWorm
Ver
Detecção do Uso de ADS NTFS pelo GammaWorm para Persistência e Propagação [Evento de Arquivo do Windows]
Ver
Execução de Simulação
Pré-requisito: O Check de Pré-voo de Telemetria & Baseline deve ter sido aprovado.
Justificativa: Esta seção detalha a execução precisa da técnica adversária (T1564.007) projetada para acionar a regra de detecção. Os comandos e a narrativa produzem diretamente a telemetria esperada pela lógica de detecção.
-
Narrativa & Comandos do Ataque:
Um operador obteve o payload do GammaWorm (um PE compilado) e deseja alcançar a persistência enquanto permanece oculto das listagens de arquivos tradicionais. O invasor escreve o payload em um Fluxo de Dados Alternativo NTFS chamado GTR dentro do diretório de perfil do usuário. O Windows tratará o ADS como parte do arquivo normal (%USERPROFILE%gamma.exe:GTR). Como o nome do ADS corresponde à lista codificada diretamente na regra, qualquer evento de criação de arquivo que inclua “:GTR” sob%USERPROFILE%disparará a detecção.# Passo 1 – Prepare um binário malicioso fictício (ex.: uma linha única de PowerShell codificada em base64) $malicious = [System.Convert]::FromBase64String( "TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAwAAAAA4AAAAA") $payloadPath = "$env:USERPROFILEgamma.exe" # Passo 2 – Escreva o binário no arquivo principal (opcional; o ADS pode existir sem um arquivo principal) [IO.File]::WriteAllBytes($payloadPath, $malicious) # Passo 3 – Escreva o mesmo binário (ou uma carga diferente) no ADS chamado GTR $adsPath = "$payloadPath:GTR" Set-Content -Path $adsPath -Value $malicious -Encoding Byte -
Script de Teste de Regressão: (auto-contido; pode ser executado em qualquer host Windows com PowerShell 5+)
# Simulação de Persistência do GammaWorm ADS – aciona a regra de detecção try { # Crie um arquivo de host de espaço reservado $hostFile = "$env:USERPROFILEgamma.exe" $dummyBytes = [byte[]] (0x4D,0x5A,0x90,0x00) # Cabeçalho PE mínimo [IO.File]::WriteAllBytes($hostFile, $dummyBytes) # Escreva a carga maliciosa no ADS chamado "GTR" $ads = "$hostFile:GTR" Set-Content -Path $ads -Value $dummyBytes -Encoding Byte Write-Host "ADS 'GTR' criado com sucesso em $ads" } catch { Write-Error "Simulação falhou: $_" } -
Comandos de Limpeza:
# Remova o ADS e o arquivo de host de espaço reservado $hostFile = "$env:USERPROFILEgamma.exe" $ads = "$hostFile:GTR" # Delete o ADS (requer Sysinternals Streams.exe ou PowerShell 5+) if (Test-Path $ads) { Remove-Item -Path $ads -Force Write-Host "ADS GTR removido." } # Delete o arquivo principal if (Test-Path $hostFile) { Remove-Item -Path $hostFile -Force Write-Host "Arquivo de host gamma.exe removido." }