TrickMo: El Man-in-the-Mobile de Trickbot


TrickBot es un troyano bancario conocido desde hace tiempo, y cuyas primeras detecciones se produjeron en el año 2016. Desde entonces, el troyano ha evolucionado hasta el punto de ser más que un troyano bancario, puesto que en los últimos meses se utiliza principalmente como ‘dropper’ que descarga e instala ransomware en la máquina infectada.

Ya hemos hablado en ocasiones anteriores sobre el funcionamiento de este troyano bancario para Windows. En esta ocasión toca hablar de una de las novedades que incorpora TrickBot desde hace unos meses, una aplicación para Android que permite robar los códigos de segundo factor recibidos por SMS. Este tipo de ataque se conoce con el nombre de ‘Man-In-The-Mobile’.

Las primeras detecciones de esta aplicación maliciosa para Android que acompaña a TrickBot son de septiembre de 2019, como se puede observar en el tweet publicado por el CERT de Alemania. En él se alerta a los usuarios de una aplicación para Android para la que TrickBot solicita la instalación al usuario.

trickmo-mitm-01

Tweet del CERT de Alemania alertando del la app de TrickBot

El objetivo de esta aplicación es recopilar todos los mensajes de texto recibidos en el dispositivo infectado y reenviarlos al servidor de control, donde sus desarrolladores pueden consultar dichos mensajes y utilizar los códigos de autenticación y autorización de transacciones. 

Este comportamiento no es nuevo, en 2011 se detectaron los primeros ataques de tipo ‘Man-In-The-Mobile’, a través del troyano bancario Zeus y su componente malicioso para Android llamado ‘ZitMo’.

Estas primeras versiones parecen haber afectado a usuarios de entidades bancarias alemanas, aunque podemos esperar que próximamente se vayan incluyendo entidades del resto de Europa, Estados Unidos y el resto del mundo.



Funcionamiento

El funcionamiento de la app maliciosa es sencillo, ya que su principal función es la de recopilar y reenviar los SMS recibidos al atacante, de forma que éste disponga de los códigos de segundo factor de autenticación. Estos códigos le darán acceso a la cuenta bancaria de la víctima y permitirán realizar y autorizar transacciones.

Destacan dos características curiosas del funcionamiento de la aplicación: el envío de mensajes no se realiza en el momento de la recepción y el envío puede realizarse al servidor de control o por SMS al atacante.

A diferencia de otros troyanos bancarios que roban los mensajes de texto y los envían al servidor de control en el momento de la recepción, en este caso, el envío se realiza cada cierto tiempo. Se realiza una petición HTTP en formato JSON al servidor de control que, además del los mensajes recibidos, también envía información básica sobre el dispositivo, como la versión de Android, el número de teléfono, las aplicaciones instaladas o el nivel de la batería:

trickmo-mitm-02Datos sobre el dispositivo enviados  al servidor

El envío del número de teléfono de la víctima permite a los atacantes utilizar una funcionalidad que no se suele ver tanto en este tipo de malware, el envío de comando de control a través de SMS. De esta forma, los atacantes pueden enviar un mensaje de texto al móvil infectado para hacer que el malware realice alguna de las funciones para las que está diseñado:

  • Actualizar la URL del servidor de control
  • Enviar los nuevos mensajes de texto recibidos
  • Actualizar el intervalo de tiempo en el que el troyano despierta para recopilar y enviar mensajes nuevos
  • Desinstalar el troyano

Estas son los cuatro comandos que el troyano puede recibir por SMS. Además de estos, también puede recibir otros comandos a partir de las respuestas recibidas por parte del servidor de control, como:

  • Bloquear la pantalla
  • Mostrar una WebView con una URL específica
  • Enviar un SMS al número indicado y con el texto indicado
  • Robo de imágenes almacenadas en el dispositivo

Como podemos observar, aunque su principal objetivo es robar los mensajes de texto recibidos, los desarrolladores se han asegurado de incluir suficiente funcionalidad para poder controlar de forma efectiva el dispositivo.

trickmo-mitm-03b

Código encargado de procesar los SMS recibidos

En la anterior imagen podemos ver el código que es ejecutado cada vez que se recibe un mensaje de texto. Como vemos, obtiene los ‘extras’ recibidos, extrayendo tanto el identificador del número que envía el mensaje como el contenido del SMS. Para finalmente comprobar si en alguno de ellos se encuentra la cadena de texto ‘Freischaltcode’.

trickmo-mitm-04

En caso de que contenga este cadena, el malware pasará a realizar el procesado de un posible comando recibido por SMS y que procede del atacante. Los comandos por SMS vienen cifrados utilizando RSA, y la aplicación contiene la clave privada de descifrado. Como podemos ver en la siguiente imagen, antes de procesar el mensaje con el comando, ésta descifra el mensaje en la línea 58 del código.

trickmo-mitm-05b
Procesado del SMS enviado por el atacante


Podemos ver que, entre todos los comandos, si éste comienza con ‘sms://’ entonces se llama a una función que obtiene todos los mensajes nuevos recopilados (en una base de datos SQLite) y los envía por SMS cifrados con AES como respuesta al mensaje del atacante.

trickmo-mitm-06b

Código que obtiene y envía los SMS recopilados

 

Conclusiones

TrickMo es el nuevo componente utilizado por el banker de Windows TrickBot para robar los códigos de segundo factor de autenticación que se envían por SMS a sus víctimas. Para ello, se solicita al usuario que instale TrickMo, la aplicación maliciosa para Android.

Esta app permanecerá a la espera de nuevos mensajes de texto, que se almacenan de forma local en el dispositivo y se envían cada cierto tiempo al servidor de control junto a información básica del dispositivo. Además, los atacantes incluyen la posibilidad de enviar SMS que contienen comandos a ejecutar por la aplicación, lo que les permite controlar el móvil y robar mensajes aunque éste no se encuentre conectado a Internet o en caso de que el servidor de control caiga.

Aunque parece que las campañas recientes de TrickMo están afectado a usuarios alemanes, es posible que en el futuro veamos nuevas versiones con usuarios afectados de diferentes países. También puede que comencemos a ver un aumento de la popularidad de esta técnica de enviar comandos de control a través de SMS en otros troyanos bancarios para Android, ya que permite mantener con vida el malware incluso si el servidor de control deja de responder.

 

IoCs

Servidores de control:

  • hxxp://mcsoft365[.]com/c
  • hxxp://pingconnect.net/c

Hash:

  • 284bd2d16092b4d13b6bc85d87950eb4c5e8cbba9af2a04d76d88da2f26c485c
  • 8ab1712ce9ca2d7952ab763d8a4872aa6a278c3f60dc13e0aebe59f50e6e30f6

     

 

 


¿Te ha gustado? Comparte en tus comunidades sociales.

¿Qué piensas sobre este tema?

Deja tus comentarios

 

¿Necesitas reducir el fraude online de tu banco?

Descubre nuestra visión holística aplicada a la detección del fraude online

Solicita una demo