Malware Android RatHat abusa do ADB local para manter acesso shell após desinstalação

Malware Android RatHat abusa do ADB local para manter acesso shell após desinstalação

Campanha avaliada como de origem chinesa combina smishing, malvertising, abuso de Accessibility e túnel reverso FRP para manter persistência fora do ciclo de vida do aplicativo, com uso de IA generativa para navegação autônoma na tela.

ComponenteMalware Android RatHat, composto por aplicativo dropper, agente nativo em Go disfarçado de biblioteca ("liblocal-service.so") e cliente de proxy reverso FRP
VetorSmishing direcionado e malvertising conduzindo a portais de download de terceiros que distribuem APKs maliciosos; pipeline de infecção em múltiplas etapas com abuso de Accessibility e auto-pareamento local do ADB
ImpactoExecução com privilégios de shell fora do sandbox Android, persistência sobrevivente à desinstalação, captura de tela, interceptação de SMS, keylogger de hardware, coleta de credenciais, PIN/padrão/senha, arquivos, URLs digitadas e reinstalação remota do malware
PrioridadeBloquear instalação de APKs fora de lojas oficiais, auditar permissões de Accessibility e depuração sem fio habilitada, e monitorar túneis reversos FRP e processos nativos executando como shell
ArtefatosQuatro técnicas antianálise: container tampering com manipulação de estrutura ZIP, manifest bomb com chunk 0x9999 em AndroidManifest.xml, DEX bytecode poisoning com element_width inválido e dupla criptografia de strings via StringCrypto: Base64
Resumo técnico

Uma nova família de malware Android denominada RatHat foi identificada por pesquisadores de segurança móvel, com avaliação de que a operação está ligada a atores de ameaça baseados na China. O diferencial técnico da amostra está na combinação de abuso do serviço de Accessibility com auto-pareamento autônomo do Android Debug Bridge (ADB) em modo local, o que permite ao código malicioso romper o sandbox padrão do sistema operacional e executar daemons nativos independentes com privilégios de shell, fora do ciclo de vida gerenciado pelo Android para aplicativos.

A distribuição ocorre principalmente por smishing direcionado e campanhas de malvertising que conduzem as vítimas a portais de download de terceiros que se passam por lojas legítimas, além de fóruns que induzem a instalação de APKs contaminados. Esses pacotes atuam como dropper do payload principal e incorporam múltiplas camadas de verificações antianálise e antidepuração para dificultar a detecção em pipelines automatizados de sandbox, o que explica parte da capacidade de evasão observada na campanha.

Fluxo técnico

Após a instalação, o APK dropper solicita permissões críticas, em especial o acesso aos serviços de Accessibility. Com esse privilégio, o malware manipula a interface do sistema para desbloquear as Opções do Desenvolvedor, habilitar a Depuração sem Fio (Wireless Debugging) e extrair o código de pareamento ADB de seis dígitos exibido ao usuário. Esse auto-pareamento local concede ao agente um canal ADB que não depende do aplicativo original, viabilizando execução de comandos com privilégios de shell, isenção de gerenciamento de energia e instalação de componentes que escapam do sandbox.

A arquitetura é composta por três elementos: o aplicativo Android malicioso, um agente escrito em Go e um cliente de proxy reverso FRP. O agente Go se disfarça de biblioteca nativa com o nome "liblocal-service.so" e usa o acesso shell obtido via daemon ADB local para executar comandos e consolidar persistência. O cliente FRP, por sua vez, recupera a configuração do túnel diretamente do servidor de comando e controle (C2) e estabelece um túnel reverso persistente até o operador, que passa a ter acesso direto ao daemon ADB do dispositivo — um canal de propósito geral, independente do conjunto de funcionalidades do próprio malware.

Um aspecto notável é o uso de um assistente de IA generativa de grande popularidade como componente de decisão em tempo real. O malware serializa a árvore de Accessibility do dispositivo para XML e consulta o modelo para ações não maliciosas em si, porém operacionais: resolver as coordenadas centrais de um alvo nomeado na tela em JSON para direcionar cliques sintéticos, extrair o texto real exibido de um elemento a partir do XML e emitir comandos automáticos de navegação, como rolar para baixo. Esse laço de decisão com GenAI permite ao operador interagir com a interface de forma autônoma sem depender de coordenadas fixas.

  • Dropper APK com antidepuração conduz à obtenção de Accessibility
  • Accessibility é usada para habilitar Depuração sem Fio e extrair código de pareamento ADB
  • Daemon ADB local executa agente Go ("liblocal-service.so") com privilégios de shell
  • Cliente FRP cria túnel reverso persistente para o C2
  • Reinstalação remota é possível mesmo após desinstalação do aplicativo original
