Shizuku Privileged API

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Shizuku is 'n oop-bron diens wat 'n bevoorregte Java-proses genereer met behulp van app_process en stel geselekteerde Android-stelsels API's oor Binder beskikbaar. Omdat die proses met dieselfde shell UID vermoëns wat ADB gebruik, enige toepassing (of terminal) wat aan die uitgevoerde AIDL-koppelvlak bind, kan baie aksies uitvoer wat normaalweg WRITE_SECURE_SETTINGS, INSTALL_PACKAGES, lêer I/O binne /data, ens. vereis – sonder om die toestel te root.

Tipiese gebruiksgevalle:

  • Sekuriteitsouditing vanaf 'n nie-ge-root toestel
  • Verwydering van bloatware / debloating stelsels toepassings
  • Versameling van logs, Wi-Fi sleutels, proses en sokketinligting vir blue-team/DFIR
  • Outomatisering van toestelkonfigurasie vanaf pasgemaakte toepassings of shell skripte

1. Starting the privileged service

moe.shizuku.privileged.api kan op drie verskillende maniere begin word – die resulterende Binder-diens gedra dieselfde in al drie.

1.1 Wireless ADB (Android 11+)

  1. Aktiveer Ontwikkelaarsopsies ➜ Draadlose foutopsporing en koppel die toestel.
  2. Binne die Shizuku-toepassing kies “Begin via Draadlose foutopsporing” en kopieer die paar kode.
  3. Die diens oorleef tot die volgende herlaai (draadlose-foutopsporing sessies word op opstart skoongemaak).

1.2 USB / local ADB one-liner

bash
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

Die dieselfde skrip kan oor 'n network ADB-verbinding uitgevoer word (adb connect <IP>:5555).

1.3 Geroote toestelle

As die toestel reeds geroote is, voer uit:

bash
su -c sh /data/adb/shizuku/start.sh

1.4 Verifieer dat dit loop

bash
adb shell dumpsys activity service moe.shizuku.privileged.api | head

'n Succesvolle begin keer Running services (1) saam met die PID van die bevoorregte proses terug.


2. Binding vanaf 'n toepassing

Derdeparty-apps het net die volgende binne hul AndroidManifest.xml nodig:

xml
<uses-permission android:name="moe.shizuku.manager.permission.API"/>

By uitvoering verkry hulle die binder:

java
IBinder binder = ShizukuProvider.getBinder();
IPackageManager pm  = IPackageManager.Stub.asInterface(binder);

Vanaf hierdie oomblik kan die app enige metode aanroep wat die shell gebruiker mag aanroep – byvoorbeeld :

java
pm.installPackage(new Uri("file:///sdcard/app.apk"), null, 0, null);
Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1);

'n Gekure lys van meer as 170 Shizuku-geaktiveerde toepassings word by awesome-shizuku onderhou.


3. Rish – verhoogde skulp binne Termux

Die Shizuku instellingskerm stel “Gebruik Shizuku in terminal toepassings” bloot. Om dit te aktiveer, laai dit rish (/data/local/tmp/rish) af.

bash
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 Nuttige opdragte van die rish-skaal

  • Lys lopende prosesse van 'n gegewe pakket:
bash
ps -A | grep com.facebook.katana
  • Enumereer luisterende sokke en koppel hulle aan pakkette (bv. CVE-2019-6447 ES File Explorer):
bash
netstat -tuln
for pid in $(lsof -nP -iTCP -sTCP:LISTEN -t); do
printf "%s -> %s\n" "$pid" "$(cat /proc/$pid/cmdline)";
done
  • Dump elke toepassing se logs:
bash
logcat -d | grep -iE "(error|exception)"
  • Lees gestoor Wi-Fi geloofsbriewe (Android 11 +):
bash
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
  • Massiewe debloat (voorbeeld):
bash
pm uninstall --user 0 com.miui.weather2

4. Sekuriteits oorwegings / opsporing

  1. Shizuku benodig ADB-foutopsporing regte, daarom moet Ontwikkelaar Opsies → USB/Draadlose foutopsporing geaktiveer wees. Organisasies kan dit blokkeer deur 'n MDM of via settings put global development_settings_enabled 0.
  2. Die diens registreer homself onder die naam moe.shizuku.privileged.api. 'n Eenvoudige adb shell service list | grep shizuku (of Endpoint Security-reël) detecteer sy teenwoordigheid.
  3. Vermoëns is beperk tot wat die shell gebruiker reeds kan doen – dit is nie root nie. Sensitiewe API's wat die system of root gebruiker vereis, is steeds ontoeganklik.
  4. Sessies oorleef nie 'n herbegin nie, tensy die toestel ge-root is en Shizuku as 'n opstart-daeemon geconfigureer is.

5. Versagting

  • Deaktiveer USB/Draadlose foutopsporing op produksietoestelle.
  • Monitor vir Binder dienste wat moe.shizuku.privileged.api blootstel.
  • Gebruik SELinux-beleide (Android enterprise) om die AIDL-koppelvlak van nie-gemandeerde toepassings te blokkeer.

Verwysings

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks