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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
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+)
- Aktiveer Ontwikkelaarsopsies ➜ Draadlose foutopsporing en koppel die toestel.
- Binne die Shizuku-toepassing kies “Begin via Draadlose foutopsporing” en kopieer die paar kode.
- Die diens oorleef tot die volgende herlaai (draadlose-foutopsporing sessies word op opstart skoongemaak).
1.2 USB / local ADB one-liner
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:
su -c sh /data/adb/shizuku/start.sh
1.4 Verifieer dat dit loop
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:
<uses-permission android:name="moe.shizuku.manager.permission.API"/>
By uitvoering verkry hulle die binder:
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 :
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.
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:
ps -A | grep com.facebook.katana
- Enumereer luisterende sokke en koppel hulle aan pakkette (bv. 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
- Dump elke toepassing se logs:
logcat -d | grep -iE "(error|exception)"
- Lees gestoor Wi-Fi geloofsbriewe (Android 11 +):
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
- Massiewe debloat (voorbeeld):
pm uninstall --user 0 com.miui.weather2
4. Sekuriteits oorwegings / opsporing
- 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
. - Die diens registreer homself onder die naam
moe.shizuku.privileged.api
. 'n Eenvoudigeadb shell service list | grep shizuku
(of Endpoint Security-reël) detecteer sy teenwoordigheid. - Vermoëns is beperk tot wat die
shell
gebruiker reeds kan doen – dit is nie root nie. Sensitiewe API's wat diesystem
ofroot
gebruiker vereis, is steeds ontoeganklik. - 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
- Blog – Shizuku: Ontsluiting van Gevorderde Android Vermoëns Sonder Root
- Shizuku Amptelike Dokumentasie
- awesome-shizuku – lys van ondersteunde toepassings
- rish shell (privileged reverse-adb shell)
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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.