Superfície afetada

O alvo direto são dispositivos Android cujos usuários instalam aplicativos fora da loja oficial, induzidos por mensagens de SMS fraudulentas, anúncios maliciosos ou fóruns de terceiros. A superfície de coleta é ampla: o malware dispõe de sobreposições (overlays) exibidas sobre aplicativos específicos para colher credenciais, gravação de tela via API MediaProjection do Android, interceptação de mensagens SMS e substituição de tentativas de instalação legítimas por uma sobreposição falsa que imita uma falha da Google Play Store, induzindo o usuário a instalar pacotes adicionais.

Os comandos emitidos pelo C2 permitem coletar mensagens SMS, credenciais, arquivos, PIN, padrão ou senha de bloqueio de tela, capturas de tela, digitação de teclado — incluindo URLs digitadas na barra de endereço de navegadores — e a lista de aplicativos instalados. Há ainda um keylogger em nível de hardware, executado pelo agente Go, capaz de registrar toques físicos na tela, ampliando a captação para além do contexto de aplicativos individuais.

  • Usuários Android que instalam APKs de fontes não oficiais
  • Credenciais de aplicativos via overlays e keylogger de hardware
  • PIN, padrão e senha de bloqueio do dispositivo
  • SMS interceptados e capturas de tela via MediaProjection
  • URLs digitadas em navegadores e inventário de aplicativos instalados
Hunting e telemetria

Para equipes de segurança corporativa, os sinais mais distintivos estão na combinação de permissões e eventos de sistema raramente legítimos em conjunto: habilitação de Opções do Desenvolvedor e Depuração sem Fio imediatamente após concessão de Accessibility a um aplicativo de origem externa, extração de código de pareamento ADB e presença de processos nativos executando como usuário shell. O túnel reverso FRP gera tráfego de saída persistente para infraestrutura do operador, um indicador de rede relevante para monitoramento em dispositivos gerenciados.

No plano de engenharia reversa e análise automatizada, as quatro técnicas antianálise documentadas servem como pistas de triagem: manipulação de contêiner ZIP com arquivos declarados como diretórios ou com bit de criptografia ativado, chunk 0x9999 não documentado em AndroidManifest.xml que derruba pipelines automatizados, pseudo-instruções DEX com atributo element_width inválido que quebram desassembladores e criptografia dupla de strings via esquema StringCrypto com Base64. Ferramentas de análise que dependem de libziparchive ou desmontadores padrão podem falhar silenciosamente diante dessas amostras.

  • Concessão de Accessibility seguida de habilitação de Depuração sem Fio no mesmo dispositivo
  • Processo nativo rodando como shell com nome de biblioteca ("liblocal-service.so")
  • Conexões de saída persistentes compatíveis com túnel reverso FRP para C2
  • Falhas anômalas de desmontagem em APKs suspeitos (manifest bomb, DEX com element_width inválido)
  • Sobreposição que simula falha de instalação da Google Play Store
Mitigação

A resposta prioritária para ambientes corporativos é restringir a instalação de aplicativos de fontes desconhecidas por política de dispositivo, auditar quais aplicativos detêm permissão de Accessibility e investigar imediatamente qualquer dispositivo com Depuração sem Fio habilitada sem justificativa. Como a persistência sobrevive à desinstalação do aplicativo visível, remover o APK não encerra o comprometimento: é necessário desativar a depuração, revogar pareamentos ADB, inspecionar processos em execução como shell e, em casos confirmados, considerar restauração completa do dispositivo.

A investigação também destaca por que controles móveis baseados em assinatura são insuficientes diante de arquiteturas multiestágio com daemons fora do ciclo de vida do aplicativo e laços de decisão com IA generativa em tempo real. Defesas comportamentais, monitoramento de permissões sensíveis e visibilidade de tráfego de saída assumem papel central, complementadas por educação de usuários contra smishing e portais de download enganosos promovidos por malvertising.

  • Bloquear instalação de APKs fora de lojas oficiais por política de MDM
  • Auditar e restringir permissões de Accessibility por dispositivo
  • Investigar Depuração sem Fio e pareamentos ADB sem justificativa
  • Revogar pareamentos ADB e inspecionar processos shell em caso de comprometimento confirmado
  • Monitorar tráfego de saída persistente compatível com túneis FRP

Postar um comentário

0 Comentários