Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
mali-pagecache-root — Toolkit di root per TCL 50C721 (RTD1319 / Mali-G31) — catena di exploit autonoma per CVE-2022-22706 | Kitploit
Strumenti/GitLabGitLab/c4psu13/mali-pagecache-root
Sicurezza AndroidSicurezza Sistemi EmbeddedEscalation di PrivilegiMeccanismi di PersistenzaExploitShellcodePost-ExploitSicurezza Hardware e IoTSviluppo PayloadBinary Exploitation
GitLab
21 giorno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
c4psu13/mali-pagecache-root

mali-pagecache-root

Toolkit di root per TCL 50C721 (RTD1319 / Mali-G31) — catena di exploit autonoma per CVE-2022-22706

Vedi Repository

Toolkit di rooting per TCL 50C721

Catena completa di exploit per il root e toolkit post-root per root vincolato (tethered), SELinux Permissive, blocco degli annunci, debloat e backup automatizzato su un firmware TCL Android TV. Si tratta di ricerca e strumenti specifici per un firmware, non di uno strumento universale per il root di TCL né di un installer supportato.

Ambito testato

VoceUnità di test registrata
TVTCL QLED 50C721 / BeyondTV6
FirmwareV8-R51MT02-LF1V903, build AR10
Android / kernelAndroid 11 / 4.14.198+
SoC / GPURealtek RTD1319 / Mali-G31 (Bifrost, kbase r28p0)
UserspaceARMv7 a 32 bit
Patch di sicurezza dichiarata2024-03-05
Risultato storicoShell ADB con uid=0; SELinux Permissive

Solo questa combinazione modello/firmware ha un risultato positivo registrato. L'identificazione esatta del SoC e la revisione del driver Mali sono incoerenti nei documenti originali; vedi limiti di compatibilità. Durante la preparazione di questa release del codice sorgente non è stato eseguito alcun nuovo test di rooting.

Cosa fa

Catena di exploit (auto_root)

Il binario autonomo per il root (auto_root.c) ottiene uid=0 da un contesto applicativo non privilegiato in meno di 2 secondi:

  1. Fase 1 — CVE-2022-22706 (scrittura nella page cache della GPU Mali): importa un mapping MAP_SHARED della pagina __cxa_atexit di libc.so come buffer utente GPU tramite KBASE_IOCTL_MEM_IMPORT. Usa mremap(MREMAP_FIXED) per sostituire il mapping del file. Scrive 112 byte di shellcode Thumb-2 sopra __cxa_atexit nella page cache (il file su disco resta inalterato — protetto da dm-verity).

  2. Fase 3 — Trigger naturale: ogni nuovo processo C++ chiama __cxa_atexit() durante l'inizializzazione della CRT, eseguendo lo shellcode. Un dominio privilegiato (audioserver, rtkm_scene) mappa la pagina fisica 0x1DE7000 tramite /dev/rtkmem e scrive selinux_state.enforcing = 0.

  3. Fase 4a — Modifica diretta delle credenziali: con SELinux Permissive, percorre la lista concatenata dei task_struct del kernel tramite letture della memoria fisica attraverso /dev/rtkmem. Individua il nostro processo confrontando comm[], sovrascrive la struct cred con uid=0 e le capability complete da init_cred. Cancella TIF_SECCOMP per aggirare il filtro seccomp BPF dello zygote.

  4. Fase 4b — Hardening del sistema: esegue il bind-mount degli hosts per il blocco degli annunci, rimuove le regole iptables che bloccano gli IP di telemetria, disabilita 28 pacchetti bloatware, concede APP_AUTO_START per la persistenza all'avvio, disattiva lo shellcode e riporta SELinux a Enforcing.

Fasi autonome

I due programmi autonomi (root_cve22706.c, libc_rtkmem_patch2.c) implementano la stessa primitiva di scrittura nella page cache di CVE-2022-22706 come fasi separate di root vincolato, utili per il rooting manuale via ADB e per comprendere la primitiva dell'exploit.

Script

  • scripts/root.sh — Automazione ADB: si connette alla TV, esegue entrambe le fasi autonome, verifica lo stato di root e di SELinux.
  • scripts/post_root.sh — Hook post-root richiamato da auto_root dopo l'hardening. Crea backup completi del dispositivo: APK sideloaded, dati delle app, configurazione WiFi, tutte le impostazioni, elenchi dei pacchetti. Mantiene automaticamente solo i 5 backup più recenti.

Contenuti

  • Riepilogo tecnico: catena, effetti collaterali e limiti delle prove.
  • Codice sorgente nativo e note di build: root autonomo + due fasi autonome; nessun eseguibile precompilato.
  • Limiti di compatibilità: cosa deve essere stabilito prima di considerare un altro dispositivo.
  • Note di ripristino: ripristino USB storico specifico per il modello e avvertenze.
  • Estratto del codice sorgente del kernel: analisi di supporto, non una dipendenza di build.

Non è incluso alcun APK né progetto applicativo APK riproducibile; qui non esiste una release installa-una-volta con avvio automatico. Il binario autonomo per il root è progettato per essere richiamato dal codice nativo di un APK, ma il wrapper APK non fa parte di questa release.

Avvio rapido

# 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>

Prima di considerarne l'uso

Utilizzare solo su hardware di propria proprietà o per il quale si è esplicitamente autorizzati a effettuare valutazioni. Rivedere prima tutti i file C e ogni assunzione specifica del firmware. Preservare i dati e ottenere in modo indipendente un'immagine di ripristino e una procedura di ripristino note e corrispondenti. Non esporre ADB a una rete non attendibile. Il riavvio rimuove le patch volatili (page-cache, bind mount, iptables), ma le disabilitazioni dei pacchetti e APP_AUTO_START persistono.

Non eseguire il flash di immagini boot o vbmeta patchate basate su questo progetto. Due tentativi storici hanno causato bootloop; non è stato stabilito né un metodo di root persistente né una garanzia di ripristino universale.

Licenza

MIT per tutto il codice originale. L'estratto del kernel (kernel/mem.c) mantiene la sua licenza GPL-2.0 e le note di copyright. Vedere LICENSE e provenance per l'attribuzione e i riferimenti upstream.

Scarica lo strumento