Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ghostlock-s26 — GhostLock (CVE-2026-43499) Galaxy S26 시리즈용 앱 | Kitploit
도구/GitHubGitHub/1ndevelopment/ghostlock-s26
Android SecurityPrivilege EscalationPersistence MechanismsExploitationMobile App PentestingPost-ExploitationMobile SecurityPayload Development
GitHub1ndevelopment/ghostlock-s26

ghostlock-s26

GhostLock (CVE-2026-43499) Galaxy S26 시리즈용 앱

저장소 보기
123일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

GhostLock - Android 래퍼 (indev.ghostlock.s26)

1ndevelopment/ghostlock-s26를 위한 원클릭 Android 래퍼: GhostLock (CVE-2026-43499)을 삼성 Galaxy S26 시리즈 전체 (Android 16 / GKI 6.12)에 포팅한 것입니다. APK 하나, 커널 라인 세 개, 런타임 파라미터 매칭 - 빌드별 앱 변형이 없습니다.

본인이 소유하거나 명시적으로 테스트 권한을 받은 기기에서만 사용하십시오. 임시 루트는 재부팅 시 사라집니다. 동일 부팅 세션에서 익스플로잇을 두 번 실행하면 기기가 충돌할 수 있습니다 - 재시도 전에 재부팅하십시오.

지원 범위: S26 패밀리 전체

익스플로잇은 개별 빌드가 아닌 커널 라인으로 매칭합니다 (exploit/src/params_table.c가 기준이며, ParamsTable.kt는 UI 판정용으로 이를 미러링합니다):

기기 코드명마케팅명SoC커널 라인
m1qGalaxy S26 (SM-S942x)Snapdragoncn 또는 intl (CSC 기준)
m2qGalaxy S26+ (SM-S947x)Snapdragoncn 또는 intl (CSC 기준)
m3qGalaxy S26 Ultra (SM-S948x)Snapdragoncn 또는 intl (CSC 기준)
m1sGalaxy S26 (SM-S942B)Exynosexynos
m2sGalaxy S26+ (SM-S947B)Exynosexynos

테스트된 빌드 (17개): S9420ZCS4AZG1, S9470ZCS4AZG1, S9480ZCS3AZF1, S9480ZCS4AZG1, S942BXXS4AZG5, S947BXXS3AZF1, S947BXXS4AZG5, S942QOPU1AZDE, S942U1UES4AZG3, S942USQS4AZG3, S947USQS4AZG3, S9480ZHS4AZG1, S948BXXS4AZG5/6, S948NKSS4AZG3, S948U1UES2AZE1, S948USQS4AZG3.

알 수 없는 OTA는 업스트림 params.c와 정확히 동일하게 폴백합니다: 정확한 빌드 우선, 그다음 동일 모델 + 3자리 CSC (OTA 재사용), 그다음 동일 기기의 최신 항목 (미검증으로 표시), 그 외에는 fail-closed (앱은 UNSUPPORTED를 표시하고 네이티브 레이어는 종료 코드 2로 종료). 완전히 알 수 없는 모델은 거부됩니다 - 강제 실행되지 않습니다.

앱이 하는 일

큰 버튼 하나 - Root my S26 - 가 전체 파이프라인을 실행하고 Output 카드에 진행 상황을 설명합니다:

  1. 기기 확인 - 모델/디바이스/인크리멘탈/핑거프린트와 시리즈 판정 (정확 / OTA 재사용 / 미검증 추정 / 미지원). 미지원 빌드는 여기서 중단됩니다 (fail-closed, boot-claim 소모 없음).
  2. Shizuku - 연결되어 있으면 자동으로 사용됩니다 (uid 2000 shell, README의 adb shell 흐름과 동일한 컨텍스트 계열). 권한은 실행 시 한 번 요청되며 (서버가 재시작되면 다시 요청), Root 흐름은 포기하지 않고 권한 부여를 기다립니다. 서버가 꺼져 있으면 앱이 Shizuku 매니저를 열어 시작할 수 있게 한 뒤, 인앱 셸로 폴백합니다. 앱을 Shizuku 허용 목록에 추가하면 프롬프트가 완전히 사라집니다.
  3. 스테이징 - preload.so, su_daemon, ksud를 /data/local/tmp로 복사하고 (preload.so, cve-2026-43499-root, ksud) chmod합니다. 업스트림 README대로 이미 adb push한 파일이 있다면 그 자리에서 그대로 사용됩니다.
  4. 실행 - 업스트림에 문서화된 그대로 실행합니다: env LD_PRELOAD=/data/local/tmp/preload.so sh (.so 생성자가 체인을 실행하고 합니다; stdout이 익스플로잇 로그입니다), 최대 5회 시도 - 레이스는 확률적입니다. 스위치도 사용 가능하지만 재부팅이 더 안전합니다.

