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

Figura 1. Site que distribui o aplicativo malicioso de mensagens BingeChat.

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.

Figura 2: O serviço atualmente não fornece registros.

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

Figura 3. Nome de domínio de distribuição mencionado no aplicativo BingeChat.

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.

Figura 4. Log gerado pela ferramenta HTTrack e registrado no código HTML do site usado para distribuição.

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.

Figura 5. Mecanismo de distribuição do GravityRAT.

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

Figura 6. Tela de login do Chatico.

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.

Figura 7: Comparação dos nomes de classe do cavalo de Troia que se disfarça de aplicativos legítimos SoSafe Chat (esquerda) e BingeChat (direita).

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.

Figura 8: Permissões solicitadas pelo BingeChat.

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.

Figura 9: Caminho dos arquivos de dados preparados para exfiltração.

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

Figura 10: Servidores C&C iniciais codificados.

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.

Figura 11. Comunicação com o C&C para registrar um novo dispositivo.

Novamente, apenas o primeiro servidor C&C é usado, desta vez para carregar os dados do usuário do dispositivo, conforme mostrado na Figura 12.

Figura 12. Exfiltração de dados da vítima para o servidor C&C.

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.