124 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Shizuku Privileged API
{{#include ../../banners/hacktricks-training.md}}
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](https://github.com/timschneeb/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
- [Blog Shizuku: Ontsluiting van Gevorderde Android Vermoëns Sonder Root](https://www.mobile-hacker.com/2025/07/14/shizuku-unlocking-advanced-android-capabilities-without-root/)
- [Shizuku Amptelike Dokumentasie](https://shizuku.rikka.app/)
- [awesome-shizuku lys van ondersteunde toepassings](https://github.com/timschneeb/awesome-shizuku)
- [rish shell (privileged reverse-adb shell)](https://github.com/RikkaApps/Shizuku/blob/master/RISH.md)
{{#include ../../banners/hacktricks-training.md}}