Shizuku Privileged API
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.
Shizuku est un service open-source qui génÚre un processus Java privilégié en utilisant app_process
et expose des API systĂšme Android sĂ©lectionnĂ©es via Binder. Ătant donnĂ© que le processus est lancĂ© avec les mĂȘmes capabilitĂ©s UID shell
que celles utilisées par ADB, toute application (ou terminal) qui se lie à l'interface AIDL exportée peut effectuer de nombreuses actions qui nécessitent normalement WRITE_SECURE_SETTINGS
, INSTALL_PACKAGES
, accĂšs aux fichiers dans /data
, etc. â sans rooter l'appareil.
Cas d'utilisation typiques :
- Audit de sécurité depuis un appareil non rooté
- Suppression de bloatware / désencombrement des applications systÚme
- Collecte de journaux, clés Wi-Fi, informations sur les processus et les sockets pour les équipes bleues/DFIR
- Automatisation de la configuration de l'appareil depuis des applications personnalisées ou des scripts shell
1. Démarrer le service privilégié
moe.shizuku.privileged.api
peut ĂȘtre dĂ©marrĂ© de trois maniĂšres diffĂ©rentes â le service Binder rĂ©sultant se comporte de la mĂȘme maniĂšre dans tous les cas.
1.1 ADB sans fil (Android 11+)
- Activez Options pour les dĂ©veloppeurs â DĂ©bogage sans fil et associez l'appareil.
- Dans l'application Shizuku, sĂ©lectionnez âDĂ©marrer via le dĂ©bogage sans filâ et copiez le code d'association.
- Le service survit jusqu'au prochain redémarrage (les sessions de débogage sans fil sont effacées au démarrage).
1.2 USB / ligne de commande ADB locale
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
Le mĂȘme script peut ĂȘtre exĂ©cutĂ© via une connexion network ADB (adb connect <IP>:5555
).
1.3 Appareils rootés
Si l'appareil est déjà rooté, exécutez :
su -c sh /data/adb/shizuku/start.sh
1.4 Vérification de son fonctionnement
adb shell dumpsys activity service moe.shizuku.privileged.api | head
Un démarrage réussi renvoie Running services (1)
ainsi que le PID du processus privilégié.
2. Liaison depuis une application
Les applications tierces n'ont besoin que de ce qui suit dans leur AndroidManifest.xml
:
<uses-permission android:name="moe.shizuku.manager.permission.API"/>
Au moment de l'exécution, ils obtiennent le binder :
IBinder binder = ShizukuProvider.getBinder();
IPackageManager pm = IPackageManager.Stub.asInterface(binder);
à partir de ce moment, l'application peut invoquer n'importe quelle méthode que l'utilisateur shell
peut appeler â par exemple :
pm.installPackage(new Uri("file:///sdcard/app.apk"), null, 0, null);
Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1);
Une liste soigneusement sélectionnée de plus de 170 applications compatibles avec Shizuku est maintenue sur awesome-shizuku.
3. Rish â shell Ă©levĂ© Ă l'intĂ©rieur de Termux
L'Ă©cran des paramĂštres de Shizuku expose âUtiliser Shizuku dans les applications terminalâ. L'activer tĂ©lĂ©charge 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 Commandes utiles du shell rish
- Lister les processus en cours d'un package donné :
ps -A | grep com.facebook.katana
- ĂnumĂ©rer les sockets Ă l'Ă©coute et les mapper aux packages (par exemple, 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 des logs de chaque application :
logcat -d | grep -iE "(error|exception)"
- Lire les identifiants Wi-Fi stockés (Android 11 +) :
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
- Débloat en masse (exemple) :
pm uninstall --user 0 com.miui.weather2
4. Considérations de sécurité / détection
- Shizuku nĂ©cessite des privilĂšges ADB debugging, donc Options pour les dĂ©veloppeurs â DĂ©bogage USB/Sans fil doit ĂȘtre activĂ©.
Les organisations peuvent bloquer cela via un MDM ou avec
settings put global development_settings_enabled 0
. - Le service s'enregistre sous le nom
moe.shizuku.privileged.api
. Une simpleadb shell service list | grep shizuku
(ou rÚgle de sécurité des points de terminaison) détecte sa présence. - Les capacités sont limitées à ce que l'utilisateur
shell
peut dĂ©jĂ faire â ce n'est pas root. Les API sensibles qui nĂ©cessitent l'utilisateursystem
ouroot
restent inaccessibles. - Les sessions ne survivent pas à un redémarrage à moins que l'appareil ne soit rooté et que Shizuku soit configuré comme un démon de démarrage.
5. Atténuation
- Désactiver le débogage USB/Sans fil sur les appareils de production.
- Surveiller les services Binder exposant
moe.shizuku.privileged.api
. - Utiliser des politiques SELinux (Android enterprise) pour bloquer l'interface AIDL des applications non gérées.
Références
- Blog â Shizuku : DĂ©verrouiller des capacitĂ©s avancĂ©es d'Android sans root
- Documentation officielle de Shizuku
- awesome-shizuku â liste des applications prises en charge
- shell rish (shell reverse-adb privilégié)
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le đŹ groupe Discord ou le groupe telegram ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépÎts github.