From a5ebd624b7af11c59b54618ff25750f493e3a51e Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 15 Jul 2025 11:02:50 +0000 Subject: [PATCH] Translated ['src/mobile-pentesting/android-app-pentesting/README.md', 's --- src/SUMMARY.md | 1 + .../android-app-pentesting/README.md | 135 +++++++++--------- .../shizuku-privileged-api.md | 123 ++++++++++++++++ 3 files changed, 193 insertions(+), 66 deletions(-) create mode 100644 src/mobile-pentesting/android-app-pentesting/shizuku-privileged-api.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index b260a5217..976e85946 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -337,6 +337,7 @@ - [Manual DeObfuscation](mobile-pentesting/android-app-pentesting/manual-deobfuscation.md) - [React Native Application](mobile-pentesting/android-app-pentesting/react-native-application.md) - [Reversing Native Libraries](mobile-pentesting/android-app-pentesting/reversing-native-libraries.md) + - [Shizuku Privileged Api](mobile-pentesting/android-app-pentesting/shizuku-privileged-api.md) - [Smali - Decompiling, Modifying, Compiling](mobile-pentesting/android-app-pentesting/smali-changes.md) - [Spoofing your location in Play Store](mobile-pentesting/android-app-pentesting/spoofing-your-location-in-play-store.md) - [Tapjacking](mobile-pentesting/android-app-pentesting/tapjacking.md) diff --git a/src/mobile-pentesting/android-app-pentesting/README.md b/src/mobile-pentesting/android-app-pentesting/README.md index 4f00bfe12..79ea754b4 100644 --- a/src/mobile-pentesting/android-app-pentesting/README.md +++ b/src/mobile-pentesting/android-app-pentesting/README.md @@ -19,12 +19,13 @@ Pogledajte sledeću listu [**ADB Komandi**](adb-commands.md) da biste naučili k ## Smali -Ponekad je zanimljivo **modifikovati kod aplikacije** da biste pristupili **skrivenim informacijama** (možda dobro obfuskovanim lozinkama ili oznakama). Tada bi moglo biti zanimljivo dekompilirati apk, modifikovati kod i ponovo ga kompajlirati.\ -[**U ovom tutorijalu** možete **naučiti kako dekompilirati APK, modifikovati Smali kod i ponovo kompajlirati APK** sa novom funkcionalnošću](smali-changes.md). Ovo može biti veoma korisno kao **alternativa za nekoliko testova tokom dinamičke analize** koji će biti predstavljeni. Tada, **uvek imajte na umu ovu mogućnost**. +Ponekad je zanimljivo **modifikovati kod aplikacije** da biste pristupili **skrivenim informacijama** (možda dobro obfuskovanim lozinkama ili oznakama). Tada bi moglo biti zanimljivo dekompilirati apk, modifikovati kod i rekompilirati ga.\ +[**U ovom tutorijalu** možete **naučiti kako dekompilirati APK, modifikovati Smali kod i rekompilirati APK** sa novom funkcionalnošću](smali-changes.md). Ovo može biti veoma korisno kao **alternativa za nekoliko testova tokom dinamičke analize** koji će biti predstavljeni. Tada, **uvek imajte na umu ovu mogućnost**. ## Drugi zanimljivi trikovi - [Lažiranje vaše lokacije u Play Store-u](spoofing-your-location-in-play-store.md) +- [Shizuku Privileged API (ADB-bazirani pristup bez root privilegija)](shizuku-privileged-api.md) - **Preuzimanje APK-ova**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd) - Ekstrakcija APK-a sa uređaja: ```bash @@ -64,7 +65,7 @@ Obratite posebnu pažnju na **firebase URL-ove** i proverite da li je loše konf **Ranjivosti** identifikovane iz **Manifest.xml** uključuju: -- **Debuggable aplikacije**: Aplikacije postavljene kao debuggable (`debuggable="true"`) u _Manifest.xml_ datoteci predstavljaju rizik jer omogućavaju veze koje mogu dovesti do eksploatacije. Za dalju pomoć o tome kako iskoristiti debuggable aplikacije, pogledajte tutorijal o pronalaženju i eksploataciji debuggable aplikacija na uređaju. +- **Debuggable aplikacije**: Aplikacije postavljene kao debuggable (`debuggable="true"`) u _Manifest.xml_ datoteci predstavljaju rizik jer omogućavaju veze koje mogu dovesti do eksploatacije. Za dalje razumevanje kako iskoristiti debuggable aplikacije, pogledajte tutorijal o pronalaženju i eksploataciji debuggable aplikacija na uređaju. - **Podešavanja rezervne kopije**: Atribut `android:allowBackup="false"` treba eksplicitno postaviti za aplikacije koje se bave osetljivim informacijama kako bi se sprečile neovlašćene rezervne kopije podataka putem adb, posebno kada je usb debugging omogućen. - **Mrežna sigurnost**: Prilagođene konfiguracije mrežne sigurnosti (`android:networkSecurityConfig="@xml/network_security_config"`) u _res/xml/_ mogu specificirati sigurnosne detalje kao što su pinovi sertifikata i podešavanja HTTP saobraćaja. Primer je omogućavanje HTTP saobraćaja za određene domene. - **Izvezene aktivnosti i servisi**: Identifikacija izvezenih aktivnosti i servisa u manifestu može istaknuti komponente koje bi mogle biti zloupotrebljene. Dalja analiza tokom dinamičkog testiranja može otkriti kako iskoristiti ove komponente. @@ -87,7 +88,7 @@ tapjacking.md ### Task Hijacking -**Aktivnost** sa **`launchMode`** postavljenim na **`singleTask` bez definisanog `taskAffinity`** je ranjiva na task hijacking. To znači da se **aplikacija** može instalirati i ako se pokrene pre prave aplikacije, mogla bi **oteti zadatak prave aplikacije** (tako da korisnik misli da koristi pravu aplikaciju dok zapravo koristi **malicioznu aplikaciju**). +**Aktivnost** sa **`launchMode`** postavljenim na **`singleTask` bez definisanog `taskAffinity`** je ranjiva na hijacking zadatka. To znači da se **aplikacija** može instalirati i ako se pokrene pre prave aplikacije, mogla bi **ukrasti zadatak prave aplikacije** (tako da korisnik misli da koristi **malicioznu aplikaciju misleći da koristi pravu**). Više informacija u: @@ -113,16 +114,16 @@ Kada se radi o datotekama na **eksternom skladištu**, kao što su SD kartice, t 1. **Pristupačnost**: - Datoteke na eksternom skladištu su **globalno čitljive i zapisive**. To znači da bilo koja aplikacija ili korisnik može pristupiti tim datotekama. 2. **Sigurnosne brige**: -- S obzirom na lakoću pristupa, savetuje se **da se ne čuvaju osetljive informacije** na eksternom skladištu. +- S obzirom na lakoću pristupa, savetuje se **da se ne skladište osetljive informacije** na eksternom skladištu. - Eksterno skladište može biti uklonjeno ili pristupljeno od strane bilo koje aplikacije, što ga čini manje sigurnim. 3. **Rukovanje podacima iz eksternog skladišta**: - Uvek **izvršite validaciju unosa** na podacima preuzetim iz eksternog skladišta. Ovo je ključno jer su podaci iz nepouzdanog izvora. -- Čuvanje izvršnih ili klasa datoteka na eksternom skladištu za dinamičko učitavanje se snažno ne preporučuje. +- Skladištenje izvršnih ili klasa datoteka na eksternom skladištu za dinamičko učitavanje se snažno ne preporučuje. - Ako vaša aplikacija mora preuzeti izvršne datoteke iz eksternog skladišta, osigurajte da su te datoteke **potpisane i kriptografski verifikovane** pre nego što se dinamički učitaju. Ovaj korak je ključan za održavanje sigurnosne integriteta vaše aplikacije. Eksterno skladište može biti **pristupano** u `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard` -> [!NAPOMENA] +> [!TIP] > Počevši od Android 4.4 (**API 17**), SD kartica ima strukturu direktorijuma koja **ograničava pristup aplikaciji na direktorijum koji je specifično za tu aplikaciju**. Ovo sprečava malicioznu aplikaciju da dobije pristup za čitanje ili pisanje datoteka druge aplikacije. **Osetljivi podaci pohranjeni u čistom tekstu** @@ -132,7 +133,7 @@ Eksterno skladište može biti **pristupano** u `/storage/emulated/0`, `/sdcard` ### Slomljeni TLS -**Prihvatanje svih sertifikata** +**Prihvati sve sertifikate** Iz nekog razloga, ponekad programeri prihvataju sve sertifikate čak i ako, na primer, ime hosta ne odgovara sa linijama koda poput sledeće: ```java @@ -149,15 +150,15 @@ Neki programeri čuvaju osetljive podatke u lokalnoj memoriji i šifruju ih klju **Korišćenje Nesigurnih i/ili Zastarelih Algoritama** -Programeri ne bi trebali koristiti **zastarele algoritme** za obavljanje **provera** autorizacije, **čuvanje** ili **slanje** podataka. Neki od ovih algoritama su: RC4, MD4, MD5, SHA1... Ako se **hash-ovi** koriste za čuvanje lozinki, na primer, treba koristiti hash-ove otporne na **brute-force** sa solju. +Programeri ne bi trebali koristiti **zastarele algoritme** za obavljanje **provera** autorizacije, **čuvanje** ili **slanje** podataka. Neki od ovih algoritama su: RC4, MD4, MD5, SHA1... Ako se **hash-ovi** koriste za čuvanje lozinki, na primer, treba koristiti hash-ove otporne na brute-force sa solju. ### Ostale provere -- Preporučuje se da se **obfuskira APK** kako bi se otežao posao obrnute inženjeringa napadačima. -- Ako je aplikacija osetljiva (kao što su bankarske aplikacije), treba da izvrši **svoje provere da vidi da li je mobilni uređaj root-ovan** i da deluje u skladu s tim. -- Ako je aplikacija osetljiva (kao što su bankarske aplikacije), treba da proveri da li se koristi **emulator**. -- Ako je aplikacija osetljiva (kao što su bankarske aplikacije), treba da **proveri svoju integritet pre izvršavanja** kako bi proverila da li je modifikovana. -- Koristite [**APKiD**](https://github.com/rednaga/APKiD) da proverite koji je kompajler/paker/obfuskator korišćen za izradu APK-a. +- Preporučuje se da se **obfuskira APK** kako bi se otežao rad obrnute inženjeringa napadačima. +- Ako je aplikacija osetljiva (kao što su bankarske aplikacije), trebala bi da izvrši **svoje provere da vidi da li je mobilni uređaj root-ovan** i da deluje u skladu s tim. +- Ako je aplikacija osetljiva (kao što su bankarske aplikacije), trebala bi da proveri da li se koristi **emulator**. +- Ako je aplikacija osetljiva (kao što su bankarske aplikacije), trebala bi da **proveri svoju integritet pre izvršavanja** da bi proverila da li je modifikovana. +- Koristite [**APKiD**](https://github.com/rednaga/APKiD) da proverite koji je kompajler/paker/obfuskator korišćen za izgradnju APK-a. ### React Native Aplikacija @@ -187,7 +188,7 @@ Sa ovim znanjem, **mariana-trench će pregledati kod i pronaći moguće ranjivos ### Otkriće Tajni -Aplikacija može sadržati tajne (API ključeve, lozinke, skrivene URL-ove, subdomene...) unutar nje koje biste mogli otkriti. Možete koristiti alat kao što je [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks). +Aplikacija može sadržati tajne (API ključeve, lozinke, skrivene URL-ove, poddomene...) unutar nje koje biste mogli otkriti. Možete koristiti alat kao što je [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks). ### Obilaženje Biometrijske Autentifikacije @@ -218,7 +219,7 @@ content-protocol.md ### Online Dinamička analiza -Možete kreirati **besplatan nalog** na: [https://appetize.io/](https://appetize.io). Ova platforma vam omogućava da **otpremite** i **izvršite** APK-ove, tako da je korisna za gledanje kako se apk ponaša. +Možete napraviti **besplatan nalog** na: [https://appetize.io/](https://appetize.io). Ova platforma vam omogućava da **otpremite** i **izvršite** APK-ove, tako da je korisna za gledanje kako se apk ponaša. Možete čak i **videti logove vaše aplikacije** na vebu i povezati se putem **adb**. @@ -237,17 +238,17 @@ Zahvaljujući ADB konekciji možete koristiti **Drozer** i **Frida** unutar emul avd-android-virtual-device.md {{#endref}} -- [**Genymotion**](https://www.genymotion.com/fun-zone/) **(Besplatna verzija:** Personal Edition, morate kreirati nalog. _Preporučuje se da **preuzmete** verziju **SA** _**VirtualBox** da biste izbegli potencijalne greške._) +- [**Genymotion**](https://www.genymotion.com/fun-zone/) **(Besplatna verzija:** Personal Edition, morate napraviti nalog. _Preporučuje se da **preuzmete** verziju **SA**_ _**VirtualBox** da biste izbegli potencijalne greške._) - [**Nox**](https://es.bignox.com) (Besplatno, ali ne podržava Frida ili Drozer). -> [!NOTE] -> Kada kreirate novi emulator na bilo kojoj platformi, zapamtite da što je veći ekran, emulator će sporije raditi. Dakle, odaberite male ekrane ako je moguće. +> [!TIP] +> Kada kreirate novi emulator na bilo kojoj platformi, zapamtite da što je veći ekran, emulator će sporije raditi. Dakle, izaberite male ekrane ako je moguće. Da biste **instalirali google usluge** (kao što je AppStore) u Genymotion-u, potrebno je da kliknete na crveno označeno dugme na sledećoj slici: ![](<../../images/image (277).png>) -Takođe, primetite da u **konfiguraciji Android VM u Genymotion-u** možete odabrati **Bridge Network mode** (to će biti korisno ako ćete se povezivati na Android VM iz različitog VM-a sa alatima). +Takođe, primetite da u **konfiguraciji Android VM u Genymotion-u** možete izabrati **Bridge Network mode** (ovo će biti korisno ako ćete se povezivati na Android VM iz različitog VM-a sa alatima). #### Koristite fizički uređaj @@ -266,7 +267,7 @@ Morate aktivirati **debugging** opcije i bilo bi dobro ako možete **root-ovati* **Logovanje** -Programeri bi trebali biti oprezni da ne izlažu **informacije za debagovanje** javno, jer to može dovesti do curenja osetljivih podataka. Alati [**pidcat**](https://github.com/JakeWharton/pidcat) i `adb logcat` se preporučuju za praćenje logova aplikacije kako bi se identifikovale i zaštitile osetljive informacije. **Pidcat** je omiljen zbog svoje jednostavnosti korišćenja i čitljivosti. +Programeri bi trebali biti oprezni da ne izlažu **informacije za debagovanje** javno, jer to može dovesti do curenja osetljivih podataka. Preporučuju se alati [**pidcat**](https://github.com/JakeWharton/pidcat) i `adb logcat` za praćenje logova aplikacije kako bi se identifikovale i zaštitile osetljive informacije. **Pidcat** je omiljen zbog svoje jednostavnosti korišćenja i čitljivosti. > [!WARNING] > Imajte na umu da od **novijih verzija Android-a 4.0**, **aplikacije mogu pristupiti samo svojim logovima**. Dakle, aplikacije ne mogu pristupiti logovima drugih aplikacija.\ @@ -284,7 +285,7 @@ Kao pentester, **pokušajte da pogledate ove logove**. **Podaci o Analitici Poslati Trećim Stranama** -Aplikacije često integrišu usluge poput Google Adsense, što može nenamerno **procuriti osetljive podatke** zbog nepravilne implementacije od strane programera. Da biste identifikovali potencijalna curenja podataka, preporučuje se da **presretnete saobraćaj aplikacije** i proverite da li se šalju bilo kakve osetljive informacije trećim stranama. +Aplikacije često integrišu usluge poput Google Adsense, što može nenamerno **procuriti osetljive podatke** zbog nepravilne implementacije od strane programera. Da biste identifikovali potencijalna curenja podataka, preporučuje se da **presretnete saobraćaj aplikacije** i proverite da li se šalju osetljive informacije trećim stranama. ### SQLite DBs @@ -307,7 +308,7 @@ Takođe zapamtite da kod aktivnosti počinje u **`onCreate`** metodi. **Obilaženje autorizacije** -Kada je Aktivnost eksportovana, možete pozvati njen ekran iz spoljne aplikacije. Stoga, ako je aktivnost sa **osetljivim informacijama** **eksportovana**, mogli biste **obići** **mehanizme autentifikacije** **da biste joj pristupili.** +Kada je Aktivnost eksportovana, možete pozvati njen ekran iz spoljne aplikacije. Stoga, ako je aktivnost sa **osetljivim informacijama** **eksportovana**, mogli biste **obići** mehanizme **autentifikacije** **da biste joj pristupili.** [**Naučite kako da eksploatišete eksportovane aktivnosti sa Drozer-om.**](drozer-tutorial/index.html#activities) @@ -318,43 +319,43 @@ Takođe možete pokrenuti eksportovanu aktivnost iz adb: ```bash adb shell am start -n com.example.demo/com.example.test.MainActivity ``` -**NAPOMENA**: MobSF će detektovati kao malicioznu upotrebu _**singleTask/singleInstance**_ kao `android:launchMode` u aktivnosti, ali zbog [ovoga](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750), očigledno je da je to opasno samo na starim verzijama (API verzije < 21). +**NAPOMENA**: MobSF će detektovati kao zlonamerno korišćenje _**singleTask/singleInstance**_ kao `android:launchMode` u aktivnosti, ali zbog [ovoga](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750), očigledno je da je to opasno samo na starim verzijama (API verzije < 21). -> [!NAPOMENA] +> [!TIP] > Imajte na umu da zaobilaženje autorizacije nije uvek ranjivost, to zavisi od načina na koji zaobilaženje funkcioniše i koje informacije su izložene. **Curjenje osetljivih informacija** -**Aktivnosti takođe mogu vraćati rezultate**. Ako uspete da pronađete izvezenu i nezaštićenu aktivnost koja poziva metodu **`setResult`** i **vraća osetljive informacije**, dolazi do curenja osetljivih informacija. +**Aktivnosti takođe mogu vraćati rezultate**. Ako uspete da pronađete izvezenu i nezaštićenu aktivnost koja poziva **`setResult`** metodu i **vraća osetljive informacije**, dolazi do curenja osetljivih informacija. #### Tapjacking Ako tapjacking nije sprečen, mogli biste zloupotrebiti izvezenu aktivnost da naterate **korisnika da izvrši neočekivane radnje**. Za više informacija o [**šta je Tapjacking pratite link**](#tapjacking). -### Iskorišćavanje Content Providers - Pristup i manipulacija osetljivim informacijama +### Eksploatacija Content Providers - Pristup i manipulacija osetljivim informacijama [**Pročitajte ovo ako želite da osvežite šta je Content Provider.**](android-applications-basics.md#content-provider)\ Content providers se osnovno koriste za **deljenje podataka**. Ako aplikacija ima dostupne content providers, možda ćete moći da **izvučete osetljive** podatke iz njih. Takođe je zanimljivo testirati moguće **SQL injekcije** i **Path Traversals** jer bi mogli biti ranjivi. -[**Saznajte kako da iskoristite Content Providers sa Drozer-om.**](drozer-tutorial/index.html#content-providers) +[**Saznajte kako da eksploatišete Content Providers sa Drozer-om.**](drozer-tutorial/index.html#content-providers) -### **Iskorišćavanje Servisa** +### **Eksploatacija Servisa** [**Pročitajte ovo ako želite da osvežite šta je Servis.**](android-applications-basics.md#services)\ Zapamtite da akcije Servisa počinju u metodi `onStartCommand`. Servis je osnovno nešto što **može primati podatke**, **obrađivati** ih i **vraćati** (ili ne) odgovor. Dakle, ako aplikacija izveze neke servise, trebali biste **proveriti** **kod** da biste razumeli šta radi i **testirati** ga **dinamički** za izvlačenje poverljivih informacija, zaobilaženje mera autentifikacije...\ -[**Saznajte kako da iskoristite Servise sa Drozer-om.**](drozer-tutorial/index.html#services) +[**Saznajte kako da eksploatišete Servise sa Drozer-om.**](drozer-tutorial/index.html#services) -### **Iskorišćavanje Broadcast Receivers** +### **Eksploatacija Broadcast Receivers** [**Pročitajte ovo ako želite da osvežite šta je Broadcast Receiver.**](android-applications-basics.md#broadcast-receivers)\ Zapamtite da akcije Broadcast Receiver-a počinju u metodi `onReceive`. Broadcast receiver će čekati na određenu vrstu poruke. U zavisnosti od toga kako receiver obrađuje poruku, mogao bi biti ranjiv.\ -[**Saznajte kako da iskoristite Broadcast Receivers sa Drozer-om.**](#exploiting-broadcast-receivers) +[**Saznajte kako da eksploatišete Broadcast Receivers sa Drozer-om.**](#exploiting-broadcast-receivers) -### **Iskorišćavanje Schemes / Deep links** +### **Eksploatacija Schemes / Deep links** Možete ručno tražiti deep links, koristeći alate kao što je MobSF ili skripte poput [ove](https://github.com/ashleykinguk/FBLinkBuilder/blob/master/FBLinkBuilder.py).\ Možete **otvoriti** deklarisani **scheme** koristeći **adb** ili **pregledač**: @@ -380,14 +381,14 @@ Svaki put kada pronađete deep link, proverite da **ne prima osetljive podatke ( **Parametri u putanji** -Trebalo bi da **proverite i da li neki deep link koristi parametar unutar putanje** URL-a kao što je: `https://api.example.com/v1/users/{username}`, u tom slučaju možete primorati prelazak putanje pristupajući nečemu poput: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\ +Trebalo bi da **proverite i da li neki deep link koristi parametar unutar putanje** URL-a kao što je: `https://api.example.com/v1/users/{username}`, u tom slučaju možete primorati putanju da pređe na nešto poput: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\ Imajte na umu da ako pronađete ispravne krajnje tačke unutar aplikacije, možda ćete moći da izazovete **Open Redirect** (ako je deo putanje korišćen kao naziv domena), **preuzimanje naloga** (ako možete da modifikujete korisničke podatke bez CSRF tokena i ranjiva krajnja tačka koristi ispravnu metodu) i bilo koju drugu ranjivost. Više [informacija o ovome ovde](http://dphoeniixx.com/2020/12/13-2/). **Još primera** Jedan [zanimljiv izveštaj o bug bounty](https://hackerone.com/reports/855618) o linkovima (_/.well-known/assetlinks.json_). -### Neuspešne inspekcije i verifikacije transportnog sloja +### Neuspeh inspekcije i verifikacije transportnog sloja - **Sertifikati se ne proveravaju uvek pravilno** od strane Android aplikacija. Uobičajeno je da ove aplikacije zanemaruju upozorenja i prihvataju samopotpisane sertifikate ili, u nekim slučajevima, vraćaju se na korišćenje HTTP veza. - **Pregovori tokom SSL/TLS rukovanja su ponekad slabi**, koristeći nesigurne kriptografske suite. Ova ranjivost čini vezu podložnom napadima "čovek u sredini" (MITM), omogućavajući napadačima da dešifruju podatke. @@ -403,18 +404,20 @@ SSL Pinning je mera sigurnosti gde aplikacija proverava sertifikat servera u odn #### Inspekcija saobraćaja -Da biste inspektovali HTTP saobraćaj, potrebno je **instalirati sertifikat alata za proxy** (npr. Burp). Bez instalacije ovog sertifikata, šifrovani saobraćaj možda neće biti vidljiv kroz proxy. Za vodič o instalaciji prilagođenog CA sertifikata, [**kliknite ovde**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine). +Da biste inspekciju HTTP saobraćaja, potrebno je **instalirati sertifikat alata za proxy** (npr. Burp). Bez instalacije ovog sertifikata, šifrovani saobraćaj možda neće biti vidljiv kroz proxy. Za vodič o instalaciji prilagođenog CA sertifikata, [**kliknite ovde**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine). -Aplikacije koje ciljaju **API Level 24 i više** zahtevaju izmene u Network Security Config kako bi prihvatile CA sertifikat proksija. Ovaj korak je ključan za inspekciju šifrovanog saobraćaja. Za uputstva o izmeni Network Security Config, [**pogledajte ovaj tutorijal**](make-apk-accept-ca-certificate.md). +Aplikacije koje ciljaju **API nivo 24 i više** zahtevaju izmene u Network Security Config kako bi prihvatile CA sertifikat proksija. Ovaj korak je ključan za inspekciju šifrovanog saobraćaja. Za uputstva o izmeni Network Security Config, [**pogledajte ovaj tutorijal**](make-apk-accept-ca-certificate.md). -#### Obilaženje SSL Pinninga +Ako se koristi **Flutter**, potrebno je da pratite uputstva na [**ovoj stranici**](flutter.md). To je zato što, samo dodavanje sertifikata u skladište neće raditi jer Flutter ima svoju listu važećih CA. -Kada je SSL Pinning implementiran, obilaženje postaje neophodno za inspekciju HTTPS saobraćaja. Različite metode su dostupne za ovu svrhu: +#### Zaobilaženje SSL Pinninga -- Automatski **modifikujte** **apk** da **obidjete** SSLPinning sa [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Najveća prednost ove opcije je to što vam neće biti potrebna root privilegija da obidjete SSL Pinning, ali ćete morati da obrišete aplikaciju i ponovo instalirate novu, a to ne mora uvek da funkcioniše. -- Možete koristiti **Frida** (o kojoj se govori u nastavku) da obidjete ovu zaštitu. Ovde imate vodič za korišćenje Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/) -- Takođe možete pokušati da **automatski obidjete SSL Pinning** koristeći [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"` -- Takođe možete pokušati da **automatski obidjete SSL Pinning** koristeći **MobSF dinamičku analizu** (objašnjeno u nastavku) +Kada je SSL Pinning implementiran, zaobilaženje postaje neophodno za inspekciju HTTPS saobraćaja. Različite metode su dostupne za ovu svrhu: + +- Automatski **modifikujte** **apk** da **zaobiđe** SSLPinning sa [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Najveća prednost ove opcije je što vam neće biti potrebna root privilegija da zaobiđete SSL Pinning, ali ćete morati da obrišete aplikaciju i ponovo instalirate novu, a to ne mora uvek da funkcioniše. +- Možete koristiti **Frida** (o kojoj se govori u nastavku) da zaobiđete ovu zaštitu. Ovde imate vodič za korišćenje Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/) +- Takođe možete pokušati da **automatski zaobiđete SSL Pinning** koristeći [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"` +- Takođe možete pokušati da **automatski zaobiđete SSL Pinning** koristeći **MobSF dinamičku analizu** (objašnjeno u nastavku) - Ako i dalje mislite da postoji neki saobraćaj koji ne hvata, možete pokušati da **prosledite saobraćaj do burp-a koristeći iptables**. Pročitajte ovaj blog: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62) #### Traženje uobičajenih web ranjivosti @@ -431,7 +434,7 @@ Ako želite da testirate Android aplikacije, morate znati kako koristiti Frida. - Neki "GUI" za akcije sa Frida: [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security) - Ojection je odličan za automatizaciju korišćenja Frida: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon) - Možete pronaći neke sjajne Frida skripte ovde: [**https://codeshare.frida.re/**](https://codeshare.frida.re) -- Pokušajte da obidjete mehanizme protiv debagovanja / anti-frida učitavanjem Frida kao što je naznačeno u [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (alat [linjector](https://github.com/erfur/linjector-rs)) +- Pokušajte da zaobiđete anti-debugging / anti-frida mehanizme učitavanjem Frida kao što je naznačeno u [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (alat [linjector](https://github.com/erfur/linjector-rs)) ### **Dump Memorije - Fridump** @@ -446,7 +449,7 @@ python3 fridump3.py -u frida-ps -Uai python3 fridump3.py -u "" ``` -Ovo će isprazniti memoriju u ./dump folder, a tamo možete pretraživati sa nečim poput: +Ovo će isprazniti memoriju u ./dump folder, i tamo možete koristiti grep sa nečim poput: ```bash strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+$" ``` @@ -468,7 +471,7 @@ frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f ` `VT_UPLOAD = TRUE`). Takođe možete postaviti `VT_UPLOAD` na `False`, tada će **hash** biti **upload** umesto datoteke. @@ -530,7 +533,7 @@ MobSF takođe omogućava **diff/Compare** analizu i integraciju sa **VirusTotal* **MobSF** može biti veoma koristan za **dinamičku analizu** u **Android**, ali u tom slučaju ćete morati da instalirate MobSF i **genymotion** na vašem hostu (VM ili Docker neće raditi). _Napomena: Prvo treba da **pokrenete VM u genymotion** a **zatim MobSF.**_\ **MobSF dinamički analizer** može: -- **Dump podataka aplikacije** (URL-ovi, logovi, clipboard, screenshot-ovi koje ste napravili, screenshot-ovi napravljeni od strane "**Exported Activity Tester**", emailovi, SQLite baze podataka, XML datoteke i druge kreirane datoteke). Sve ovo se radi automatski osim za screenshot-ove, morate pritisnuti kada želite screenshot ili morate pritisnuti "**Exported Activity Tester**" da biste dobili screenshot-ove svih eksportovanih aktivnosti. +- **Dump podataka aplikacije** (URL-ovi, logovi, clipboard, screenshot-ovi koje ste napravili, screenshot-ovi koje je napravio "**Exported Activity Tester**", emailovi, SQLite baze podataka, XML datoteke i druge kreirane datoteke). Sve ovo se radi automatski osim za screenshot-ove, morate pritisnuti kada želite screenshot ili morate pritisnuti "**Exported Activity Tester**" da biste dobili screenshot-ove svih izvezenih aktivnosti. - Zabeležiti **HTTPS saobraćaj** - Koristiti **Frida** za dobijanje **runtime** **informacija** @@ -538,11 +541,11 @@ Od android **verzija > 5**, automatski će **pokrenuti Frida** i postaviće glob **Frida** -Po defaultu, takođe će koristiti neke Frida skripte za **obići SSL pinning**, **detekciju root-a** i **detekciju debagera** i za **monitorisanje interesantnih API-a**.\ -MobSF takođe može **pozvati eksportovane aktivnosti**, uhvatiti **screenshot-ove** njih i **sačuvati** ih za izveštaj. +Po defaultu, takođe će koristiti neke Frida skripte za **obići SSL pinning**, **detekciju root-a** i **detekciju debagera** i za **monitorisanje zanimljivih API-ja**.\ +MobSF takođe može **pozvati izvezene aktivnosti**, uhvatiti **screenshot-ove** njih i **sačuvati** ih za izveštaj. -Da biste **počeli** dinamičko testiranje pritisnite zeleni dugme: "**Start Instrumentation**". Pritisnite "**Frida Live Logs**" da biste videli logove generisane Frida skriptama i "**Live API Monitor**" da biste videli sve pozive ka uhvaćenim metodama, prosleđene argumente i vraćene vrednosti (ovo će se pojaviti nakon pritiska na "Start Instrumentation").\ -MobSF takođe omogućava da učitate svoje **Frida skripte** (da biste poslali rezultate vaših Frida skripti u MobSF koristite funkciju `send()`). Takođe ima **several pre-written scripts** koje možete učitati (možete dodati više u `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), samo **izaberite ih**, pritisnite "**Load**" i pritisnite "**Start Instrumentation**" (moći ćete da vidite logove tih skripti unutar "**Frida Live Logs**"). +Da **počnete** dinamičko testiranje pritisnite zeleni dugme: "**Start Instrumentation**". Pritisnite "**Frida Live Logs**" da biste videli logove generisane Frida skriptama i "**Live API Monitor**" da biste videli sve pozive ka uhvaćenim metodama, prosleđene argumente i vraćene vrednosti (ovo će se pojaviti nakon pritiska na "Start Instrumentation").\ +MobSF takođe omogućava da učitate svoje **Frida skripte** (da biste poslali rezultate svojih Frida skripti u MobSF koristite funkciju `send()`). Takođe ima **several pre-written scripts** koje možete učitati (možete dodati više u `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), samo **izaberite ih**, pritisnite "**Load**" i pritisnite "**Start Instrumentation**" (moći ćete da vidite logove tih skripti unutar "**Frida Live Logs**"). ![](<../../images/image (419).png>) @@ -553,9 +556,9 @@ Pored toga, imate neke pomoćne Frida funkcionalnosti: - **Capture String Comparisons**: Može biti veoma korisno. **Prikazaće 2 stringa koja se upoređuju** i da li je rezultat bio True ili False. - **Enumerate Class Methods**: Unesite ime klase (kao "java.io.File") i ispisuje sve metode klase. - **Search Class Pattern**: Pretražuje klase po obrascu -- **Trace Class Methods**: **Prati** celu **klasu** (vidi ulaze i izlaze svih metoda klase). Zapamtite da po defaultu MobSF prati nekoliko interesantnih Android API metoda. +- **Trace Class Methods**: **Prati** celu **klasu** (vidi ulaze i izlaze svih metoda klase). Zapamtite da po defaultu MobSF prati nekoliko zanimljivih Android API metoda. -Kada izaberete pomoćni modul koji želite da koristite, potrebno je da pritisnete "**Start Intrumentation**" i videćete sve izlaze u "**Frida Live Logs**". +Kada izaberete pomoćni modul koji želite da koristite, potrebno je da pritisnete "**Start Instrumentation**" i videćete sve izlaze u "**Frida Live Logs**". **Shell** @@ -575,7 +578,7 @@ Da biste to uradili, _uključite Burp -->_ _isključite Intercept --> u MobSB HT Kada završite dinamičku analizu sa MobSF, možete pritisnuti na "**Start Web API Fuzzer**" da **fuzz-ujete http zahteve** i tražite ranjivosti. -> [!NOTE] +> [!TIP] > Nakon izvođenja dinamičke analize sa MobSF, podešavanja proksija mogu biti pogrešno konfigurisana i nećete moći da ih popravite iz GUI-a. Možete popraviti podešavanja proksija tako što ćete uraditi: > > ``` @@ -595,7 +598,7 @@ Ovo je **sjajan alat za izvođenje statičke analize sa GUI-jem** ### [Qark](https://github.com/linkedin/qark) -Ovaj alat je dizajniran da traži nekoliko **ranjivosti vezanih za bezbednost Android aplikacija**, bilo u **izvor kodu** ili **pakovanim APK-ima**. Alat je takođe **sposoban da kreira "Proof-of-Concept" deployable APK** i **ADB komande**, da bi iskoristio neke od pronađenih ranjivosti (Izložene aktivnosti, intencije, tapjacking...). Kao i sa Drozer-om, nije potrebno root-ovati test uređaj. +Ovaj alat je dizajniran da traži nekoliko **ranjivosti vezanih za sigurnost Android aplikacija**, bilo u **izvor kodu** ili **pakovanim APK-ima**. Alat je takođe **sposoban da kreira "Proof-of-Concept" deployable APK** i **ADB komande**, da bi iskoristio neke od pronađenih ranjivosti (Izložene aktivnosti, intencije, tapjacking...). Kao i sa Drozer-om, nije potrebno root-ovati test uređaj. ```bash pip3 install --user qark # --user is only needed if not using a virtualenv qark --apk path/to/my.apk @@ -604,7 +607,7 @@ qark --java path/to/specific/java/file.java ``` ### [**ReverseAPK**](https://github.com/1N3/ReverseAPK.git) -- Prikazuje sve ekstrahovane datoteke radi lakšeg referenciranja +- Prikazuje sve ekstrahovane datoteke za laku referencu - Automatski dekompajlira APK datoteke u Java i Smali format - Analizira AndroidManifest.xml za uobičajene ranjivosti i ponašanje - Staticka analiza izvornog koda za uobičajene ranjivosti i ponašanje @@ -617,7 +620,7 @@ reverse-apk relative/path/to/APP.apk SUPER je aplikacija za komandnu liniju koja se može koristiti na Windows, MacOS X i Linux, koja analizira _.apk_ datoteke u potrazi za ranjivostima. To radi dekompresovanjem APK-ova i primenom niza pravila za otkrivanje tih ranjivosti. -Sva pravila su centrirana u `rules.json` datoteci, a svaka kompanija ili tester može kreirati svoja pravila za analizu onoga što im je potrebno. +Sva pravila su fokusirana u `rules.json` datoteci, a svaka kompanija ili tester može kreirati svoja pravila za analizu onoga što im je potrebno. Preuzmite najnovije binarne datoteke sa [strane za preuzimanje](https://superanalyzer.rocks/download.html) ``` @@ -649,7 +652,7 @@ androbugs.exe -f [APK file] Detekcija se vrši **statčkom analizom** Dalvik bytecode-a aplikacije, predstavljenog kao **Smali**, uz pomoć biblioteke [`androguard`](https://github.com/androguard/androguard). -Ovaj alat traži **uobičajeno ponašanje "loših" aplikacija** kao što su: Ekstrakcija telekomunikacionih identifikatora, presretanje audio/video toka, modifikacija PIM podataka, izvršavanje proizvoljnog koda... +Ovaj alat traži **uobičajeno ponašanje "loših" aplikacija** kao što su: eksfiltracija telekomunikacionih identifikatora, presretanje audio/video toka, modifikacija PIM podataka, izvršavanje proizvoljnog koda... ``` python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3 ``` @@ -657,7 +660,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3 ![](<../../images/image (595).png>) -**MARA** je **M**obilna **A**plikacija **R**everzno inženjerstvo i **A**naliza okvir. To je alat koji okuplja često korišćene alate za reverzno inženjerstvo i analizu mobilnih aplikacija, kako bi pomogao u testiranju mobilnih aplikacija protiv OWASP mobilnih bezbednosnih pretnji. Njegov cilj je da ovu zadatak učini lakšim i prijatnijim za programere mobilnih aplikacija i stručnjake za bezbednost. +**MARA** je **M**obilna **A**plikacija **R**everzno inženjerstvo i **A**naliza Framework. To je alat koji okuplja često korišćene alate za reverzno inženjerstvo i analizu mobilnih aplikacija, kako bi pomogao u testiranju mobilnih aplikacija protiv OWASP mobilnih bezbednosnih pretnji. Njegov cilj je da olakša ovaj zadatak i učini ga prijatnijim za programere mobilnih aplikacija i stručnjake za bezbednost. Može da: @@ -674,11 +677,11 @@ Koristan za otkrivanje malvera: [https://koodous.com/](https://koodous.com) ## Obfuscating/Deobfuscating code -Napomena da zavisno od usluge i konfiguracije koju koristite za obfuskaciju koda. Tajne mogu ili ne moraju biti obfuskirane. +Imajte na umu da zavisno od usluge i konfiguracije koju koristite za obfuskaciju koda. Tajne mogu ili ne moraju biti obfuskirane. ### [ProGuard]() -Sa [Vikipedije](): **ProGuard** je open source alat za komandnu liniju koji smanjuje, optimizuje i obfuskira Java kod. U stanju je da optimizuje bajtkod kao i da otkrije i ukloni neiskorišćene instrukcije. ProGuard je besplatan softver i distribuira se pod GNU General Public License, verzija 2. +Sa [Vikipedije](): **ProGuard** je open source alat za komandnu liniju koji smanjuje, optimizuje i obfuskira Java kod. U stanju je da optimizuje bajtkod kao i da detektuje i ukloni neiskorišćene instrukcije. ProGuard je besplatan softver i distribuira se pod GNU General Public License, verzija 2. ProGuard se distribuira kao deo Android SDK-a i pokreće se prilikom izgradnje aplikacije u režimu objavljivanja. @@ -696,7 +699,7 @@ Pronađite vodič korak po korak za deobfuskaciju apk-a na [https://blog.lexfo.f ### [DeGuard](http://apk-deguard.com) -**DeGuard preokreće proces obfuskacije koji izvode Android alati za obfuskaciju. Ovo omogućava brojne analize bezbednosti, uključujući inspekciju koda i predikciju biblioteka.** +**DeGuard obrnuto izvršava proces obfuskacije koji su izvršili alati za obfuskaciju Android-a. Ovo omogućava brojne analize bezbednosti, uključujući inspekciju koda i predikciju biblioteka.** Možete da otpremite obfuskovani APK na njihovu platformu. @@ -710,7 +713,7 @@ To je **generički android deobfuskator.** Simplify **virtuelno izvršava aplika ### [APKiD](https://github.com/rednaga/APKiD) -APKiD vam daje informacije o **kako je APK napravljen**. Identifikuje mnoge **kompilatore**, **pakere**, **obfuskatore**, i druge čudne stvari. To je [_PEiD_](https://www.aldeid.com/wiki/PEiD) za Android. +APKiD vam daje informacije o **kako je APK napravljen**. Identifikuje mnoge **kompilatore**, **pakere**, **obfuskatore** i druge čudne stvari. To je [_PEiD_](https://www.aldeid.com/wiki/PEiD) za Android. ### Manual @@ -720,13 +723,13 @@ APKiD vam daje informacije o **kako je APK napravljen**. Identifikuje mnoge **ko ### [Androl4b](https://github.com/sh4hin/Androl4b) -AndroL4b je Android bezbednosna virtuelna mašina zasnovana na ubuntu-mate koja uključuje kolekciju najnovijih okvira, tutorijala i laboratorija od različitih bezbednosnih entuzijasta i istraživača za reverzno inženjerstvo i analizu malvera. +AndroL4b je Android bezbednosna virtuelna mašina zasnovana na ubuntu-mate koja uključuje kolekciju najnovijih framework-a, tutorijala i laboratorija od različitih bezbednosnih entuzijasta i istraživača za reverzno inženjerstvo i analizu malvera. ## References - [https://owasp.org/www-project-mobile-app-security/](https://owasp.org/www-project-mobile-app-security/) - [https://appsecwiki.com/#/](https://appsecwiki.com/#/) To je odlična lista resursa -- [https://maddiestone.github.io/AndroidAppRE/](https://maddiestone.github.io/AndroidAppRE/) Brzi kurs o Androidu +- [https://maddiestone.github.io/AndroidAppRE/](https://maddiestone.github.io/AndroidAppRE/) Brzi kurs o Android-u - [https://manifestsecurity.com/android-application-security/](https://manifestsecurity.com/android-application-security/) - [https://github.com/Ralireza/Android-Security-Teryaagh](https://github.com/Ralireza/Android-Security-Teryaagh) - [https://www.youtube.com/watch?v=PMKnPaGWxtg\&feature=youtu.be\&ab_channel=B3nacSec](https://www.youtube.com/watch?v=PMKnPaGWxtg&feature=youtu.be&ab_channel=B3nacSec) diff --git a/src/mobile-pentesting/android-app-pentesting/shizuku-privileged-api.md b/src/mobile-pentesting/android-app-pentesting/shizuku-privileged-api.md new file mode 100644 index 000000000..48bab73e9 --- /dev/null +++ b/src/mobile-pentesting/android-app-pentesting/shizuku-privileged-api.md @@ -0,0 +1,123 @@ +# Shizuku Privileged API + +{{#include ../../banners/hacktricks-training.md}} + +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 izvesti 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 korišćenja: +* 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+) +1. Omogućite **Opcije za programere ➜ Bežično debagovanje** i uparite uređaj. +2. Unutar Shizuku aplikacije izaberite **“Start via Wireless debugging”** i kopirajte kod za uparivanje. +3. Servis opstaje do sledećeg ponovnog pokretanja (sesije bežičnog debagovanja se brišu pri pokretanju). + +### 1.2 USB / lokalni 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 +``` +Isti skript se može izvršiti preko **network ADB** veze (`adb connect :5555`). + +### 1.3 Rootovani uređaji +Ako je uređaj već rootovan, pokrenite: +```bash +su -c sh /data/adb/shizuku/start.sh +``` +### 1.4 Proveravanje da li radi +```bash +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`: +```xml + +``` +U vreme izvršavanja dobijaju binder: +```java +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 : +```java +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](https://github.com/timschneeb/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`). +```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 Korisne komande iz rish shell-a +* Prikazivanje aktivnih procesa datog paketa: +```bash +ps -A | grep com.facebook.katana +``` +* Nabrajanje slušajućih soketa i mapiranje na pakete (npr. **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 +``` +* Ispisivanje logova svake aplikacije: +```bash +logcat -d | grep -iE "(error|exception)" +``` +* Čitanje sačuvanih Wi-Fi kredencijala (Android 11 +): +```bash +cat /data/misc/wifi/WifiConfigStore.xml | grep -i "" +``` +* Masovno uklanjanje (primer): +```bash +pm uninstall --user 0 com.miui.weather2 +``` + +--- +## 4. Bezbednosna razmatranja / detekcija +1. 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`. +2. Usluga se registruje pod imenom `moe.shizuku.privileged.api`. +Jednostavna `adb shell service list | grep shizuku` (ili pravilo Endpoint Security) detektuje njeno prisustvo. +3. Mogućnosti su ograničene na ono što korisnik `shell` već može da uradi – **nije root**. +Osetljivi API-ji koji zahtevaju korisnika `system` ili `root` su i dalje nedostupni. +4. 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](https://www.mobile-hacker.com/2025/07/14/shizuku-unlocking-advanced-android-capabilities-without-root/) +- [Shizuku zvanična dokumentacija](https://shizuku.rikka.app/) +- [awesome-shizuku – lista podržanih aplikacija](https://github.com/timschneeb/awesome-shizuku) +- [rish shell (privilegovan reverse-adb shell)](https://github.com/RikkaApps/Shizuku/blob/master/RISH.md) + +{{#include ../../banners/hacktricks-training.md}}