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 ์ง€์›ํ•˜๊ธฐ

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+)

  1. ๊ฐœ๋ฐœ์ž ์˜ต์…˜ โžœ ๋ฌด์„  ๋””๋ฒ„๊น…์„ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์žฅ์น˜๋ฅผ ํŽ˜์–ด๋งํ•ฉ๋‹ˆ๋‹ค.
  2. Shizuku ์•ฑ ๋‚ด์—์„œ **โ€œ๋ฌด์„  ๋””๋ฒ„๊น…์„ ํ†ตํ•ด ์‹œ์ž‘โ€**์„ ์„ ํƒํ•˜๊ณ  ํŽ˜์–ด๋ง ์ฝ”๋“œ๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
  3. ์„œ๋น„์Šค๋Š” ๋‹ค์Œ ์žฌ๋ถ€ํŒ…๊นŒ์ง€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค (๋ฌด์„  ๋””๋ฒ„๊น… ์„ธ์…˜์€ ๋ถ€ํŒ… ์‹œ ์ง€์›Œ์ง‘๋‹ˆ๋‹ค).

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. ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ / ํƒ์ง€

  1. Shizuku๋Š” ADB ๋””๋ฒ„๊น… ๊ถŒํ•œ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ _๊ฐœ๋ฐœ์ž ์˜ต์…˜ โ†’ USB/๋ฌด์„  ๋””๋ฒ„๊น…_์ด ํ™œ์„ฑํ™”๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์กฐ์ง์€ MDM์„ ํ†ตํ•ด ๋˜๋Š” settings put global development_settings_enabled 0๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ์ฐจ๋‹จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์„œ๋น„์Šค๋Š” moe.shizuku.privileged.api๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ž์‹ ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ๊ฐ„๋‹จํ•œ adb shell service list | grep shizuku (๋˜๋Š” ์—”๋“œํฌ์ธํŠธ ๋ณด์•ˆ ๊ทœ์น™)๊ฐ€ ๊ทธ ์กด์žฌ๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ธฐ๋Šฅ์€ shell ์‚ฌ์šฉ์ž๊ฐ€ ์ด๋ฏธ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์— ์ œํ•œ๋ฉ๋‹ˆ๋‹ค โ€“ ๋ฃจํŠธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. system ๋˜๋Š” root ์‚ฌ์šฉ์ž๊ฐ€ ํ•„์š”ํ•œ ๋ฏผ๊ฐํ•œ API๋Š” ์—ฌ์ „ํžˆ ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  4. ์„ธ์…˜์€ ์žฌ๋ถ€ํŒ… ํ›„ ์œ ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ, ์žฅ์น˜๊ฐ€ ๋ฃจํŒ…๋˜๊ณ  Shizuku๊ฐ€ ์‹œ์ž‘ ๋ฐ๋ชฌ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ๋Š” ์ œ์™ธ์ž…๋‹ˆ๋‹ค.

5. ์™„ํ™”

  • ์ƒ์‚ฐ ์žฅ์น˜์—์„œ USB/๋ฌด์„  ๋””๋ฒ„๊น…์„ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • moe.shizuku.privileged.api๋ฅผ ๋…ธ์ถœํ•˜๋Š” Binder ์„œ๋น„์Šค๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.
  • ๊ด€๋ฆฌ๋˜์ง€ ์•Š๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ AIDL ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด SELinux ์ •์ฑ…(์•ˆ๋“œ๋กœ์ด๋“œ ๊ธฐ์—…)์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ์กฐ

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 ์ง€์›ํ•˜๊ธฐ