Investigadores de ESET descubrieron un exploit de zero-day dirigido a Telegram para Android, que apareció a la venta en un post de un foro underground del 6 de junio de 2024. Utilizando el exploit para abusar de una vulnerabilidad que hemos denominado EvilVideo, los atacantes podían compartir cargas maliciosas para Android a través de canales, grupos y chat de Telegram, y hacerlas aparecer como archivos multimedia.

Pudimos localizar un ejemplo del exploit, lo que nos permitió analizarlo más a fondo, y reportarlo a Telegram el 26 de junio de 2024. El 11 de julio, publicaron una actualización que corrige la vulnerabilidad en las versiones de Telegram 10.14.5 y superiores.

La Figura 1 es un vídeo en inglés con la demostración y explicación de la vulnerabilidad EvilVideo.

Figura 1. Explicación de la vulnerabilidad EvilVideo

Puntos clave del blogpost:
  • El 26 de  junio de 2024, en un foro clandestino, encontramos un anuncio de un exploit de día cero dirigido a Telegram para Android.
  • Llamamos a la vulnerabilidad que explota EvilVideo y la reportamos a Telegram; su equipo la parcheó el 11 de julio de 2024.
  • EvilVideo permite a los atacantes enviar cargas maliciosas que aparecen como archivos de vídeo en Telegram para Android sin parchear.
  • El exploit sólo funciona en las versiones 10.14.4 y anteriores de Telegram para Android.

Descubrimiento

Encontramos el exploit a la venta en un foro clandestino: ver Figura 2.

Figure 2. Post on an underground forum
Figura 2. Anuncio en un foro clandestino

En el post, el vendedor muestra capturas de pantalla y un vídeo probando el exploit en un canal público de Telegram. Pudimos identificar el canal en cuestión, con el exploit aún disponible. Eso nos permitió hacernos con la carga útil y probarla nosotros mismos.

Análisis

Nuestro análisis del exploit reveló que funciona en las versiones de Telegram 10.14.4 y anteriores. Especulamos que es muy probable que el payload específico se haya creado utilizando la API de Telegram, ya que permite a los desarrolladores subir archivos multimedia creados específicamente a los chats o canales de Telegram mediante programación.

El exploit parece depender de que el actor de la amenaza sea capaz de generar una carga útil que muestre una aplicación de Android como una vista previa multimedia y no como un archivo adjunto binario. Una vez compartida en el chat, la carga maliciosa aparece como un vídeo de 30 segundos (Figura 3).

Figure 3. Example of exploit
Figura 3. Ejemplo del exploit

Por defecto, los archivos multimedia recibidos a través de Telegram están configurados para descargarse automáticamente. Esto significa que los usuarios con la opción activada descargarán automáticamente la carga maliciosa una vez que abran la conversación en la que se compartió. La opción se puede desactivar manualmente, en cuyo caso, la carga se puede descargar pulsando el botón de descarga situado en la esquina superior izquierda del vídeo compartido, tal y como se muestra en la Figura 3. Si el usuario intenta reproducir el vídeo, la carga se descargará automáticamente.

Si el usuario intenta reproducir el “vídeo”, Telegram muestra un mensaje de que no puede reproducirlo y sugiere utilizar un reproductor externo (ver Figura 4). Se trata de una advertencia original de Telegram que encontramos en el código fuente de la aplicación legítima de Telegram para Android; no ha sido creada ni empujada por la carga maliciosa.

Figure 4. Telegram warning that it can’t play the “video”
Figura 4. Aviso de Telegram de que no puede reproducir el "vídeo"

Sin embargo, si el usuario pulsa el botón Abrir en el mensaje mostrado, se le pedirá que instale una aplicación maliciosa disfrazada como el reproductor externo antes mencionado. Como se ve en la Figura 5, antes de la instalación, Telegram pedirá al usuario que habilite la instalación de apps desconocidas.

Figure 5. Telegram requests the user to allow it to install unknown apps
Figura 5. Telegram solicita al usuario que le permita instalar apps desconocidas.

En este punto, la app maliciosa en cuestión ya ha sido descargada como el aparente archivo de vídeo, pero con la extensión .apk. Curiosamente, es la naturaleza de la vulnerabilidad la que hace que el archivo compartido parezca un vídeo: la aplicación maliciosa real no se alteró para hacerse pasar por un archivo multimedia, lo que sugiere que lo más probable es que se aprovechara el proceso de carga. La solicitud de instalación de la aplicación maliciosa puede verse en la Figura 6.

Figure 6. Request to install malicious payload, detected as AndroidSpy.SpyMax.T after exploitation
Figura 6. Solicitud de instalación de carga maliciosa, detectada como Android/Spy.SpyMax.T tras la explotación

Desafortunadamente, no pudimos replicar el exploit, solo inspeccionar y verificar la muestra compartida por el vendedor.

Telegram Web y Escritorio

