Shizuku Privileged API
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Shizuku je open-source servis koji pokreće privilegovani Java proces koristeći app_process
i izlaže odabrane Android sistemske API-je preko Bindera. Pošto se proces pokreće sa istim shell
UID sposobnostima koje koristi ADB, svaka aplikacija (ili terminal) koja se povezuje na izvezeni AIDL interfejs može izvršiti mnoge radnje koje obično zahtevaju WRITE_SECURE_SETTINGS
, INSTALL_PACKAGES
, ulaz/izlaz fajlova unutar /data
, itd. – bez root-ovanja uređaja.
Tipični slučajevi upotrebe:
- Bezbednosno audiranje sa uređaja koji nije root-ovan
- Uklanjanje bloatware-a / debloating sistemskih aplikacija
- Prikupljanje logova, Wi-Fi ključeva, informacija o procesima i soketima za plavi tim/DFIR
- Automatizacija konfiguracije uređaja iz prilagođenih aplikacija ili shell skripti
1. Pokretanje privilegovanog servisa
moe.shizuku.privileged.api
može se pokrenuti na tri različita načina – rezultantni Binder servis se ponaša isto u svim njima.
1.1 Bežični ADB (Android 11+)
- Omogućite Opcije za programere ➜ Bežično debagovanje i uparite uređaj.
- Unutar Shizuku aplikacije izaberite “Start via Wireless debugging” i kopirajte kod za uparivanje.
- Servis opstaje do sledećeg ponovnog pokretanja (sesije bežičnog debagovanja se brišu pri pokretanju).
1.2 USB / lokalni 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
Isti skript se može izvršiti preko network ADB veze (adb connect <IP>:5555
).
1.3 Rootovani uređaji
Ako je uređaj već rootovan, pokrenite:
su -c sh /data/adb/shizuku/start.sh
1.4 Proveravanje da li radi
adb shell dumpsys activity service moe.shizuku.privileged.api | head
Uspešan početak vraća Running services (1)
zajedno sa PID-om privilegovanog procesa.
2. Povezivanje iz aplikacije
Aplikacije trećih strana samo trebaju sledeće unutar svog AndroidManifest.xml
:
<uses-permission android:name="moe.shizuku.manager.permission.API"/>
U vreme izvršavanja dobijaju binder:
IBinder binder = ShizukuProvider.getBinder();
IPackageManager pm = IPackageManager.Stub.asInterface(binder);
Od ovog trenutka aplikacija može pozvati bilo koju metodu koju shell
korisnik može pozvati – na primer :
pm.installPackage(new Uri("file:///sdcard/app.apk"), null, 0, null);
Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1);
Kustoska lista od više od 170 aplikacija koje podržavaju Shizuku se održava na awesome-shizuku.
3. Rish – povišeni shell unutar Termux-a
Ekran podešavanja Shizuku otkriva “Koristi Shizuku u terminalnim aplikacijama”. Aktiviranje ove opcije preuzima 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 Korisne komande iz rish shell-a
- Prikazivanje pokrenutih procesa datog paketa:
ps -A | grep com.facebook.katana
- Nabrajanje slušajućih soketa i mapiranje na pakete (npr. 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
- Ispisivanje logova svake aplikacije:
logcat -d | grep -iE "(error|exception)"
- Čitanje sačuvanih Wi-Fi kredencijala (Android 11 +):
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
- Masovno uklanjanje (primer):
pm uninstall --user 0 com.miui.weather2
4. Bezbednosna razmatranja / detekcija
- Shizuku zahteva ADB debugging privilegije, stoga Developer Options → USB/Wireless debugging mora biti omogućeno.
Organizacije mogu blokirati ovo putem MDM-a ili putem
settings put global development_settings_enabled 0
. - Usluga se registruje pod imenom
moe.shizuku.privileged.api
. Jednostavnaadb shell service list | grep shizuku
(ili pravilo Endpoint Security) detektuje njeno prisustvo. - Mogućnosti su ograničene na ono što korisnik
shell
već može da uradi – nije root. Osetljivi API-ji koji zahtevaju korisnikasystem
iliroot
su i dalje nedostupni. - Sesije ne preživljavaju restart osim ako uređaj nije root-ovan i Shizuku je konfigurisan kao daemon pri pokretanju.
5. Ublažavanje
- Onemogućiti USB/Wireless debugging na proizvodnim uređajima.
- Pratiti Binder usluge koje izlažu
moe.shizuku.privileged.api
. - Koristiti SELinux politike (Android enterprise) za blokiranje AIDL interfejsa iz neuredjenih aplikacija.
Reference
- Blog – Shizuku: Otključavanje naprednih Android mogućnosti bez root-a
- Shizuku zvanična dokumentacija
- awesome-shizuku – lista podržanih aplikacija
- rish shell (privilegovan reverse-adb shell)
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.