hacktricks/mobile-pentesting/ios-pentesting-checklist.md

149 lines
9.9 KiB
Markdown

# iOS Pentesting Checklist
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim alatima zajednice na svetu.\
Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
{% endhint %}
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
***
### Priprema
* [ ] Pročitajte [**iOS Osnove**](ios-pentesting/ios-basics.md)
* [ ] Pripremite svoje okruženje čitajući [**iOS Testno Okruženje**](ios-pentesting/ios-testing-environment.md)
* [ ] Pročitajte sve sekcije [**iOS Početna Analiza**](ios-pentesting/#initial-analysis) da biste naučili uobičajene radnje za pentesting iOS aplikacije
### Skladištenje podataka
* [ ] [**Plist datoteke**](ios-pentesting/#plist) mogu se koristiti za skladištenje osetljivih informacija.
* [ ] [**Core Data**](ios-pentesting/#core-data) (SQLite baza podataka) može skladištiti osetljive informacije.
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (SQLite baza podataka) može skladištiti osetljive informacije.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) pogrešna konfiguracija.
* [ ] [**Realm baze podataka**](ios-pentesting/#realm-databases) mogu skladištiti osetljive informacije.
* [ ] [**Couchbase Lite baze podataka**](ios-pentesting/#couchbase-lite-databases) mogu skladištiti osetljive informacije.
* [ ] [**Binarni kolačići**](ios-pentesting/#cookies) mogu skladištiti osetljive informacije.
* [ ] [**Podaci u kešu**](ios-pentesting/#cache) mogu skladištiti osetljive informacije.
* [ ] [**Automatski snimci**](ios-pentesting/#snapshots) mogu sačuvati vizuelne osetljive informacije.
* [ ] [**Keychain**](ios-pentesting/#keychain) se obično koristi za skladištenje osetljivih informacija koje mogu ostati prilikom preprodaje telefona.
* [ ] Ukratko, samo **proverite osetljive informacije koje aplikacija čuva u datotečnom sistemu.**
### Tastature
* [ ] Da li aplikacija [**dozvoljava korišćenje prilagođenih tastatura**](ios-pentesting/#custom-keyboards-keyboard-cache)?
* [ ] Proverite da li su osetljive informacije sačuvane u [**datotekama keša tastatura**](ios-pentesting/#custom-keyboards-keyboard-cache).
### **Zapisi**
* [ ] Proverite da li se [**osetljive informacije beleže**](ios-pentesting/#logs).
### Bekap
* [ ] [**Bekap**](ios-pentesting/#backups) se može koristiti za **pristup osetljivim informacijama** sačuvanim u datotečnom sistemu (proverite početnu tačku ove liste).
* [ ] Takođe, [**bekap**](ios-pentesting/#backups) se može koristiti za **modifikaciju nekih konfiguracija aplikacije**, zatim **vratite** bekap na telefonu, i kako se **modifikovana konfiguracija** **učitava**, neka (bezbednosna) **funkcionalnost** može biti **zaobiđena**.
### **Memorija aplikacija**
* [ ] Proverite osetljive informacije unutar [**memorije aplikacije**](ios-pentesting/#testing-memory-for-sensitive-data).
### **Povređena kriptografija**
* [ ] Proverite da li možete pronaći [**lozinke korišćene za kriptografiju**](ios-pentesting/#broken-cryptography).
* [ ] Proverite korišćenje [**deprecated/slabih algoritama**](ios-pentesting/#broken-cryptography) za slanje/skladištenje osetljivih podataka.
* [ ] [**Hook i nadgledajte kriptografske funkcije**](ios-pentesting/#broken-cryptography).
### **Lokalna autentifikacija**
* [ ] Ako se u aplikaciji koristi [**lokalna autentifikacija**](ios-pentesting/#local-authentication), trebate proveriti kako autentifikacija funkcioniše.
* [ ] Ako koristi [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework), može se lako zaobići.
* [ ] Ako koristi [**funkciju koja se može dinamički zaobići**](ios-pentesting/#local-authentication-using-keychain), možete kreirati prilagođeni frida skript.
### Izloženost osetljive funkcionalnosti putem IPC
* [**Prilagođeni URI handleri / Deeplinks / Prilagođene sheme**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes).
* [ ] Proverite da li aplikacija **registruje bilo koji protokol/shema**.
* [ ] Proverite da li aplikacija **registruje korišćenje** bilo kog protokola/sheme.
* [ ] Proverite da li aplikacija **očekuje da primi bilo koju vrstu osetljivih informacija** iz prilagođene sheme koja može biti **presretnuta** od strane druge aplikacije koja registruje istu shemu.
* [ ] Proverite da li aplikacija **ne proverava i ne sanitizuje** korisnički unos putem prilagođene sheme i da li se neka **ranjivost može iskoristiti**.
* [ ] Proverite da li aplikacija **izlaže bilo koju osetljivu akciju** koja se može pozvati sa bilo kog mesta putem prilagođene sheme.
* [**Univerzalne veze**](ios-pentesting/#universal-links).
* [ ] Proverite da li aplikacija **registruje bilo koji univerzalni protokol/shema**.
* [ ] Proverite `apple-app-site-association` datoteku.
* [ ] Proverite da li aplikacija **ne proverava i ne sanitizuje** korisnički unos putem prilagođene sheme i da li se neka **ranjivost može iskoristiti**.
* [ ] Proverite da li aplikacija **izlaže bilo koju osetljivu akciju** koja se može pozvati sa bilo kog mesta putem prilagođene sheme.
* [**UIActivity deljenje**](ios-pentesting/ios-uiactivity-sharing.md).
* [ ] Proverite da li aplikacija može primati UIActivities i da li je moguće iskoristiti neku ranjivost sa posebno kreiranom aktivnošću.
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md).
* [ ] Proverite da li aplikacija **kopira bilo šta u opšti clipboard**.
* [ ] Proverite da li aplikacija **koristi podatke iz opšteg clipboard-a za bilo šta**.
* [ ] Nadgledajte clipboard da vidite da li je bilo koji **osetljivi podatak kopiran**.
* [**App Extensions**](ios-pentesting/ios-app-extensions.md).
* [ ] Da li aplikacija **koristi neku ekstenziju**?
* [**WebViews**](ios-pentesting/ios-webviews.md).
* [ ] Proverite koje vrste webview-a se koriste.
* [ ] Proverite status **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**.
* [ ] Proverite da li webview može **pristupiti lokalnim datotekama** sa protokolom **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`).
* [ ] Proverite da li Javascript može pristupiti **Native** **metodama** (`JSContext`, `postMessage`).
### Mrežna komunikacija
* [ ] Izvršite [**MitM na komunikaciji**](ios-pentesting/#network-communication) i tražite web ranjivosti.
* [ ] Proverite da li se [**hostname sertifikata**](ios-pentesting/#hostname-check) proverava.
* [ ] Proverite/zaobiđite [**Certificate Pinning**](ios-pentesting/#certificate-pinning).
### **Razno**
* [ ] Proverite [**mehanizme automatskog zakrčivanja/aktuelizovanja**](ios-pentesting/#hot-patching-enforced-updateing).
* [ ] Proverite [**zlonamerne biblioteke trećih strana**](ios-pentesting/#third-parties).
**Try Hard Security Group**
<figure><img src="../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>
{% embed url="https://discord.gg/tryhardsecurity" %}
{% hint style="success" %}
Učite i vežbajte AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)!
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili **pratite** nas na **Twitteru** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
{% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
\
Koristite [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim alatima zajednice na svetu.\
Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}