A pesar de que el payload fue creado únicamente para Telegram para Android, intentamos probar su comportamiento en otros clientes de Telegram. Probamos tanto el cliente Telegram Web como el cliente Telegram Desktop para Windows —como era de esperar, el exploit no funcionó en ninguno de ellos.

En el caso de Telegram Web, después de intentar reproducir el “vídeo”, el cliente mostró un mensaje de error diciendo que intentáramos abrir el vídeo con la aplicación de escritorio en su lugar (ver Figura 7). La descarga manual del archivo adjunto reveló que su nombre y extensión eran Teating.mp4. Aunque el archivo en sí era en realidad un binario ejecutable de Android (APK), el hecho de que Telegram lo tratara como un archivo MP4 impidió que el exploit funcionara: para que tuviera éxito, el archivo adjunto tendría que haber tenido la extensión .apk.

Algo muy similar ocurrió con el cliente Telegram Desktop para Windows: el archivo descargado se llamaba Teating.apk.mp4, por lo que se trataba de nuevo de un archivo binario APK con extensión .mp4. Esto sugiere que incluso si un atacante creara un ejecutable de Windows para ser utilizado en lugar del APK de Android, seguiría siendo tratado como un archivo multimedia y el exploit no funcionaría.

Figure 7. Error message from Telegram Web when triggering the exploit
Figura 7. Mensaje de error de Telegram Web al activar el exploit

Actor de la amenaza

Aunque no sabemos mucho sobre el actor de la amenaza, nos las arreglamos para encontrar otro servicio sospechoso que están proporcionando basándonos en la cuenta de Telegram que el vendedor compartió en su mensaje del foro. Además del exploit, han estado utilizando el mismo foro clandestino para anunciar un cryptor-as-a-service para Android que afirman que es totalmente indetectable (FUD) desde el 11 de enero de 2024. El mensaje del foro puede verse en la Figura 8.

Figure 8. Underground forum post advertising an Android cryptor-as-a-service
Figura 8. Mensaje en un foro clandestino anunciando un cryptor-as-a-service para Android.

Informe sobre la vulnerabilidad

Tras descubrir la vulnerabilidad EvilVideo el 26 de junio de 2024, seguimos nuestra política de divulgación coordinada y la reportamos a Telegram, pero no recibimos respuesta en ese momento. Informamos de la vulnerabilidad de nuevo el 4 de julio, y esa vez, Telegram se puso en contacto con nosotros el mismo día para confirmar que su equipo estaba investigando EvilVideo. Arreglaron el problema, lanzando la versión 10.14.5 el 11 de julio, y nos informaron por correo electrónico.

La vulnerabilidad afectaba a todas las versiones de Telegram para Android hasta la 10.14.4, pero ha sido parcheada a partir de la versión 10.14.5. Según hemos comprobado, la vista previa multimedia del chat ahora muestra correctamente que el archivo compartido es una aplicación (Figura 9) y no un vídeo.

Figure 9. Telegram version 10.14.5 chat correctly displaying the nature of shared binary file
Figura 9. El chat de la versión 10.14.5 de Telegram muestra correctamente la naturaleza del archivo binario compartido

Conclusión

Hemos descubierto un exploit de día cero de Telegram para Android a la venta en un foro clandestino. La vulnerabilidad que explota permite enviar payloads maliciosos que parecen archivos multimedia a través del chat de Telegram. Si un usuario intenta reproducir el vídeo aparente, recibirá una solicitud para instalar una aplicación externa, que en realidad instala la carga maliciosa. Por suerte, la vulnerabilidad ha sido corregida desde el 11 de julio de 2024, después de que informáramos de ella a Telegram.

Para cualquier consulta sobre nuestra investigación publicada en WeLiveSecurity, por favor contáctanos en threatintel@eset.com
ESET Research ofrece informes privados de inteligencia APT y feeds de datos. Para cualquier consulta sobre este servicio, visite la página de ESET Threat Intelligence.

IoCs

Puede encontrar una lista completa de Indicadores de Compromiso (IoCs) y muestras en nuestro repositorio GitHub.

Archivos

SHA-1

Filename

Detection

Description

F159886DCF9021F41EAA
2B0641A758C4F0C4033D

Teating.apk

Android/Spy.SpyMax.T

EvilVideo payload.

Red

IP

Domain

Hosting provider

First seen

Details

183.83.172[.]232

infinityhackscharan.
ddns[.]net

Administrator Beam Cable System

2024‑07‑16

C&C server of EvilVideo payload.

Técnicas ATT&CK de MITRE

Esta tabla se construyó utilizando la versión 15 de las técnicas móviles ATT&CK de MITRE.

Tactic

ID

Name

Description

Initial Access

T1664

Exploitation for Initial Access

The EvilVideo vulnerability can be abused by Android malware to achieve initial device access.

Execution

T1658

Exploitation for Client Execution

The EvilVideo vulnerability tricks the victim into installing a malicious app that impersonates a multimedia file.