Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
mali-pagecache-root — Kit de herramientas de root para TCL 50C721 (RTD1319 / Mali-G31) — cadena de explotación autónoma de CVE-2022-22706 | Kitploit
Herramientas/GitLabGitLab/c4psu13/mali-pagecache-root
Seguridad AndroidSeguridad de Sistemas EmbebidosEscalada de PrivilegiosMecanismos de PersistenciaExplotaciónShellcodePost-ExplotaciónSeguridad de Hardware e IoTDesarrollo de PayloadsExplotación de Binarios
GitLab
2hace 15h 8mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
c4psu13/mali-pagecache-root

mali-pagecache-root

Kit de herramientas de root para TCL 50C721 (RTD1319 / Mali-G31) — cadena de explotación autónoma de CVE-2022-22706

Ver Repositorio

Kit de rooting para TCL 50C721

Cadena de explotación completa para root y kit de herramientas posterior al root para root con conexión por cable, SELinux Permissive, bloqueo de anuncios, debloat y copia de seguridad automatizada en un firmware concreto de TCL Android TV. Se trata de investigación y herramientas específicas para un firmware, no de una herramienta universal de root para TCL ni de un instalador compatible.

Alcance probado

ElementoUnidad de prueba registrada
TVTCL QLED 50C721 / BeyondTV6
FirmwareV8-R51MT02-LF1V903, compilación AR10
Android / kernelAndroid 11 / 4.14.198+
SoC / GPURealtek RTD1319 / Mali-G31 (Bifrost, kbase r28p0)
Espacio de usuarioARMv7 de 32 bits
Parche de seguridad declarado2024-03-05
Resultado históricoShell ADB con uid=0; SELinux Permissive

Solo esta combinación de modelo/firmware tiene un resultado exitoso registrado. La identificación exacta del SoC y la revisión del controlador Mali son inconsistentes entre los registros originales; consulte límites de compatibilidad. No se realizó ninguna prueba de rooting nueva durante la preparación de esta versión del código fuente.

Qué hace

Cadena de explotación (auto_root)

El binario autónomo de root (auto_root.c) obtiene uid=0 desde un contexto de aplicación sin privilegios en menos de 2 segundos:

  1. Fase 1 — CVE-2022-22706 (escritura en la caché de páginas de la GPU Mali): Importa una asignación MAP_SHARED de la página __cxa_atexit de libc.so como búfer de usuario de la GPU mediante KBASE_IOCTL_MEM_IMPORT. Usa mremap(MREMAP_FIXED) para reemplazar la asignación del archivo. Escribe shellcode Thumb-2 de 112 bytes sobre __cxa_atexit en la caché de páginas (el archivo en disco no se modifica — protegido por dm-verity).

  2. Fase 3 — Disparador natural: Cada nuevo proceso C++ llama a __cxa_atexit() durante la inicialización del CRT, ejecutando el shellcode. Un dominio privilegiado (audioserver, rtkm_scene) mapea la página física 0x1DE7000 mediante /dev/rtkmem y escribe selinux_state.enforcing = 0.

  3. Fase 4a — Modificación directa de credenciales: Con SELinux en modo Permissive, recorre la lista enlazada de task_struct del kernel mediante lecturas de memoria física a través de /dev/rtkmem. Encuentra nuestro proceso haciendo coincidir comm[], sobrescribe la estructura cred con uid=0 y todas las capacidades de init_cred. Borra TIF_SECCOMP para eludir el filtro seccomp BPF del zygote.

  4. Fase 4b — Endurecimiento del sistema: Monta mediante bind-mount hosts de bloqueo de anuncios, elimina reglas de iptables que bloquean IPs de telemetría, desactiva 28 paquetes de bloatware, concede APP_AUTO_START para persistencia en el arranque, desactiva el shellcode y vuelve a poner SELinux en Enforcing.

Etapas independientes

Los dos programas independientes (root_cve22706.c, libc_rtkmem_patch2.c) implementan la misma primitiva de escritura en la caché de páginas de CVE-2022-22706 como etapas separadas de root con conexión por cable, útiles para el rooting manual por ADB y para comprender la primitiva de explotación.

Scripts

  • scripts/root.sh — Automatización por ADB: se conecta a la TV, ejecuta ambas etapas independientes y verifica el estado de root + SELinux.
  • scripts/post_root.sh — Hook posterior al root invocado por auto_root tras el endurecimiento. Crea copias de seguridad completas del dispositivo: APKs instalados por sideload, datos de aplicaciones, configuración de WiFi, todos los ajustes y listas de paquetes. Elimina automáticamente hasta conservar las 5 copias de seguridad más recientes.

Incluido

  • Resumen técnico: cadena, efectos secundarios y límites de la evidencia.
  • Código fuente nativo y notas de compilación: root autónomo + dos etapas independientes; sin ejecutables precompilados.
  • Límites de compatibilidad: qué debe establecerse antes de considerar otro dispositivo.
  • Notas de recuperación: recuperación USB histórica específica del modelo y advertencias.
  • Extracto del código fuente del kernel: análisis de apoyo, no una dependencia de compilación.

No se incluye ningún APK ni proyecto de aplicación APK reproducible; aquí no hay una versión de instalación única con arranque automático. El binario autónomo de root está diseñado para ser invocado desde el código nativo de un APK, pero el envoltorio APK no forma parte de esta versión.

Inicio 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 su uso

Úselo únicamente en hardware que posea o que esté explícitamente autorizado a evaluar. Revise primero todos los archivos C y cada suposición específica del firmware. Conserve los datos y obtenga de forma independiente una imagen de recuperación compatible conocida y su procedimiento. No exponga ADB a una red no confiable. El reinicio elimina los parches volátiles (caché de páginas, montajes bind, iptables), pero las desactivaciones de paquetes y APP_AUTO_START persisten.

No flashee imágenes de boot o vbmeta parcheadas basadas en este proyecto. Dos intentos históricos provocaron bootloops; no se estableció ni un método de root persistente ni una garantía de recuperación universal.

Licencia

MIT para todo el código original. El extracto del kernel (kernel/mem.c) conserva su licencia GPL-2.0 y sus avisos de copyright. Consulte LICENSE y provenance para la atribución y las referencias upstream.

Descargar herramienta