SOC Prime Bias: Crítico

12 Jan 2026 15:59

Phishing de Credenciais BlueDelta (APT28) via Hospedagem Gratuita e Ngrok

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
Phishing de Credenciais BlueDelta (APT28) via Hospedagem Gratuita e Ngrok
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

BlueDelta, um grupo afiliado ao GRU também conhecido como APT28/Fancy Bear, conduziu várias campanhas de coleta de credenciais entre fevereiro e setembro de 2025. As campanhas usaram serviços gratuitos de hospedagem e tunelamento para hospedar páginas de login falsificadas do Outlook, Google e VPN Sophos e exfiltrar credenciais capturadas. As iscas incluíram documentos PDF legítimos e linguagem específica da região para aumentar a credibilidade. A operação teve como alvo entidades de energia, pesquisa nuclear, governamentais e acadêmicas na Turquia, Macedônia do Norte e Uzbequistão.

Investigação

O Insikt Group da Recorded Future coletou mais de uma dúzia de páginas de phishing hospedadas em serviços como Webhook.site, InfinityFree, Byet Internet Services e ngrok. O JavaScript nas páginas capturava nomes de usuário, senhas e identificadores das vítimas, enviava sinais para webhooks controlados por atacantes e, em seguida, redirecionava as vítimas para portais autênticos. Múltiplas variantes reutilizaram código e modificaram nomes de variáveis para simplificar a implantação. A infraestrutura era de curta duração e utilizava encurtadores de links como ShortURL.at.

Mitigação

Bloquear domínios conhecidos de hospedagem gratuita e tunelamento, monitorar tráfego de saída para serviços de webhook e reforçar MFA em todas as contas expostas externamente. Educar os usuários sobre páginas de phishing que imitam portais OWA, Google e VPN, especialmente quando iscas em PDF estão anexadas. Implementar filtragem de rede para URLs maliciosos conhecidos e aplicar controles de segurança de e-mail para detectar links suspeitos em PDF.

Resposta

Alerta os analistas do SOC quando forem observados POSTs HTTP para endpoints de webhook conhecidos e quando forem carregadas páginas de coleta de credenciais. Quarentenar a página maliciosa, isolar contas de usuários afetadas, forçar redefinições de senhas e revisar logs para movimentos laterais. Conduzir uma caçada a ameaças por outras páginas usando a mesma infraestrutura e atualizar listas de bloqueio conforme necessário.

