SOC Prime Bias: Crítico

05 Mai 2026 17:05

“AccountDumpling” Caçando a Onda de Phishing Enviada pelo Google que Comprometeu mais de 30.000 Contas do Facebook

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
“AccountDumpling” Caçando a Onda de Phishing Enviada pelo Google que Comprometeu mais de 30.000 Contas do Facebook
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Uma operação de phishing abusa do Google AppSheet para enviar e-mails que parecem legítimos, atraindo vítimas para páginas maliciosas hospedadas no Netlify e Vercel. Essas páginas coletam todos os detalhes de recuperação de conta do Facebook e os encaminham para bots do Telegram em tempo real. A campanha foi vinculada a um indivíduo no Vietnã e já resultou na violação de mais de 30.000 contas do Facebook. As contas roubadas são então monetizadas através de uma loja que anuncia serviços de recuperação de contas.

Investigação

Pesquisadores da Guardio rastrearam a cadeia de entrega de volta ao AppSheet, identificaram quatro clusters de phishing separados e reuniram centenas de URLs de hospedagem maliciosas. Eles também extraíram tokens de bot do Telegram e IDs de chat, conectaram a infraestrutura a um PDF do Canva contendo um nome vietnamita e analisaram a dispersão geográfica das vítimas. A pesquisa deles expôs um ecossistema modular no qual um grupo desenvolve os kits de phishing, outro conduz as campanhas e um terceiro lucra com o acesso a contas roubadas.

Mitigação

Defensores devem bloquear os subdomínios maliciosos conhecidos do Netlify e Vercel, monitorar e-mails gerados pelo AppSheet que contenham links suspeitos de call-to-action e detectar conexões de saída para os endpoints da API do bot do Telegram. As organizações também devem reforçar a validação em torno dos fluxos de trabalho de login e recuperação do Facebook e exigir re-autenticação para ações de recuperação sensíveis. Os usuários devem ser lembrados de que e-mails enviados por serviços confiáveis do Google ainda podem fazer parte de uma tentativa de phishing.

Resposta

As equipes de segurança devem alertar sobre e-mails de noreply@appsheet.com que incluam links para Netlify, Vercel ou shorten.tv domínios. Consultas DNS para esses domínios devem ser correlacionadas com o tráfego do bot do Telegram para identificar possível exfiltração. Se as credenciais forem roubadas, os usuários afetados devem ser forçados a redefinir senhas e qualquer conta do Facebook comprometida deve ser revisada imediatamente. Indicadores relevantes também devem ser compartilhados com o SOC e canais externos de inteligência de ameaças.

"graph TB %% Class definitions classDef action fill:#99ccff %% Nodes action_phishing["<b>Ação</b> – <b>T1566 Phishing</b><br/>Phishing via Google AppSheet para enganar usuários para revelar credenciais ou clicar em links maliciosos."] class action_phishing action action_cloud_abuse["<b>Ação</b> – <b>T1496.004 Seqüestro de Recursos: Seqüestro de Serviço em Nuvem</b><br/>Abuso de um serviço de email em nuvem para enviar emails maliciosos autenticados.<br/><b>Técnica Adicional</b> – <b>T1021.007 Serviços Remotos: Serviços em Nuvem</b><br/>Uso de serviços remotos em nuvem legítimos para realizar atividades maliciosas."] class action_cloud_abuse action action_credential_harvest["<b>Ação</b> – <b>T1606 Criação de Credenciais Web</b><br/>Criação de páginas de captura de credenciais hospedadas no Netlify/Vercel.<br/><b>Técnica Adicional</b> – <b>T1212 Exploração para Acesso a Credenciais</b><br/>Exploitação de plataformas web para capturar credenciais de usuários."] class action_credential_harvest action action_gather_info["<b>Ação</b> – <b>T1589 Reunir Informações de Identidade da Vítima</b><br/>Coleta de dados de identidade da vítima.<br/><b>Técnicas Adicionais</b> – <b>T1591.002 Reunir Informações da Organização da Vítima: Relacionamentos Comerciais</b><br/>Reunindo detalhes de relacionamentos comerciais.<br/><b>Técnica Adicional</b> – <b>T1591.004 Reunir Informações da Organização da Vítima: Identificar Papéis</b><br/>Identificando papéis da vítima dentro da organização."] class action_gather_info action action_exfil_telegram["<b>Ação</b> – <b>T1041 Exfiltração através de Canal C2</b><br/>Exfiltração de dados através do canal C2 do bot Telegram.<br/><b>Técnica Adicional</b> – <b>T1552.001 Credenciais Não Seguras: Credenciais Em Ficheiros</b><br/>Colheita de credenciais armazenadas em arquivos."] class action_exfil_telegram action action_facebook_access["<b>Ação</b> – <b>T1078 Contas Válidas</b><br/>Uso de contas válidas roubadas para acessar recursos do Facebook Business."] class action_facebook_access action %% Connections action_phishing –>|leads_to| action_cloud_abuse action_cloud_abuse –>|leads_to| action_credential_harvest action_credential_harvest –>|leads_to| action_gather_info action_gather_info –>|leads_to| action_exfil_telegram action_exfil_telegram –>|leads_to| action_facebook_access "

