Shizuku Privileged API
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Shizuku, app_process
kullanarak ayrıcalıklı bir Java süreci oluşturan ve seçilen Android sistem API'lerini Binder üzerinden açığa çıkaran açık kaynaklı bir hizmettir. Süreç, ADB'nin kullandığıyla aynı shell
UID yetenekleriyle başlatıldığından, dışa aktarılan AIDL arayüzüne bağlanan herhangi bir uygulama (veya terminal), genellikle WRITE_SECURE_SETTINGS
, INSTALL_PACKAGES
, /data
içinde dosya I/O gibi işlemleri gerçekleştirebilir – cihazı rootlamadan.
Tipik kullanım senaryoları:
- Rootlanmamış bir cihazdan güvenlik denetimi
- Bloatware kaldırma / sistem uygulamalarını debloat etme
- Blue-team/DFIR için günlükler, Wi-Fi anahtarları, süreç ve soket bilgileri toplama
- Özel uygulamalar veya shell betikleri aracılığıyla cihaz yapılandırmasını otomatikleştirme
1. Ayrıcalıklı hizmeti başlatma
moe.shizuku.privileged.api
, üç farklı şekilde başlatılabilir – sonuçta oluşan Binder hizmeti hepsinde aynı şekilde davranır.
1.1 Kablosuz ADB (Android 11+)
- Geliştirici Seçenekleri ➜ Kablosuz hata ayıklama'yı etkinleştir ve cihazı eşleştir.
- Shizuku uygulaması içinde “Kablosuz hata ayıklama ile başlat” seçeneğini seç ve eşleştirme kodunu kopyala.
- Hizmet, bir sonraki yeniden başlatmaya kadar devam eder (kablosuz hata ayıklama oturumları önyüklemede temizlenir).
1.2 USB / yerel ADB tek satır
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
Aynı script, network ADB bağlantısı üzerinden çalıştırılabilir (adb connect <IP>:5555
).
1.3 Rootlu cihazlar
Eğer cihaz zaten rootlanmışsa şunu çalıştırın:
su -c sh /data/adb/shizuku/start.sh
1.4 Çalıştığını Doğrulama
adb shell dumpsys activity service moe.shizuku.privileged.api | head
Başarılı bir başlangıç, Running services (1)
ile birlikte ayrıcalıklı sürecin PID'sini döndürür.
2. Bir uygulamadan bağlanma
Üçüncü taraf uygulamaların yalnızca AndroidManifest.xml
dosyalarında aşağıdakilere ihtiyacı vardır:
<uses-permission android:name="moe.shizuku.manager.permission.API"/>
Çalışma zamanında binder'ı elde ederler:
IBinder binder = ShizukuProvider.getBinder();
IPackageManager pm = IPackageManager.Stub.asInterface(binder);
Bu andan itibaren uygulama, shell
kullanıcısının çağırabileceği herhangi bir yöntemi çağırabilir – örneğin:
pm.installPackage(new Uri("file:///sdcard/app.apk"), null, 0, null);
Settings.Global.putInt(resolver, Settings.Global.ADB_ENABLED, 1);
170'ten fazla Shizuku destekli uygulamanın derlenmiş listesi awesome-shizuku adresinde bulunmaktadır.
3. Rish – Termux içinde yükseltilmiş shell
Shizuku ayarları ekranı “Terminal uygulamalarında Shizuku'yu kullan” seçeneğini sunar. Bunu etkinleştirmek rish (/data/local/tmp/rish
) indirir.
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 Kullanışlı komutlar rish shell'den
- Verilen bir paketin çalışan süreçlerini listele:
ps -A | grep com.facebook.katana
- Dinleyen soketleri listele ve bunları paketlere eşle:
netstat -tuln
for pid in $(lsof -nP -iTCP -sTCP:LISTEN -t); do
printf "%s -> %s\n" "$pid" "$(cat /proc/$pid/cmdline)";
done
- Her uygulamanın loglarını dök:
logcat -d | grep -iE "(error|exception)"
- Saklanan Wi-Fi kimlik bilgilerini oku (Android 11 +):
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
- Toplu debloat (örnek):
pm uninstall --user 0 com.miui.weather2
4. Güvenlik dikkate alındığında / tespit
- Shizuku ADB hata ayıklama ayrıcalıklarına ihtiyaç duyar, bu nedenle Geliştirici Seçenekleri → USB/Kablosuz hata ayıklama etkinleştirilmelidir.
Kuruluşlar bunu bir MDM aracılığıyla veya
settings put global development_settings_enabled 0
ile engelleyebilir. - Servis kendini
moe.shizuku.privileged.api
adı altında kaydeder. Basit biradb shell service list | grep shizuku
(veya Endpoint Security kuralı) varlığını tespit eder. - Yetenekler,
shell
kullanıcısının zaten yapabileceği şeylerle sınırlıdır – root değildir.system
veyaroot
kullanıcısını gerektiren hassas API'ler hala erişilemez. - Oturumlar bir yeniden başlatmada hayatta kalmaz; cihaz köklü değilse ve Shizuku bir başlangıç daemon'u olarak yapılandırılmamışsa.
5. Azaltma
- Üretim cihazlarında USB/Kablosuz hata ayıklamayı devre dışı bırakın.
moe.shizuku.privileged.api
'yi açığa çıkaran Binder hizmetlerini izleyin.- Yönetilmeyen uygulamalardan AIDL arayüzünü engellemek için SELinux politikalarını (Android enterprise) kullanın.
Referanslar
- Blog – Shizuku: Root Olmadan Gelişmiş Android Yeteneklerini Açma
- Shizuku Resmi Dokümantasyonu
- awesome-shizuku – desteklenen uygulamaların listesi
- rish shell (ayrılmış ters-adb shell)
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.