“graph TB %% Definições de Classes classDef action fill:#99ccff classDef service fill:#ffcc99 classDef tool fill:#cccccc %% Nós u2013 Reconhecimento recon_info[“<b>Ação</b> – <b>T1591 Reunir Informações sobre a Organização da Vítima</b>: Coletar endereços de e-mail públicos e detalhes da organização de pesquisadores-alvo.”] class recon_info action recon_roles[“<b>Ação</b> – <b>T1591.004 Identificar Funções</b>: Determinar funções de trabalho específicas, como analistas de energia, estudiosos de think-tanks e equipe de segurança.”] class recon_roles action %% Nós u2013 Desenvolvimento de Recursos resource_dev[“<b>Ação</b> – <b>T1583.006 Adquirir Serviços Web de Infraestrutura</b>: Registrar domínios descartáveis e usar serviços gratuitos de hospedagem/tunelamento (Webhook.site, InfinityFree, Byet, ngrok, shorturl.at).”] class resource_dev service %% Nós u2013 Phishing phishing[“<b>Ação</b> – <b>T1566.001 Anexo de Spearphishing</b>: Enviar e-mail elaborado contendo link malicioso encurtado que redireciona por várias URLs.”] class phishing action %% Nós u2013 Ofuscação html_smuggling[“<b>Ação</b> – <b>T1027.006 HTML Smuggling</b>: O primeiro redirecionamento serve um HTML que, brevemente, incorpora uma isca de PDF legítima via metau2011refresh.”] class html_smuggling action %% Nós u2013 Coleta de Credenciais credential_forge[“<b>Ação</b> – <b>T1606 Forjar Credenciais Web / T1056.003 Captura de Portal Web</b>: Páginas de login falsificadas (OWA, Google, Sophos VPN) capturam credenciais com JavaScript.”] class credential_forge tool %% Nós u2013 Captura de Entrada Beacon web_capture_beacon[“<b>Ação</b> – <b>T1056.003 Captura de Portal Web</b>: O JavaScript envia um sinal de página aberta e credenciais inseridas para o webhook do atacante.”] class web_capture_beacon tool %% Nós u2013 Exfiltração exfil_webhook[“<b>Ação</b> – <b>T1567.004 Exfiltração via Webhook</b>: POST dados capturados como JSON para o webhook controlado pelo atacante (webhook.site, ngroku2011free.app).”] class exfil_webhook service %% Nós u2013 Comando e Controle c2_webprotocol[“<b>Ação</b> – <b>T1071.001 Protocolos de Camada de Aplicação Protocolo Web</b>: Usar tráfego web padrão para comunicação C2.”] class c2_webprotocol service c2_webservice[“<b>Ação</b> – <b>T1102.002 Serviço Web de Comunicação Bidirecional</b>: Manter canal bidirecional persistente via o serviço de webhook.”] class c2_webservice service %% Nós u2013 Tunelamento protocol_tunnel[“<b>Ação</b> – <b>T1572 Tunelamento de Protocolo</b>: Aproveitar túneis ngrok para expor endpoints de exfiltração local para a internet.”] class protocol_tunnel tool %% Nós u2013 Redirecionamento Pós-Exfiltração post_redirect[“<b>Ação</b> – Redirecionamento Pós-Exfiltração: Após a captura de dados, as vítimas são enviadas para o documento legítimo original ou portal VPN para evitar suspeitas.”] class post_redirect action %% Conexões u2013 Fluxo recon_info u002du002d>|leads_to| recon_roles recon_roles u002du002d>|leads_to| resource_dev resource_dev u002du002d>|enables| phishing phishing u002du002d>|triggers| html_smuggling html_smuggling u002du002d>|delivers| credential_forge credential_forge u002du002d>|captures| web_capture_beacon web_capture_beacon u002du002d>|sends_to| exfil_webhook exfil_webhook u002du002d>|supports| c2_webprotocol c2_webprotocol u002du002d>|uses| c2_webservice c2_webservice u002du002d>|relies_on| protocol_tunnel protocol_tunnel u002du002d>|facilitates| post_redirect “

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Cheque de Pré-Voo de Telemetria & Baseline deve ter sido aprovado.

Racional: 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 narrativas DEVEM refletir diretamente os TTPs identificados e visar gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a erros de diagnóstico.

  • Narrativa de Ataque & Comandos:

    1. Entrega inicial de phishing: Um atacante envia um e-mail de phishing contendo um URL curto que redireciona para o malicioso webhook.site página.
    2. Interação da vítima: A vítima clica no link; o navegador segue o redirecionamento e emite um HTTP GET solicitação para https://webhook.site/e8ae3bbd-ab02-46b7-b84c-f5f4baa5d7c7.
    3. Página de captura de credenciais: A página hospeda JavaScript que rouba as credenciais inseridas e as POSTs de volta para a mesma URL de webhook, mas o proxy apenas registra a solicitação GET inicial, o que é suficiente para acionar a regra.
    4. Para o teste, emulamos a vítima usando o Invoke-WebRequest do PowerShell para solicitar o URL malicioso exato, reproduzindo a mesma entrada de log no proxy.
  • Script de Teste de Regressão:

    # -------------------------------------------------
    # Simulação de Acesso ao Site de Webhook BlueDelta (TC-20260109-9X3BZ)
    # -------------------------------------------------
    $maliciousUrls = @(
        "https://webhook.site/e8ae3bbd-ab02-46b7-b84c-f5f4baa5d7c7",
        "https://webhook.site/3791f8c0-1308-4c5b-9c82-0dc416aeb9c4"
    )
    
    foreach ($url in $maliciousUrls) {
        try {
            Write-Host "Solicitando URL malicioso: $url"
            Invoke-WebRequest -Uri $url -UseBasicParsing -Method GET -TimeoutSec 10 | Out-Null
            Write-Host "✅ Solicitação enviada."
        } catch {
            Write-Warning "Solicitação para $url falhou: $_"
        }
    }
  • Comandos de Limpeza:

    # Limpar cache de proxy (se aplicável) para evitar entradas residuais
    net stop "Squid Service"
    net start "Squid Service"
    
    # Remover quaisquer arquivos temporários criados pelo script (nenhum neste caso)
    Write-Host "Limpeza concluída."