그 아래에는: 단일 명령 필드 + Run as root 행 (su 데몬의 C 프로토콜을 통한 일회성 명령; 대화형 PTY는 v1 범위 밖), 그리고 /data/local/tmp/ghostlock-boot.log를 지워 재부팅 없이 실행을 재시도할 수 있게 하는 작은 Reset 링크가 있습니다 (업스트림은 이것이 패닉을 유발할 수 있다고 경고합니다 - 재부팅이 안전한 경로입니다).

프로젝트 구조

root@kitploit:~
exploit/                  vendored upstream (Makefile + src/, authoritative)
ksud                      upstream prebuilt KernelSU loader (ARM64 PIE, also in assets)
app/src/main/assets/ksud  staged copy shipped in the APK
app/src/main/assets/      + preload.so / su_daemon after stage-assets.sh
app/src/main/cpp/         optional CMake rebuild of preload.so from exploit/src
app/src/main/java/indev/ghostlock/s26/
  MainActivity.kt         UI (device / stage / run / shell / boot guard)
  ParamsTable.kt          series table mirror (17 builds, 3 lines, 5 codenames)
  DeviceCompat.kt         Build.* identity + series verdict
  ShellRunner.kt          Shizuku (uid 2000) + local fallback, staging
  SuClient.kt             /data/local/tmp/temp_su.sock 'C'-mode client
  GhostlockManager.kt     exit-code interpreter (0/1/2/3/4)
PORTING.upstream.md       porting notes (new firmware = new device_map row)

빌드

요구 사항: Android Studio (JBR 21) / SDK 35 / NDK r26+ / CMake 3.22.1 / JDK 17.

root@kitploit:~
# 1. Build the native payloads with the NDK (upstream flow):
cd exploit && make preload
#   -> build/bin/preload.so, build/embed/su_daemon_aarch64_pie

# 2. Stage them into the APK assets:
./stage-assets.sh

# 3. Build the app:
./gradlew :app:assembleDebug
#   -> app/build/outputs/apk/debug/app-debug.apk

ksud는 이미 vendored되어 있으므로 (ksud + app/src/main/assets/ksud) 1–2단계는 두 개의 NDK 출력물만 생성합니다. app/src/main/cpp/CMakeLists.txt의 CMake 타깃은 추가로 동일한 소스에서 libpreload.so를 APK 내부에서 폴백으로 재빌드할 수 있습니다.

온디바이스 빌드 (Termux, aarch64)

SDK의 aapt2/NDK는 x86_64이므로 온디바이스에서 실행할 수 없습니다. 검증된 절차 (SDK는 ~/android-sdk, Gradle 8.9 - AGP 8.5.2는 시스템 Gradle 9.x를 거부함):

root@kitploit:~
# Native payloads with the Termux toolchain (API 35 target, system liblog):
cd exploit
clang -O2 --target=aarch64-linux-android35 -fPIE -pie -Isrc src/su_daemon.c \
  -o build/embed/su_daemon_aarch64_pie
