El equipo de investigación de ESET identificó una versión actualizada para Android de GravityRAT, un troyano de acceso remoto que se distribuye como las aplicaciones de mensajería BingeChat y Chatico. GravityRAT es una herramienta de acceso remoto que se conoce desde al menos 2015 y que se usó anteriormente en ataques dirigidos en India. Existen versiones disponibles de este malware para Windows, Android y macOS, tal como lo documentaron previamente Cisco Talos, Kaspersky, y Cyble. Si bien el actor detrás de GravityRAT sigue siendo desconocido; internamente rastreamos al grupo como SpaceCobra.

Probablemente activa desde agosto de 2022, la campaña de BingeChat aún está en curso. Sin embargo, la campaña que utiliza Chatico ya no está activa. BingeChat se distribuye a través de un sitio web que anuncia servicios de mensajería gratuitos. Notable en la campaña recién descubierta, GravityRAT puede filtrar las copias de seguridad de WhatsApp y recibir comandos para eliminar archivos. Las aplicaciones maliciosas también brindan una funcionalidad de chat legítima basada en la aplicación OMEMO Instant Messenger, la cual es de código abierto.

Puntos clave en esta publicación:

  • Descubrimos una nueva versión para Android del software espía GravityRAT que se distribuye como versiones troyanizadas de la aplicación legítima de código abierto OMEMO Instant Messenger para Android.
  • La aplicación BingeChat troyanizada está disponible para su descarga desde un sitio web que la presenta como un servicio gratuito de mensajería y uso compartido de archivos.
  • Esta versión de GravityRAT ha sido mejorada con dos nuevas capacidades: es puede recibir comandos para eliminar archivos y extraer archivos de la copia de seguridad de WhatsApp.

Descripción de la campaña

Fuimos alertados de esta campaña por el equipo de MalwareHunterTeam, que compartió el hash de una muestra de GravityRAT a través de un tweet. Según el nombre del archivo APK, la app maliciosa tiene la marca BingeChat y afirma proporcionar la funcionalidad de mensajería. Encontramos que el sitio web bingechat[.]net a estado distribuyendo esta muestra (ver Figura 1).

Figura 1. Sitio web que distribuye la aplicación de mensajería maliciosa BingeChat

El sitio web debería descargar la aplicación maliciosa después de tocar el botón DESCARGAR APLICACIÓN; sin embargo, solicita que los visitantes inicien sesión. No teníamos credenciales y los registros estaban cerrados (ver Figura 2). Lo más probable es que los operadores detrás de esta campaña solo abran el registro cuando esperan que una víctima específica visite el sitio, posiblemente a través de una dirección IP particular, geolocalización, una URL personalizada o dentro de un período de tiempo específico. Por lo tanto, creemos que las víctimas potenciales son altamente específicas.

Figura 2. El servicio actualmente no proporciona registros