Fluxo de Ataque

Execução da Simulação

Pré-requisito: O Teste Preliminar de Telemetria e Linha de Base 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 narrativas DEVEM refletir diretamente as TTPs identificadas e objetivar 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 do Ataque & Comandos:

    1. Reconnaissance: O atacante colhe uma lista de endereços de e-mail de funcionários do Facebook de fontes públicas.

    2. Configuração de Abuso do AppSheet: Usando uma conta comprometida do Google Workspace, o atacante cria um aplicativo AppSheet que envia notificações por e-mail. O aplicativo está configurado para usar o domínio de bounce padrão do AppSheet appsheet.bounces.google.com.

    3. Carga de Phishing: O e-mail de notificação contém uma isca (“Sua senha do Facebook está expirando – redefina agora”) com um link malicioso apontando para uma página de captura de credenciais.

    4. Lançamento da Campanha: O atacante dispara o fluxo de trabalho do AppSheet, fazendo com que a plataforma envie o e-mail elaborado para a lista de alvos. Os metadados resultantes do e-mail correspondem a:

      • sender_email = noreply@appsheet.com
      • delivery_domain = appsheet.bounces.google.com
    5. Resultado: A regra do SIEM avalia a entrada do log que chega, corresponde a ambos os campos e gera um alerta.

  • Script de Teste de Regressão: O script abaixo automatiza as etapas 2-4 usando a API do Google Apps Script para emular uma notificação no estilo AppSheet. Requer um JSON de conta de serviço com permissão para enviar e-mails via API do Gmail.

    # python 3.x – envie um email no estilo de phishing através da API do Gmail
    import base64, json, sys
    from email.mime.text import MIMEText
    from google.oauth2 import service_account
    from googleapiclient.discovery import build
    
    # ---- Configuração -------------------------------------------------
    SERVICE_ACCOUNT_FILE = "service-account.json"   # <-- substitua pelo caminho
    SCOPES = ["https://www.googleapis.com/auth/gmail.send"]
    SENDER = "noreply@appsheet.com"
    RECIPIENT = "victim@facebook.com"
    SUBJECT = "Importante: Ação Requerida na Conta do Facebook"
    BODY = """
    Caro Usuário do Facebook,
    
    Nossos registros indicam que sua senha expirará em 24 horas.
    Por favor, redefina-a imediatamente clicando no link abaixo:
    
    https://malicious.example.com/steal?uid=12345
    
    Obrigado,
    Equipe de Segurança do Facebook
    """
    # --------------------------------------------------------------------
    
    credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)
    
    try:
        service = build('gmail', 'v1', credentials=credentials)
        message = MIMEText(BODY, "plain")
        message["to"] = RECIPIENT
        message["from"] = SENDER
        message["subject"] = SUBJECT
        # Adicione cabeçalho personalizado para mimetizar o domínio de bounce do AppSheet
        message["X-Delivery-Domain"] = "appsheet.bounces.google.com"
    
        raw = base64.urlsafe_b64encode(message.as_bytes()).decode()
        send_body = {"raw": raw}
        result = service.users().messages().send(userId="me", body=send_body).execute()
        print(f"Mensagem enviada, ID={result['id']}")
    except Exception as e:
        print(f"Erro ao enviar e-mail: {e}", file=sys.stderr)
        sys.exit(1)
  • Comandos de Limpeza: Remova a mensagem de teste da pasta de enviados e revogue o token da conta de serviço.

    # PowerShell – elimine a mensagem de teste da pasta de Enviados do Gmail usando a API do Gmail
    $serviceAccount = "service-account.json"
    $scopes = @("https://www.googleapis.com/auth/gmail.modify")
    $cred = (Get-Content $serviceAccount | ConvertFrom-Json) | `
            New-Object Google.Apis.Auth.OAuth2.ServiceAccountCredential `
                -ArgumentList ([Google.Apis.Auth.OAuth2.ServiceAccountCredential]::Initializer) `
                -Property @{Scopes = $scopes}
    $gmail = New-Object Google.Apis.Gmail.v1.GmailService -ArgumentList $cred
    
    # Recupere o ID da mensagem (substituir pelo ID real do script de envio)
    $msgId = "INSERT_MESSAGE_ID_HERE"
    $gmail.Users.Messages.Delete("me", $msgId).Execute()
    Write-Host "Email de teste deletado."