Backdoor Android em nível de firmware via libandroid_runtime Zygote Injection

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks

Visão geral

A adulteração na cadeia de suprimentos de /system/lib[64]/libandroid_runtime.so pode sequestrar android.util.Log.println_native de modo que todo app forked a partir do Zygote execute código do atacante. O backdoor Keenadu adiciona uma única chamada dentro de println_native que dispara um dropper nativo. Como todos os processos de apps executam esse código, os limites do sandbox do Android e as permissões por app são efetivamente contornados.

Rota do dropper: patch nativo → RC4 → DexClassLoader

  • Entrada hookada: chamada extra dentro de println_native para __log_check_tag_count (injected static lib libVndxUtils.a).
  • Armazenamento do payload: blob criptografado com RC4 embutido no .so, drop para /data/dalvik-cache/arm[64]/system@framework@vndx_10x.jar@classes.jar.
  • Carregar & executar: DexClassLoader carrega o jar e invoca com.ak.test.Main.main. Runtime logs usam tag AK_CPP (artefato de triagem).
  • Anti-análise: aborta em apps de sistema Google/Sprint/T-Mobile ou se arquivos kill-switch existirem.
  • Divisão de papéis do Zygote:
  • Em system_server → instancia AKServer.
  • Em qualquer outro app → instancia AKClient.

Backdoor client/server baseado em Binder

  • AKServer (rodando em system_server) envia broadcasts protegidos:
  • com.action.SystemOptimizeService → interface binder para clientes.
  • com.action.SystemProtectService → interface binder para módulos baixados.
  • AKClient (dentro de cada app) recebe a interface via broadcast e realiza uma transação attach, passando um wrapper IPC para que o servidor possa carregar DEX arbitrário dentro do processo do app atual.
  • Operações privilegiadas expostas (via SystemProtectService): conceder/revogar qualquer permissão para qualquer pacote, recuperar geolocalização e exfiltrar informações do dispositivo. Isso centraliza o bypass de privilégios enquanto ainda executa código em apps alvo escolhidos (Chrome, YouTube, launcher, apps de compras, etc.).

Estágios C2, criptografia e gating

  • Descoberta de host: decodificar Base64 → descompactar gzip → descriptografar AES-128-CFB com a chave MD5("ota.host.ba60d29da7fd4794b5c5f732916f7d5c"), IV "0102030405060708".
  • Registro da vítima: coleta IMEI/MAC/modelo/SO, criptografa com a chave MD5("ota.api.bbf6e0a947a5f41d7f5226affcfd858c"), POST para /ak/api/pts/v4 com params m=MD5(IMEI) e n=w|m (tipo de rede). O campo data na resposta é cifrado da mesma forma.
  • Atraso de ativação: o C2 entrega módulos somente após ~2,5 meses desde um “tempo de ativação” na requisição, dificultando detonações em sandbox.
  • Container de módulo (proprietário):
struct KeenaduPayload {
int32_t  version;
uint8_t  padding[0x100];
uint8_t  salt[0x20];
KeenaduChunk config;   // size + data
KeenaduChunk payload;  // size + data
KeenaduChunk signature;// size + data
} __packed;
  • Integridade: MD5 file check + DSA signature (only operator with private key can issue modules).
  • Descriptografia: AES-128-CFB, key MD5("37d9a33df833c0d6f11f1b8079aaa2dc" + salt), IV "0102030405060708".

Persistência & dicas forenses

  • Inserção na cadeia de suprimentos: biblioteca estática maliciosa libVndxUtils.a linked into libandroid_runtime.so durante a compilação (e.g., vendor/mediatek/proprietary/external/libutils/arm[64]/libVndxUtils.a).
  • Auditoria de firmware: firmware images ship as Android Sparse super.img; use lpunpack (or similar) to extract partitions and inspect libandroid_runtime.so for extra calls in println_native.
  • Artefatos no dispositivo: presença de /data/dalvik-cache/arm*/system@framework@vndx_10x.jar@classes.jar, logcat tag AK_CPP, ou broadcasts protegidos nomeados com.action.SystemOptimizeService/com.action.SystemProtectService indicam comprometimento.

Referências

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporte o HackTricks