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