A equipe de pesquisa da ESET identificou uma versão atualizada para Android do GravityRAT, um trojan de acesso remoto distribuído como os aplicativos de mensagens BingeChat e Chatico. O GravityRAT é uma ferramenta de acesso remoto que é conhecida pelo menos desde 2015 e foi usada anteriormente em ataques direcionados na Índia. As versões desse malware estão disponíveis para Windows, Android e macOS, conforme documentado anteriormente pela Cisco Talos, Kaspersky e Cyble. Embora o agente por trás do GravityRAT permaneça desconhecido, internamente rastreamos o grupo como SpaceCobra.
Provavelmente ativa desde agosto de 2022, a campanha do BingeChat ainda está em andamento. No entanto, a campanha usando o Chatico não está mais ativa. O BingeChat é distribuído por meio de um site que anuncia serviços de mensagens gratuitos. Notável na campanha recém-descoberta, o GravityRAT pode vazar backups do WhatsApp e receber comandos para excluir arquivos. Os aplicativos maliciosos também fornecem funcionalidade de bate-papo legítima com base no aplicativo OMEMO Instant Messenger, que é de código aberto.
Pontos principais desta publicação:
- Descobrimos uma nova versão para Android do spyware GravityRAT que é distribuída como versões troianizadas do aplicativo legítimo de código aberto OMEMO Instant Messenger para Android;
- O aplicativo BingeChat trojanizado está disponível para download em um site que o apresenta como um serviço gratuito de mensagens e compartilhamento de arquivos;
- Essa versão do GravityRAT foi aprimorada com dois novos recursos: ele pode receber comandos para excluir arquivos e extrair arquivos do backup do WhatsApp.
Descrição da campanha
Fomos alertados sobre essa campanha pelo MalwareHunterTeam, que compartilhou o hash de uma amostra do GravityRAT por meio de um tweet. De acordo com o nome do arquivo APK, o aplicativo malicioso tem a marca BingeChat e afirma fornecer funcionalidade de mensagens. Descobrimos que o site bingechat[.]net está distribuindo essa amostra (veja a Figura 1).
O site deve fazer o download do aplicativo malicioso após tocar no botão DOWNLOAD APP; no entanto, ele solicita que os visitantes façam login. Não tínhamos credenciais e os registros foram fechados (veja a Figura 2). Muito provavelmente, os operadores por trás dessa campanha só abrem o login quando esperam que uma vítima específica visite o site, possivelmente por meio de um determinado endereço IP, geolocalização, um URL personalizado ou dentro de um período de tempo específico. Portanto, acreditamos que as vítimas em potencial são altamente específicas.
Embora não tenhamos conseguido fazer o download do aplicativo BingeChat por meio do site, conseguimos encontrar um URL no VirusTotal (https://downloads.bingechat[.]net/uploadA/c1d8bad13c5359c97cab280f7b561389153/BingeChat.zip) que contém o aplicativo malicioso BingeChat para Android. Esse aplicativo tem o mesmo hash que o aplicativo de tweet mencionado acima, o que significa que esse URL é um ponto de distribuição para essa amostra específica do GravityRAT.
O mesmo nome de domínio também é referenciado no código do aplicativo BingeChat, outra pista de que o bingechat[.]net é usado para distribuição (veja a Figura 3).
O aplicativo malicioso nunca esteve disponível na loja Google Play. Ele é uma versão trojanizada do aplicativo legítimo para Android OMEMO Instant Messenger (IM), que, como mencionado anteriormente, é de código aberto. No entanto, ele tem a marca BingeChat. O OMEMO IM é uma reconstrução do cliente Android Conversations.
Como você pode ver na Figura 4, o código HTML do site malicioso mostra evidências de que ele foi copiado do site legítimo preview.colorlib.com/theme/BingeChat/ em 5 de julho de 2022, usando a ferramenta automatizada HTTrack; colorlib.com é um site legítimo que oferece temas do WordPress para download, mas parece que o tema BingeChat não está mais disponível lá. O domínio bingechat[.]net foi registrado em 18 de agosto de 2022.
Não sabemos como as possíveis vítimas foram atraídas ou descobriram o site malicioso. Considerando que a possibilidade de baixar o aplicativo está condicionada à existência de uma conta e que não era possível registrar uma nova conta no momento da análise, acreditamos que as vítimas dessa campanha foram especialmente visadas. Na imagem abaixo, podemos ver o esquema que descreve a campanha.
Vitimologia
Os dados de telemetria da ESET não registraram nenhuma vítima dessa campanha do BingeChat, o que sugere ainda mais que a campanha provavelmente terá um alvo limitado. No entanto, nossa telemetria detectou outra amostra do GravityRAT para Android na Índia, datada de junho de 2022. Nesse caso, o GravityRAT foi denominado Chatico (veja a Figura 6).
Como o BingeChat, o Chatico é baseado no aplicativo OMEMO Instant Messenger e é troianizado com o GravityRAT. O Chatico foi provavelmente distribuído por meio do site chatico.co[.]uk e também se comunicou com um servidor C&C. Os domínios do site e do servidor C&C agora estão off-line.
De agora em diante, vamos nos concentrar apenas na campanha ativa que usa o aplicativo BingeChat, que tem a mesma funcionalidade maliciosa do Chatico.
Atribuição
O grupo por trás do malware permanece desconhecido, embora os pesquisadores do Facebook atribuam o GravityRAT a um grupo baseado no Paquistão, assim como o Cisco Talos. Rastreamos o grupo internamente com o nome de SpaceCobra e atribuímos as campanhas BingeChat e Chatico a esse grupo.
A funcionalidade maliciosa típica do GravityRAT está associada a um trecho específico de código que, em 2020, a Kaspersky atribuiu a um grupo que usava variantes do Windows do GravityRAT.
Em 2021, a Cyble publicou uma análise de outra campanha do GravityRAT que mostrou os mesmos padrões do BingeChat, como um vetor de distribuição semelhante para o cavalo de Troia mascarado como um aplicativo de bate-papo legítimo, que nesse caso era o SoSafe Chat, o uso do código OMEMO IM e a mesma funcionalidade mal-intencionada. A Figura 6 mostra uma comparação de classes maliciosas entre a amostra do GravityRAT analisada pelo Cyble e a nova amostra contida no BingeChat. Com base nessa comparação, podemos afirmar com alta confiança que o código malicioso do BingeChat pertence à família de malware GravityRAT.
Análise técnica
Após a inicialização, o aplicativo solicita que o usuário ative todas as permissões necessárias para funcionar corretamente, conforme mostrado na Figura 8. Exceto pela permissão para ler registros de chamadas, as outras permissões solicitadas são típicas de qualquer aplicativo de mensagens, portanto, o usuário do dispositivo pode não se alarmar quando o aplicativo as solicita.
Como parte da funcionalidade legítima, o aplicativo oferece opções para criar uma conta e fazer login. Antes que o usuário faça login no aplicativo, o GravityRAT começa a interagir com seu servidor C&C, filtrando os dados do usuário do dispositivo e aguardando a execução dos comandos. O GravityRAT é capaz de se exfiltrar:
- Registros de chamadas;
- Lista de contatos;
- Mensagens SMS;
- Arquivos com extensões específicas: jpg, jpeg, log, png, PNG, JPG, JPG, JPEG, txt, pdf, xml, doc, xls, xlsx, ppt, pptx, docx, opus, crypt14, crypt12, crypt13, crypt18, crypt32;
- Localização do dispositivo;
- Informações básicas do dispositivo.
Os dados a serem exfiltrados são armazenados em arquivos de texto em mídia externa, depois extraídos para o servidor C&C e finalmente excluídos. A Figura 9 mostra como os caminhos dos arquivos para os dados são listados em etapas.
Essa versão do GravityRAT tem duas pequenas atualizações em comparação com as versões anteriores conhecidas publicamente do GravityRAT. Primeiro, ela amplia a lista de arquivos a serem exfiltrados para aqueles com as extensões crypt14, crypt12, crypt13, crypt18 e crypt32. Esses arquivos criptografados são backups criados pelo WhatsApp Messenger. Em segundo lugar, você pode receber três comandos de um servidor C&C para executar:
- DeleteAllFiles - exclui arquivos com uma extensão específica, extraídos do dispositivo;
- DeleteAllContacts - exclui a lista de contatos;
- DeleteAllCallLogs - exclui os registros de chamadas.
Esses são comandos muito específicos que normalmente não são vistos em malwares para Android. As versões anteriores do GravityRAT para Android não podiam receber comandos; elas só podiam fazer upload dos dados extraídos para um servidor C&C em um horário específico.
O GravityRAT contém dois subdomínios de C&C codificados, mostrados na Figura 10; no entanto, ele é codificado para usar apenas o primeiro (httpks://dev.androidadbserver[.]com).
Esse servidor C&C é contatado para registrar um novo dispositivo comprometido e para recuperar dois endereços C&C adicionais que, no momento do teste, eram https://cld.androidadbserver[.]com e https://ping.androidadbserver[.]com, conforme mostrado na Figura 11.
Novamente, apenas o primeiro servidor C&C é usado, desta vez para carregar os dados do usuário do dispositivo, conforme mostrado na Figura 12.
Conclusão
Conhecido por estar ativo desde pelo menos 2015, o grupo SpaceCobra ressuscitou o GravityRAT, ampliando sua funcionalidade para exfiltrar backups do WhatsApp Messenger e receber comandos de um servidor C&C para excluir arquivos. Como antes, essa campanha usa aplicativos de mensagens como isca para distribuir o backdoor do GravityRAT. O grupo por trás desse malware usa o código do aplicativo legítimo de mensagens instantâneas chamado OMEMO para fornecer a funcionalidade de bate-papo nos aplicativos maliciosos de mensagens BingeChat e Chatico.
De acordo com a telemetria da ESET, um usuário na Índia foi atacado com a versão atualizada desse RAT usando o aplicativo Chatico como um chamariz e a campanha compartilha recursos com outras campanhas documentadas anteriormente. A versão do BingeChat é distribuída por meio de um site que requer registro, provavelmente aberto apenas quando os atacantes esperam que vítimas específicas o visitem, possivelmente com um determinado endereço IP, geolocalização, um URL personalizado ou dentro de um período de tempo específico. De qualquer forma, acreditamos que a campanha é altamente direcionada.
Indicadores de comprometimento
Arquivos
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. |
Rede
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. |
Rotas
Os dados para exfiltração são apresentados nas seguintes rotas:
/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 do MITRE ATT&CK
Esta tabela foi criada usando a versão 13 do 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. |