Malware GoodSender: usa la API de Bots de Telegram para comunicarse

Malware GoodSender: usa la API de Bots de Telegram para comunicarse

Hoy os vamos a hablar sobre un malware que encontró la firma de seguridad Forcepoint Labs que usa la api de bots de Telegram como servidor de comando y control para que el atacante pudiera mandar instrucciones a su malware.

Los investigadores describieron su malware recién descubierto, denominado GoodSender, como un malware "bastante simple" enfocado a los sistemas operativos Windows.

Una vez que el malware infecta a su objetivo, crea una nueva cuenta de administrador, habilita un escritorio remoto y se queda a la espera de recibir instrucciones de su creador.

Tanto el nombre de usuario como la contraseña que genera el malware al azar se envía al creador del malware a través de un bot de Telegram previamente creado

No es la primera vez que un malware utiliza Telegram para crear un servidor de comando y control, podemos poner como ejemplo el malware TeleRat para Android.

¿Problemas de seguridad en Telegram?

Según los investigadores de Forcepoint dicen que la comunicación entre usuarios (Apps de Telegram) se asegura mediante el cifrado MTProto de Telegram dentro del tráfico TLS, pero los mensajes de la API de Bot están protegidos solo por la capa HTTPS.

Tenemos que tener en cuenta que las peticiones que realiza la api de bots desde nuestro equipo se pueden rastrear con falicidad y debemos de tener en cuenta el tipo de peticiones que generas, ejemplo https://api.telegram.org/bot<API KEY DEL BOT>/<parámetros> esto es posible porque las direcciones url no se cifran.

GoodSender token tg bot

Claramente no hay ninguna vulnerabilidad actualmente en la forma de comunicación de Telegram como seguramente leáis en otros medios que se ponen a usar titulares tipo "Nueva vulnerabilidad en Telegram" o "Telegram Hackeado".

El fallo de este malware esta en usar Telegram

La facilidad que existe para obtener el token del bot que se encuentra en que el mismo malware para usar la API de bots de Telegram debe tener el token en su código para poder comunicarse.

Tenemos que tener en cuenta que el token fue liberado por el creador del malware al exponerlo dentro del propio código de su malware.

El problema surge que como el malware se encuentra en el equipo de la víctima, todas las peticiones a nivel de red se pueden rastrear. Cuando el bot empieza a realizar peticiónes podemos obtener el token del bot observando la dirección URL que usa para comunicarse.

Otra forma sería encontrar el código del malware descompilarlo y obtener directamente toda la información del mismo.

El token de nuestro bot debe ser privado, es decir, no debemos públicarlo en internet

El token del bot se uso para obtener el historial del atacante

Debido a que el atacante incluyo el token del bot y el id del canal al que el bot tenia que mandar los mensajes, los investigadores pudieron usar el método "forwardMessage" de la api de bots para reenviar los mensajes mandados por el Bot al canal del atacante.

Malware forwardMessage tg

Debido a que los mensajes enviados en un canal cuando se crea empiezan en 0 pues usando un bucle puedes ir reenviando uno a uno cada mensaje que el bot pudo mandar a ese canal y reenviarlo a otro chat/canal controlado en este caso por los investigadores de seguridad.

Se desconoce el método de distribución de este malware

Los investigadores de Forcepoint no pueden decir exactamente cuál es el método de distribución de GoodSender, pero piensan que el atacante puede estar haciendo uso de EternalBlue. El alcance de este malware actualmente es insignificante debido a que solo infecto aproximadamente unos 120 sistemas con GoodSender.

Comunicado de Markus Ra (Jefe del grupo de soporte de Telegram)

"El tráfico de los bots a través de HTTPS no es algo que se 'descubra', es una propiedad documentada del sistema", dijo Markus Ra, jefe de soporte de Telegram, en un comunicado.

"Este es un estándar de la industria. Tenga en cuenta que, de forma predeterminada, los bots Telegram solo reciben mensajes que están destinados específicamente para ellos".

Telegram también sostiene que obtener el token de un bot para poder obtener información de un chat donde se encuentra el bot es similar a robar la contraseña de alguien de su cuenta en cualquier otro servicio; en ese momento, un atacante tendría acceso completo de todos modos.

Nota técnica que seguramente los investigadores desconozcan

Una vez usas MTproto para iniciar sesión con la cuenta de usuario del bot se puede (aún que no de forma explícita) recoger todos los mensajes desde que se creó la cuenta ya sea bots o usuarios, pero supongo que eso es demasiado técnico y no vale la pena meterlo porque además no es sencillo debido a hay que necesitamos tocar cosas a bajo nivel.

Fuente: Forcepoint