Shizuku Privileged API
Reading time: 6 minutes
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: 
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure: 
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
 - Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
 - Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
 
Shizuku é um serviço de código aberto que cria um processo Java privilegiado usando app_process e expõe APIs de sistema Android selecionadas via Binder. Como o processo é iniciado com as mesmas capacidades de UID shell que o ADB usa, qualquer aplicativo (ou terminal) que se conecta à interface AIDL exportada pode realizar muitas ações que normalmente requerem WRITE_SECURE_SETTINGS, INSTALL_PACKAGES, operações de arquivo dentro de /data, etc. – sem precisar fazer root no dispositivo.
Casos de uso típicos:
- Auditoria de segurança a partir de um dispositivo não enraizado
 - Remoção de bloatware / debloating de aplicativos do sistema
 - Coleta de logs, chaves de Wi-Fi, informações de processos e sockets para blue-team/DFIR
 - Automação da configuração do dispositivo a partir de aplicativos personalizados ou scripts de shell
 
1. Iniciando o serviço privilegiado
moe.shizuku.privileged.api pode ser iniciado de três maneiras diferentes – o serviço Binder resultante se comporta da mesma forma em todas elas.
1.1 ADB sem fio (Android 11+)
- Ative Opções de Desenvolvedor ➜ Depuração sem fio e emparelhe o dispositivo.
 - Dentro do aplicativo Shizuku, selecione “Iniciar via depuração sem fio” e copie o código de emparelhamento.
 - O serviço persiste até o próximo reinício (as sessões de depuração sem fio são limpas na inicialização).
 
1.2 USB / linha de comando ADB local
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
O mesmo script pode ser executado sobre uma conexão ADB de rede (adb connect <IP>:5555).
1.3 Dispositivos com root
Se o dispositivo já estiver com root, execute:
su -c sh /data/adb/shizuku/start.sh
1.4 Verificando se está em execução
adb shell dumpsys activity service moe.shizuku.privileged.api | head
Um início bem-sucedido retorna Running services (1) junto com o PID do processo privilegiado.
2. Vinculação de um aplicativo
Aplicativos de terceiros só precisam do seguinte dentro de seu AndroidManifest.xml:
<uses-permission android:name="moe.shizuku.manager.permission.API"/>
Em tempo de execução, eles obtêm o binder:
IBinder binder = ShizukuProvider.getBinder();
IPackageManager pm  = IPackageManager.Stub.asInterface(binder);
A partir deste momento, o aplicativo pode invocar qualquer método que o shell user possa chamar – por exemplo :
pm.installPackage(new Uri("file:///sdcard/app.apk"), null, 0, null);
Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1);
Uma lista selecionada de mais de 170 aplicativos habilitados para Shizuku é mantida em awesome-shizuku.
3. Rish – shell elevado dentro do Termux
A tela de configurações do Shizuku expõe “Usar Shizuku em aplicativos de terminal”. Habilitá-lo baixa 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 Comandos úteis do shell rish
- Listar processos em execução de um pacote específico:
 
ps -A | grep com.facebook.katana
- Enumerar sockets de escuta e mapeá-los para pacotes (por exemplo, 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
- Despejar os logs de cada aplicativo:
 
logcat -d | grep -iE "(error|exception)"
- Ler credenciais de Wi-Fi armazenadas (Android 11 +):
 
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
- Desinstalação em massa (exemplo):
 
pm uninstall --user 0 com.miui.weather2
4. Considerações de segurança / detecção
- Shizuku precisa de privilégios de depuração ADB, portanto, Opções do desenvolvedor → Depuração USB/sem fio deve estar ativada.
Organizações podem bloquear isso através de um MDM ou via 
settings put global development_settings_enabled 0. - O serviço se registra sob o nome 
moe.shizuku.privileged.api. Um simplesadb shell service list | grep shizuku(ou regra de segurança de endpoint) detecta sua presença. - As capacidades são limitadas ao que o usuário 
shelljá pode fazer – não é root. APIs sensíveis que requerem o usuáriosystemourootainda são inacessíveis. - Sessões não sobrevivem a uma reinicialização a menos que o dispositivo esteja rooteado e Shizuku esteja configurado como um daemon de inicialização.
 
5. Mitigação
- Desativar a depuração USB/sem fio em dispositivos de produção.
 - Monitorar serviços Binder que expõem 
moe.shizuku.privileged.api. - Usar políticas SELinux (Android enterprise) para bloquear a interface AIDL de aplicativos não gerenciados.
 
Referências
- Blog – Shizuku: Desbloqueando Capacidades Avançadas do Android Sem Root
 - Documentação Oficial do Shizuku
 - awesome-shizuku – lista de aplicativos suportados
 - shell rish (shell reverso-adb privilegiado)
 
tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: 
HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure: 
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o HackTricks
- Confira os planos de assinatura!
 - Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
 - Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
 
HackTricks