Aunque no pudimos descargar la aplicación BingeChat a través del sitio web, pudimos encontrar una URL en VirusTotal (https://downloads.bingechat[.]net/uploadA/c1d8bad13c5359c97cab280f7b561389153/BingeChat.zip) que contiene la aplicación maliciosa BingeChat para Android. Esta aplicación tiene el mismo hash que la aplicación del tweet mencionado anteriormente, lo que significa que esta URL es un punto de distribución para esta muestra de GravityRAT en particular.

También se hace referencia al mismo nombre de dominio en el código de la aplicación BingeChat, otra pista de que bingechat[.]net se usa para la distribución (consulte la Figura 3).

Figura 3. Nombre de dominio de distribución al que se hace referencia en la aplicación BingeChat

La aplicación maliciosa nunca estuvo disponible en la tienda Google Play. Es una versión troyanizada de la aplicación de Android legítima OMEMO Instant Messenger (IM), que como mencionamos antes, es de código abierto. Sin embargo, tiene la marca BingeChat. OMEMO IM es una reconstrucción del cliente para Android Conversations.

Como puede ver en la Figura 4, el código HTML del sitio malicioso presenta evidencia de que fue copiado del sitio legítimo preview.colorlib.com/theme/BingeChat/ el 5 de julio de 2022 , utilizando la herramienta automatizada HTTrack; colorlib.com es un sitio web legítimo que ofrece temas de WordPress para descargar, pero parece que el tema de BingeChat ya no está disponible allí. El dominio bingechat[.]net fue registrado el 18 de agosto de 2022.

Figura 4. Log generado por la herramienta HTTrack y registrado en el código HTML del sitio web utilizado para la distribución.

No sabemos cómo fue que las potenciales víctimas fueron atraídas o descubrieron el sitio web malicioso. Teniendo en cuenta que la posibilidad de descargar la aplicación está condicionada a tener una cuenta y que no fue posible registrar una nueva cuenta al momento del análisis, creemos que las víctimas de esta campaña fueron especialmente seleccionadas. En la siguiente imagen podemos observar el esquema que describe la campaña.

Figura 5. Mecanismo de distribución de GravityRAT

Victimología

Los datos de telemetría de ESET no han registrado ninguna víctima de esta campaña de BingeChat, lo que sugiere además que la campaña probablemente tenga un objetivo limitado. Sin embargo, nuestra telemetría tiene una detección de otra muestra para Android de GravityRAT en India que data de junio de 2022. En este caso, GravityRAT se denominó Chatico (consulte la Figura 6).

Figura 6. Pantalla de inicio de sesión de Chatico

Al igual que BingeChat, Chatico se basa en la aplicación OMEMO Instant Messenger y está troyanizada con GravityRAT. Lo más probable es que Chatico se distribuyera a través del sitio web chatico.co[.]uk y también se comunicara con un servidor de C&C. Los dominios tanto del sitio web como del servidor de C&C ahora están fuera de línea.

De ahora en adelante, solo nos centraremos en la campaña activa que utiliza la aplicación BingeChat, que tiene la misma funcionalidad maliciosa que Chatico.

Atribución

El grupo detrás del malware sigue siendo desconocido, a pesar de que los investigadores de Facebook atribuyen GravityRAT a un grupo con sede en Pakistán, y lo mismo hizo Cisco Talos. Nosotros realizamos un seguimiento interno del grupo bajo el nombre de SpaceCobra y atribuimos las campañas de BingeChat y Chatico a este grupo.

La funcionalidad maliciosa típica para GravityRAT está asociada con una pieza específica de código que, en 2020, Kaspersky atribuyó a un grupo que usa variantes para Windows de GravityRAT.

En 2021, Cyble publicó un análisis de otra campaña de GravityRAT que mostraba los mismos patrones que BingeChat, como un vector de distribución similar para el troyano enmascarado como una aplicación de chat legítima, que en este caso era SoSafe Chat, el uso del código de OMEMO IM, y la misma funcionalidad maliciosa. En la Figura 6 se puede apreciar una comparación de clases maliciosas entre la muestra de GravityRAT analizada por Cyble y la nueva muestra contenida en BingeChat. Basándonos en esta comparación, podemos afirmar con mucha seguridad que el código malicioso de BingeChat pertenece a la familia de malware GravityRAT.

Figura 7. Comparación de los nombres de clase del troyano que se hace pasar por aplicaciones legítimas de SoSafe Chat (izquierda) y BingeChat (derecha)

Análisis técnico

Después de iniciarse, la aplicación solicita al usuario que habilite todos los permisos necesarios para funcionar correctamente, como se muestra en la Figura 8. Excepto por el permiso para leer los registros de llamadas, los otros permisos solicitados son típicos de cualquier aplicación de mensajería, por lo que es posible que el usuario del dispositivo no se alarme cuando la aplicación los solicite.

Figura 8. Permisos que solicita BingeChat

Como parte de la funcionalidad legítima, la aplicación ofrece opciones para crear una cuenta e iniciar sesión. Antes de que el usuario inicie sesión en la aplicación, GravityRAT comienza a interactuar con su servidor C&C, filtrando los datos del usuario del dispositivo y esperando que se ejecuten los comandos. GravityRAT es capaz de exfiltrar:

  • registros de llamadas
  • lista de contactos
  • mensajes SMS
  • archivos con extensiones específicas: jpg, jpeg, log, png, PNG, JPG, JPEG, txt, pdf, xml, doc, xls, xlsx, ppt, pptx, docx, opus, crypt14, crypt12, crypt13, crypt18, crypt32
  • ubicación del dispositivo
  • información básica del dispositivo

Los datos que se exfiltrarán se almacenan en archivos de texto en medios externos, luego se extraen al servidor de C&C y finalmente se eliminan. En la Figura 9 se observa cómo se enumeran las rutas de archivo para los datos por etapas.

Figura 9. Ruta de archivos de datos preparados para exfiltración

Esta versión de GravityRAT tiene dos pequeñas actualizaciones en comparación con las versiones anteriores públicamente conocidas de GravityRAT. Primero, amplía la lista de archivos para exfiltrar a aquellos con las extensiones crypt14, crypt12, crypt13, crypt18 y crypt32. Estos archivos cifrados son copias de seguridad creadas por WhatsApp Messenger. En segundo lugar, puede recibir tres comandos de un servidor de C&C para ejecutar:

  • DeleteAllFiles – elimina archivos con una extensión particular, extraídos del dispositivo
  • DeleteAllContacts – elimina la lista de contactos
  • DeleteAllCallLogs – elimina los registros de llamadas

Estos son comandos muy específicos que normalmente no se ven en el malware para Android. Las versiones anteriores de GravityRAT para Android no podían recibir comandos en absoluto; solo podían cargar datos extraídos a un servidor C&C en un momento determinado.

GravityRAT contiene dos subdominios de C&C hardcodeados que se muestran en la Figura 10; sin embargo, está codificado para que solo use el primero (httpks://dev.androidadbserver[.]com).

Figura 10. Servidores de C&C iniciales hardcodeados

Se contacta con este servidor de C&C para registrar un nuevo dispositivo comprometido y para recuperar dos direcciones de C&C adicionales que, cuando realizamos las pruebas, eran https://cld.androidadbserver[.]com y https://ping.androidadbserver[.]com, tal como se observa en la Figura 11.

Figura 11. Comunicación con el C&C para registrar un nuevo dispositivo

Nuevamente, solo se usa el primer servidor de C&C, esta vez para cargar los datos del usuario del dispositivo, como se observa en la Figura 12.

Figura 12. Exfiltración de datos de víctimas al servidor C&C

Conclusión

Conocido por haber estado activo desde al menos 2015, el grupo SpaceCobra ha resucitado a GravityRAT ampliando sus funcionalidades para exfiltrar las copias de seguridad de WhatsApp Messenger y recibir comandos de un servidor C&C para eliminar archivos. Al igual que antes, esta campaña utiliza aplicaciones de mensajería como señuelo para para distribuir el backdoor GravityRAT. El grupo detrás de este malware utiliza el código de la app de mensajería instantánea legítima llamada OMEMO para proporcionar la funcionalidad de chat en las aplicaciones de mensajería maliciosas BingeChat y Chatico.

Según la telemetría de ESET, un usuario de india fue atacado con la versión actualizada de este RAT utilizando como señuelo la app Chatico y la campaña comparte características con otras campañas previamente documentadas. La versión de BingeChat se distribuye a través de un sitio web que requiere registro, probablemente abierto solo cuando los atacantes esperan que lo visiten víctimas específicas, posiblemente con una dirección IP particular, geolocalización, una URL personalizada o dentro de un período de tiempo específico. En cualquier caso, creemos que la campaña está muy dirigida.

Indicadores de Compromiso

Archivos

SHA-1 Package name ESET detection name Description
2B448233E6C9C4594E385E799CEA9EE8C06923BD eu.siacs.bingechat Android/Spy.Gravity.A GravityRAT impersonating BingeChat app.
25715A41250D4B9933E3599881CE020DE7FA6DC3 eu.siacs.bingechat Android/Spy.Gravity.A GravityRAT impersonating BingeChat app.
1E03CD512CD75DE896E034289CB2F5A529E4D344 eu.siacs.chatico Android/Spy.Gravity.A GravityRAT impersonating Chatico app.

Red

IP Domain Hosting provider First seen Details
75.2.37[.]224 jre.jdklibraries[.]com Amazon.com, Inc. 2022-11-16 Chatico C&C server.
104.21.12[.]211 cld.androidadbserver[.]com
adb.androidadbserver[.]com
Cloudflare, Inc. 2023‑03‑16 BingeChat C&C servers.
104.21.24[.]109 dev.jdklibraries[.]com Cloudflare, Inc. N/A Chatico C&C server.
104.21.41[.]147 chatico.co[.]uk Cloudflare, Inc. 2021-11-19 Chatico distribution website.
172.67.196[.]90 dev.androidadbserver[.]com
ping.androidadbserver[.]com
Cloudflare, Inc. 2022-11-16 BingeChat C&C servers.
172.67.203[.]168 bingechat[.]net Cloudflare, Inc. 2022‑08‑18 BingeChat distribution website.

Rutas

Los datos para exfiltración son presentados en las siguientes rutas:

/storage/emulated/0/Android/ebc/oww.log
/storage/emulated/0/Android/ebc/obb.log
/storage/emulated/0/bc/ms.log
/storage/emulated/0/bc/cl.log
/storage/emulated/0/bc/cdcl.log
/storage/emulated/0/bc/cdms.log
/storage/emulated/0/bc/cs.log
/storage/emulated/0/bc/location.log

Técnicas de MITRE ATT&CK

Esta tabla fue creada utilizando la versión 13 del framework MITRE ATT&CK.

Tactic ID Name Description
Persistence T1398 Boot or Logon Initialization Scripts GravityRAT receives the BOOT_COMPLETED broadcast intent to activate at device startup.
T1624.001 Event Triggered Execution: Broadcast Receivers GravityRAT functionality is triggered if one of these events occurs:
USB_DEVICE_ATTACHED,
ACTION_CONNECTION_STATE_CHANGED,
USER_UNLOCKED,
ACTION_POWER_CONNECTED,
ACTION_POWER_DISCONNECTED,
AIRPLANE_MODE,
BATTERY_LOW,
BATTERY_OKAY,
DATE_CHANGED,
REBOOT,
TIME_TICK, or
CONNECTIVITY_CHANGE.
Defense Evasion T1630.002 Indicator Removal on Host: File Deletion GravityRAT removes local files that contain sensitive information exfiltrated from the device.
Discovery T1420 File and Directory Discovery GravityRAT lists available files on external storage.
T1422 System Network Configuration Discovery GravityRAT extracts the IMEI, IMSI, IP address, phone number, and country.
T1426 System Information Discovery GravityRAT extracts information about the device, including SIM serial number, device ID, and common system information.
Collection T1533 Data from Local System GravityRAT exfiltrates files from the device.
T1430 Location Tracking GravityRAT tracks device location.
T1636.002 Protected User Data: Call Logs GravityRAT extracts call logs.
T1636.003 Protected User Data: Contact List GravityRAT extracts the contact list.
T1636.004 Protected User Data: SMS Messages GravityRAT extracts SMS messages.
Command and Control T1437.001 Application Layer Protocol: Web Protocols GravityRAT uses HTTPS to communicate with its C&C server.
Exfiltration T1646 Exfiltration Over C2 Channel GravityRAT exfiltrates data using HTTPS.
Impact T1641 Data Manipulation GravityRAT removes files with particular extensions from the device, and deletes all user call logs and the contact list.