Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
mali-pagecache-root — Kit de ferramentas de root para TCL 50C721 (RTD1319 / Mali-G31) — cadeia de exploração autónoma CVE-2022-22706 | Kitploit
Ferramentas/GitLabGitLab/c4psu13/mali-pagecache-root
Segurança AndroidSegurança de Sistemas EmbarcadosEscalada de PrivilégiosMecanismos de PersistênciaExploraçãoShellcodePós-ExploraçãoSegurança de Hardware e IoTDesenvolvimento de PayloadsExploração de Binários
GitLab
2há 15h 8mAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
c4psu13/mali-pagecache-root

mali-pagecache-root

Kit de ferramentas de root para TCL 50C721 (RTD1319 / Mali-G31) — cadeia de exploração autónoma CVE-2022-22706

Ver Repositório

TCL 50C721 rooting toolkit

Cadeia completa de exploit de root e toolkit pós-root para root vinculado (tethered), SELinux Permissive, bloqueio de anúncios, debloat e backup automatizado em um firmware de TCL Android TV. Trata-se de pesquisa e ferramental específicos de firmware, não de uma ferramenta universal de root para TCL nem de um instalador suportado.

Escopo testado

ItemUnidade de teste registrada
TVTCL QLED 50C721 / BeyondTV6
FirmwareV8-R51MT02-LF1V903, build AR10
Android / kernelAndroid 11 / 4.14.198+
SoC / GPURealtek RTD1319 / Mali-G31 (Bifrost, kbase r28p0)
Userspace32-bit ARMv7
Patch de segurança reportado2024-03-05
Resultado históricoShell ADB com uid=0; SELinux Permissive

Apenas esta combinação de modelo/firmware possui um resultado bem-sucedido registrado. A identificação exata do SoC e a revisão do driver Mali são inconsistentes nos registros originais; consulte limites de compatibilidade. Nenhum teste de root novo foi realizado durante a preparação desta versão do código-fonte.

O que ele faz

Cadeia de exploit (auto_root)

O binário autônomo de root (auto_root.c) obtém uid=0 a partir de um contexto de app sem privilégios em menos de 2 segundos:

  1. Fase 1 — CVE-2022-22706 (escrita no page cache da GPU Mali): Importa um mapeamento MAP_SHARED da página __cxa_atexit da libc.so como buffer de usuário da GPU via KBASE_IOCTL_MEM_IMPORT. Usa mremap(MREMAP_FIXED) para substituir o mapeamento do arquivo. Escreve shellcode Thumb-2 de 112 bytes sobre __cxa_atexit no page cache (arquivo em disco inalterado — protegido por dm-verity).

  2. Fase 3 — Gatilho natural: Todo novo processo C++ chama __cxa_atexit() durante a inicialização do CRT, executando o shellcode. Um domínio privilegiado (audioserver, rtkm_scene) mapeia a página física 0x1DE7000 via /dev/rtkmem e escreve selinux_state.enforcing = 0.

  3. Fase 4a — Modificação direta de credenciais: Com o SELinux em Permissive, percorre a lista encadeada de task_struct do kernel por meio de leituras de memória física via /dev/rtkmem. Localiza nosso processo comparando comm[], sobrescreve a struct cred com uid=0 e capacidades completas a partir de init_cred. Limpa TIF_SECCOMP para contornar o filtro seccomp BPF do zygote.

  4. Fase 4b — Endurecimento do sistema: Faz bind-mount de hosts de bloqueio de anúncios, remove regras iptables que bloqueiam IPs de telemetria, desativa 28 pacotes de bloatware, concede APP_AUTO_START para persistência no boot, desativa o shellcode e reativa o SELinux para Enforcing.

Estágios autônomos

Os dois programas autônomos (root_cve22706.c, libc_rtkmem_patch2.c) implementam a mesma primitiva de escrita no page cache da CVE-2022-22706 como estágios separados de root vinculado, úteis para root manual via ADB e para compreender a primitiva do exploit.

Scripts

  • scripts/root.sh — Automação ADB: conecta à TV, executa ambos os estágios autônomos, verifica o estado de root + SELinux.
  • scripts/post_root.sh — Hook pós-root chamado pelo auto_root após o endurecimento. Cria backups completos do dispositivo: APKs instalados por sideload, dados de apps, configuração de WiFi, todas as configurações, listas de pacotes. Remove automaticamente, mantendo apenas os 5 backups mais recentes.

Incluído

  • Resumo técnico: cadeia, efeitos colaterais e limites das evidências.
  • Código-fonte nativo e notas de build: root autônomo + dois estágios autônomos; sem executáveis pré-compilados.
  • Limites de compatibilidade: o que deve ser estabelecido antes de considerar outro dispositivo.
  • Notas de recuperação: recuperação USB histórica específica do modelo e avisos.
  • Trecho do código-fonte do kernel: análise de apoio, não uma dependência de build.

Nenhum APK ou projeto de aplicação APK reproduzível está incluído; não há aqui uma versão de instalação única com boot automático. O binário autônomo de root foi projetado para ser chamado a partir do código nativo de um APK, mas o wrapper APK não faz parte desta versão.

Início rápido

# Build (requires Android NDK)
cd exploit && make

# Push to TV
adb connect <TV_IP>:5555
adb push bin/auto_root /data/local/tmp/
adb push bin/root_cve22706 /data/local/tmp/
adb push bin/libc_rtkmem_patch2 /data/local/tmp/

# Option A: Run the autonomous chain (includes hardening + backup)
adb shell /data/local/tmp/auto_root

# Option B: Manual two-stage root via script
bash scripts/root.sh <TV_IP>

Antes de considerar o uso

Use apenas em hardware que você possui ou está explicitamente autorizado a avaliar. Revise todos os arquivos C e cada suposição específica de firmware primeiro. Preserve os dados e obtenha de forma independente uma imagem de recuperação compatível conhecida e o procedimento correspondente. Não exponha o ADB a uma rede não confiável. A reinicialização remove os patches voláteis (page-cache, bind mounts, iptables), mas as desativações de pacotes e APP_AUTO_START persistem.

Não grave imagens de boot ou vbmeta modificadas com base neste projeto. Duas tentativas históricas resultaram em bootloop; nem um método de root persistente nem uma garantia universal de recuperação foram estabelecidos.

Licença

MIT para todo o código original. O trecho do kernel (kernel/mem.c) mantém sua licença GPL-2.0 e avisos de copyright. Consulte LICENSE e provenance para atribuição e referências upstream.

Baixar ferramenta