Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
mali-pagecache-root — TCL 50C721 (RTD1319 / Mali-G31) 루트 툴킷 — 자율 CVE-2022-22706 익스플로잇 체인 | Kitploit
도구/GitLabGitLab/c4psu13/mali-pagecache-root
Android SecurityEmbedded Systems SecurityPrivilege EscalationPersistence MechanismsExploitationShellcodePost-ExploitationHardware & IoT SecurityPayload DevelopmentBinary Exploitation
GitLab
21일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
c4psu13/mali-pagecache-root

mali-pagecache-root

TCL 50C721 (RTD1319 / Mali-G31) 루트 툴킷 — 자율 CVE-2022-22706 익스플로잇 체인

저장소 보기

TCL 50C721 루팅 툴킷

하나의 TCL Android TV 펌웨어에서 테더링 루트, SELinux Permissive, 광고 차단, 디블로트 및 자동 백업을 위한 전체 루트 익스플로잇 체인 및 포스트 루트 툴킷입니다. 이는 펌웨어 특정 리서치 및 툴링이며, 범용 TCL 루트 도구나 지원되는 설치 프로그램이 아닙니다.

테스트 범위

항목기록된 테스트 유닛
TVTCL QLED 50C721 / BeyondTV6
펌웨어V8-R51MT02-LF1V903, 빌드 AR10
Android / 커널Android 11 / 4.14.198+
SoC / GPURealtek RTD1319 / Mali-G31 (Bifrost, kbase r28p0)
사용자 공간32비트 ARMv7
보고된 보안 패치2024-03-05
과거 결과uid=0인 ADB 셸; SELinux Permissive

이 모델/펌웨어 조합만이 성공 결과가 기록되어 있습니다. 정확한 SoC 식별과 Mali 드라이버 리비전은 원본 기록에서 일관되지 않습니다. 호환성 제한을 참조하세요. 이 소스 릴리스를 준비하는 동안 새로운 루팅 테스트는 수행되지 않았습니다.

기능

익스플로잇 체인 (auto_root)

자율 루트 바이너리(auto_root.c)는 권한 없는 앱 컨텍스트에서 2초 이내에 uid=0을 달성합니다:

  1. 1단계 — CVE-2022-22706 (Mali GPU 페이지 캐시 쓰기): KBASE_IOCTL_MEM_IMPORT를 통해 libc.so의 __cxa_atexit 페이지에 대한 MAP_SHARED 매핑을 GPU 사용자 버퍼로 가져옵니다. mremap(MREMAP_FIXED)를 사용하여 파일 매핑을 교체합니다. 페이지 캐시의 __cxa_atexit 위에 112바이트 Thumb-2 셸코드를 씁니다 (디스크의 파일은 수정되지 않음 — dm-verity로 보호됨).

  2. 3단계 — 자연 트리거: 모든 새로운 C++ 프로세스는 CRT 초기화 중에 __cxa_atexit()를 호출하여 셸코드를 실행합니다. 권한 있는 도메인(audioserver, rtkm_scene)이 /dev/rtkmem을 통해 물리 페이지 0x1DE7000을 매핑하고 selinux_state.enforcing = 0을 씁니다.

  3. 4a단계 — 직접 자격 증명 수정: SELinux Permissive 상태에서 /dev/rtkmem을 통한 물리 메모리 읽기로 커널 task_struct 연결 리스트를 순회합니다. comm[]을 일치시켜 우리 프로세스를 찾고, cred 구조체를 uid=0 및 init_cred의 전체 권한으로 덮어씁니다. zygote의 BPF seccomp 필터를 우회하기 위해 TIF_SECCOMP를 지웁니다.

  4. 4b단계 — 시스템 강화: 광고 차단 hosts를 바인드 마운트하고, 텔레메트리 IP를 차단하는 iptables 규칙을 삭제하고, 28개의 블로트웨어 패키지를 비활성화하고, 부팅 지속성을 위해 APP_AUTO_START를 부여하고, 셸코드를 비활성화하고, SELinux를 Enforcing으로 다시 강제합니다.

독립 실행형 단계

두 개의 독립 실행형 프로그램(root_cve22706.c, libc_rtkmem_patch2.c)은 동일한 CVE-2022-22706 페이지 캐시 쓰기 프리미티브를 별도의 테더링 루트 단계로 구현하며, 수동 ADB 루팅 및 익스플로잇 원리의 이해에 유용합니다.

스크립트

  • scripts/root.sh — ADB 자동화: TV에 연결하고, 두 독립 실행형 단계를 실행하고, 루트 + SELinux 상태를 검증합니다.
  • scripts/post_root.sh — 강화 후 auto_root가 호출하는 포스트 루트 훅. 전체 기기 백업을 생성합니다: 사이드로드된 APK, 앱 데이터, WiFi 구성, 모든 설정, 패키지 목록. 최근 5개 백업으로 자동 정리됩니다.

포함 내용

  • 기술 요약: 체인, 부작용 및 증거 한계.
  • 네이티브 소스 및 빌드 노트: 자율 루트 + 두 독립 실행형 단계; 사전 빌드된 실행 파일 없음.
  • 호환성 제한: 다른 기기를 고려하기 전에 확립해야 할 사항.
  • 복구 노트: 모델별 과거 USB 복구 및 경고.
  • 커널 소스 발췌: 지원 분석용이며 빌드 종속성이 아님.

APK 또는 재현 가능한 APK 애플리케이션 프로젝트는 포함되지 않습니다. 여기에는 한 번 설치하면 자동 부팅되는 릴리스가 없습니다. 자율 루트 바이너리는 APK의 네이티브 코드에서 호출되도록 설계되었지만, APK 래퍼는 이 릴리스의 일부가 아닙니다.

빠른 시작

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

사용을 고려하기 전에

소유하고 있거나 평가가 명시적으로 승인된 하드웨어에서만 사용하십시오. 먼저 모든 C 파일과 펌웨어별 가정을 검토하십시오. 데이터를 보존하고, 일치하는 것으로 알려진 복구 이미지와 절차를 독립적으로 확보하십시오. ADB를 신뢰할 수 없는 네트워크에 노출하지 마십시오. 재부팅하면 휘발성 패치(page-cache, bind mounts, iptables)는 제거되지만, 패키지 비활성화와 APP_AUTO_START는 유지됩니다.

이 프로젝트를 기반으로 패치된 boot 또는 vbmeta 이미지를 플래싱하지 마십시오. 과거 두 차례의 시도에서 부트루프가 발생했으며, 영구 루트 방식이나 범용 복구 보장은 확립되지 않았습니다.

라이선스

모든 원본 코드는 MIT입니다. 커널 발췌본(kernel/mem.c)은 GPL-2.0 라이선스와 저작권 고지를 유지합니다. 저작자 표시 및 업스트림 참조는 LICENSE와 provenance를 참조하십시오.

도구 다운로드