Shizuku Privileged API
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
Shizuku는 **app_process
**를 사용하여 특권 Java 프로세스를 생성하고 선택된 Android 시스템 API를 Binder를 통해 노출하는 오픈 소스 서비스입니다. 프로세스는 ADB가 사용하는 것과 동일한 shell
UID 권한으로 시작되기 때문에, 내보낸 AIDL 인터페이스에 바인딩하는 모든 애플리케이션(또는 터미널)은 일반적으로 WRITE_SECURE_SETTINGS
, INSTALL_PACKAGES
, /data
내의 파일 I/O 등을 요구하는 많은 작업을 수행할 수 있습니다 – 장치를 루팅하지 않고도.
일반적인 사용 사례:
- 루팅되지 않은 핸드셋에서의 보안 감사
- 불필요한 앱 제거 / 시스템 앱 디블로팅
- 블루팀/DFIR을 위한 로그, Wi-Fi 키, 프로세스 및 소켓 정보 수집
- 사용자 정의 앱 또는 셸 스크립트를 통한 장치 구성 자동화
1. 특권 서비스 시작하기
moe.shizuku.privileged.api
는 세 가지 방법으로 시작할 수 있으며, 결과 Binder 서비스는 모두 동일하게 작동합니다.
1.1 무선 ADB (Android 11+)
- 개발자 옵션 ➜ 무선 디버깅을 활성화하고 장치를 페어링합니다.
- Shizuku 앱 내에서 **“무선 디버깅을 통해 시작”**을 선택하고 페어링 코드를 복사합니다.
- 서비스는 다음 재부팅까지 유지됩니다 (무선 디버깅 세션은 부팅 시 지워집니다).
1.2 USB / 로컬 ADB 원라이너
adb push start.sh \
/storage/emulated/0/Android/data/moe.shizuku.privileged.api/
# spawn the privileged process
adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh
같은 스크립트는 network ADB 연결(adb connect <IP>:5555
)을 통해 실행될 수 있습니다.
1.3 루팅된 장치
장치가 이미 루팅된 경우 다음을 실행하십시오:
su -c sh /data/adb/shizuku/start.sh
1.4 실행 중인지 확인하기
adb shell dumpsys activity service moe.shizuku.privileged.api | head
A successful start returns Running services (1)
together with the PID of the privileged process.
2. 애플리케이션에서 바인딩
서드파티 앱은 AndroidManifest.xml
내에 다음만 필요합니다:
<uses-permission android:name="moe.shizuku.manager.permission.API"/>
실행 시간에 바인더를 얻습니다:
IBinder binder = ShizukuProvider.getBinder();
IPackageManager pm = IPackageManager.Stub.asInterface(binder);
이 시점부터 앱은 shell
사용자가 호출할 수 있는 모든 메서드를 호출할 수 있습니다 – 예를 들어:
pm.installPackage(new Uri("file:///sdcard/app.apk"), null, 0, null);
Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1);
A curated list of more than 170 Shizuku-enabled apps is maintained at awesome-shizuku.
3. Rish – elevated shell inside Termux
The Shizuku settings screen exposes “Use Shizuku in terminal apps”. Enabling it downloads rish (/data/local/tmp/rish
).
pkg install wget
wget https://rikka.app/rish/latest -O rish && chmod +x rish
# start elevated shell (inherits the binder connection)
./rish
whoami # ➜ shell
id # uid=2000(shell) gid=2000(shell) groups=... context=u:r:shell:s0
3.1 유용한 rish 셸 명령어
- 주어진 패키지의 실행 중인 프로세스 목록:
ps -A | grep com.facebook.katana
- 수신 소켓을 나열하고 패키지에 매핑 (예: CVE-2019-6447 ES File Explorer):
netstat -tuln
for pid in $(lsof -nP -iTCP -sTCP:LISTEN -t); do
printf "%s -> %s\n" "$pid" "$(cat /proc/$pid/cmdline)";
done
- 모든 애플리케이션의 로그 덤프:
logcat -d | grep -iE "(error|exception)"
- 저장된 Wi-Fi 자격 증명 읽기 (Android 11 +):
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
- 대량 디블로트 (예시):
pm uninstall --user 0 com.miui.weather2
4. 보안 고려사항 / 탐지
- Shizuku는 ADB 디버깅 권한이 필요하므로 _개발자 옵션 → USB/무선 디버깅_이 활성화되어야 합니다.
조직은 MDM을 통해 또는
settings put global development_settings_enabled 0
를 통해 이를 차단할 수 있습니다. - 서비스는
moe.shizuku.privileged.api
라는 이름으로 자신을 등록합니다. 간단한adb shell service list | grep shizuku
(또는 엔드포인트 보안 규칙)가 그 존재를 감지합니다. - 기능은
shell
사용자가 이미 할 수 있는 것에 제한됩니다 – 루트가 아닙니다.system
또는root
사용자가 필요한 민감한 API는 여전히 접근할 수 없습니다. - 세션은 재부팅 후 유지되지 않습니다. 단, 장치가 루팅되고 Shizuku가 시작 데몬으로 구성된 경우는 제외입니다.
5. 완화
- 생산 장치에서 USB/무선 디버깅을 비활성화합니다.
moe.shizuku.privileged.api
를 노출하는 Binder 서비스를 모니터링합니다.- 관리되지 않는 애플리케이션에서 AIDL 인터페이스를 차단하기 위해 SELinux 정책(안드로이드 기업)을 사용합니다.
참조
- Blog – Shizuku: Unlocking Advanced Android Capabilities Without Root
- Shizuku Official Documentation
- awesome-shizuku – list of supported apps
- rish shell (privileged reverse-adb shell)
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
Azure 해킹 배우기 및 연습하기:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.