clang -O2 --target=aarch64-linux-android35 -fPIC -Isrc \
  -Wno-unused-parameter -Wno-sign-compare -Wno-unused-function -Wno-macro-redefined \
  src/main.c src/util.c src/bootclaim.c src/slide.c src/fops.c src/attr.c \
  src/root.c src/params.c src/params_table.c src/preload.c \
  -L/system/lib64 -llog -shared -o build/bin/preload.so
cd .. && ./stage-assets.sh

# APK (CMake native step auto-skips without SDK cmake; Termux aarch64 aapt2
# is injected via -P so checked-in files stay workstation-clean):
env ANDROID_HOME=~/android-sdk ANDROID_SDK_ROOT=~/android-sdk \
  JAVA_HOME=$PREFIX/lib/jvm/java-21-openjdk \
  ~/gradle-dists/gradle-8.9/bin/gradle :app:assembleDebug --console=plain \
  -Pandroid.aapt2FromMavenOverride=$(command -v aapt2)

실행

  1. S26 기기에 APK를 설치하고 Shizuku를 설치/시작합니다 (무선 디버깅 또는 PC).
  2. GhostLock을 엽니다 - Shizuku 권한은 실행 시 자동으로 요청됩니다; 한 번 승인하십시오 (Shizuku 서버가 재시작될 때까지 유지됩니다).
  3. Device 카드가 해당 빌드에 대해 SUPPORTED/LIKELY를 표시하는지 확인합니다.
  4. Stage를 누른 다음 Run once를 누릅니다. 레이스는 확률적입니다 - Retry ×5를 사용하십시오; 여러 번 시도하는 것은 정상입니다.
  5. Check root → uid=0 …을 기대합니다. 그런 다음 Root shell 카드에서 명령을 실행합니다.
  6. 성공 후 KernelSU Manager (me.weishu.kernelsu)를 설치/사용하십시오; 데몬이 ksud를 자동으로 late-load합니다 (su_daemon.c의 K 모드 참조).

Shizuku는 선택 사항이지만 강력히 권장됩니다: 업스트림 흐름은 adb shell (uid 2000, shell SELinux 컨텍스트)에서 실행되며, 인앱 폴백 (untrusted_app)은 /data/local/tmp에서 LD_PRELOAD/exec이 차단될 가능성이 훨씬 높습니다.

종료 코드 (매 시도 후 표시됨)

출처

  • 익스플로잇: exploit/ + PORTING.upstream.md + ksud는 1ndevelopment/ghostlock-s26에서 가져옴 (Apache-2.0; LICENSE.upstream, NOTICE.upstream 참조). 앱은 자체 프로세스에 익스플로잇 코드를 링크하지 않습니다 - NDK로 빌드된 파일을 스테이징하고 문서화된 LD_PRELOAD 셸을 스폰할 뿐입니다.
  • 크레딧 (업스트림): Nebula Security (CVE 발견), polygraphene (베이스라인), monovibe (UMH root / boot-claim), lukasmaar (kernelsnitch), veritas501 (pipe 개념), BuSung-dev (컴패니언 앱 기반).
도구 다운로드
_exit
곧
BOOT_FORCE=1
  • 검증 - 모든 채널을 통해 id가 uid=0을 보고하는지 확인합니다: temp-daemon 소켓 우선, 그다음 KernelSU 스타일 su. 이는 완전 성공 시 su_daemon이 설계상 소켓을 unlink하고 종료하기 때문에 중요합니다 (KernelSU로 핸드오버) - 죽은 temp 소켓과 작동하는 su가 있다면 루팅된 것이지 망가진 것이 아닙니다. boot-claim 로그 꼬리를 출력하고 루팅 여부 / 종료 코드 조언을 보고합니다.
  • 코드의미할 일
    0성공 (소켓 활성, ksud late-load OK)Check root, 셸 사용
    1레이스 실패 / 검증 실패그냥 재시도 (정상)
    2미지원 빌드 (fail-closed)중단; 펌웨어 포팅 필요
    3carrier/root 실패다음 시도 전 재부팅
    4이번 부팅에서 이미 실행됨재부팅; BOOT_FORCE=1이 재정의하지만 충돌 가능