iOS Testing Environment

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Apple Developer Program

Provisioning identitet je kolekcija javnih i privatnih ključeva koji su povezani sa Apple developerskim nalogom. Da biste potpisali aplikacije morate platiti 99$/god za registraciju u Apple Developer Program kako biste dobili svoj provisioning identitet. Bez toga nećete moći pokrenuti aplikacije iz izvornog koda na fizičkom uređaju. Druga opcija je korišćenje jailbroken uređaja.

Počevši od Xcode 7.2, Apple je omogućio opciju za kreiranje besplatnog iOS razvojnog provisioning profila koji omogućava pisanje i testiranje vaše aplikacije na pravom iPhone-u. Idite na Xcode --> Preferences --> Accounts --> + (Dodajte novi Appli ID sa vašim pristupnim podacima) --> Kliknite na kreirani Apple ID --> Manage Certificates --> + (Apple Development) --> Done __Zatim, kako biste pokrenuli vašu aplikaciju na iPhone-u, prvo morate ukazati poverenje uređaju računaru. Zatim, možete pokušati pokrenuti aplikaciju na mobilnom uređaju iz Xcode-a, ali će se pojaviti greška. Zato idite na Settings --> General --> Profiles and Device Management --> Izaberite nepoverljiv profil i kliknite na "Trust".

Imajte na umu da aplikacije potpisane istim potpisnim sertifikatom mogu deliti resurse na siguran način, poput keychain stavki.

Provisioning profili se čuvaju unutar telefona u /Library/MobileDevice/ProvisioningProfiles

Simulator

Imajte na umu da simulator nije isto što i emulator. Simulator samo simulira ponašanje uređaja i funkcije, ali ih zapravo ne koristi.

Simulator

Prvo što treba da znate je da će izvođenje pentesta unutar simulatora biti mnogo ograničenije nego u jailbroken uređaju.

Svi alati potrebni za izgradnju i podršku iOS aplikacije zvanično su podržani samo na Mac OS-u. Apple-ov de facto alat za kreiranje/debagovanje/instrumentiranje iOS aplikacija je Xcode. Može se koristiti za preuzimanje drugih komponenti kao što su simulatori i različite SDK verzije potrebne za izgradnju i testiranje vaše aplikacije. Visoko se preporučuje da preuzmete Xcode sa zvaničnog app store-a. Druge verzije mogu sadržati maliciozni softver.

Datoteke simulatora se mogu pronaći u /Users/<korisničko_ime>/Library/Developer/CoreSimulator/Devices

Da biste otvorili simulator, pokrenite Xcode, zatim kliknite na Xcode tab --> Open Developer tools --> Simulator __Na sledećoj slici klikom na "iPod touch [...]" možete izabrati drugi uređaj za testiranje:

Aplikacije u Simulatoru

Unutar /Users/<korisničko_ime>/Library/Developer/CoreSimulator/Devices možete pronaći sve instalirane simulatore. Ako želite da pristupite datotekama aplikacije kreirane unutar jednog od emulatora, može biti teško znati u kojem je instalirana aplikacija. Brz način da pronađete tačan UID je da pokrenete aplikaciju u simulatoru i izvršite:

xcrun simctl list | grep Booted
iPhone 8 (BF5DA4F8-6BBE-4EA0-BA16-7E3AFD16C06C) (Booted)

Kada jednom saznate UID, aplikacije instalirane unutar nje mogu se pronaći u /Users/<korisničko_ime>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application

Međutim, iznenađujuće, aplikaciju nećete pronaći ovde. Morate pristupiti /Users/<korisničko_ime>/Library/Developer/Xcode/DerivedData/{Aplikacija}/Build/Products/Debug-iphonesimulator/

I u ovom folderu možete pronaći paket aplikacije.

Emulator

Corellium je jedini javno dostupan iOS emulator. To je rešenje za preduzeća sa modelom licence po korisniku i ne nudi probnu licencu.

Jailbreakovanje

Apple strogo zahteva da kod koji se izvršava na iPhone-u mora biti potpisan sertifikatom izdatim od strane Apple-a. Jailbreakovanje je proces aktivnog zaobilaska takvih ograničenja i drugih sigurnosnih kontrola postavljenih od strane OS-a. Stoga, kada je uređaj jailbroken, integritetna provera koja je odgovorna za proveru instaliranih aplikacija je zakrpljena tako da je zaobiđena.

Za razliku od Androida, ne možete prebaciti u "Režim programera" u iOS-u da biste pokrenuli nepotpisani/nepoverljivi kod na uređaju.

Rootovanje Androida vs. Jailbreakovanje iOS-a

Iako se često porede, rootovanje na Androidu i jailbreakovanje na iOS-u su fundamentalno različiti procesi. Rootovanje Android uređaja može uključivati instaliranje su binarnog koda ili zamenu sistema sa rootovanim prilagođenim ROM-om, što ne zahteva nužno eksploate ako je bootloader otključan. Flashing prilagođenih ROM-ova zamenjuje OS uređaja nakon otključavanja bootloader-a, ponekad zahtevajući eksploate.

Za razliku od toga, iOS uređaji ne mogu flashovati prilagođene ROM-ove zbog restrikcije bootloader-a da samo podiže Apple-ove slike. Jailbreakovanje iOS-a ima za cilj da zaobiđe Apple-ove zaštite potpisa koda kako bi pokrenuo nepotpisani kod, proces koji otežava kontinuiranim sigurnosnim unapređenjima Apple-a.

Izazovi Jailbreakovanja

Jailbreakovanje iOS-a je sve teže kako Apple brzo zakrpljuje ranjivosti. Vraćanje na stariju verziju iOS-a je moguće samo u ograničenom vremenskom periodu nakon izdanja, čineći jailbreakovanje pitanje vremena. Uređaji korišćeni za testiranje sigurnosti ne bi trebalo da se ažuriraju osim ako ponovno jailbreakovanje nije garantovano.

Ažuriranja iOS-a se kontrolišu mehanizmom izazova-odgovora (SHSH blokovi), omogućavajući instalaciju samo za Apple-ove potpisane odgovore. Ovaj mehanizam, poznat kao "prozor potpisa", ograničava mogućnost skladištenja i kasnije korišćenje OTA firmware paketa. Veb sajt IPSW Downloads je resurs za proveru trenutnih prozora potpisa.

Vrste Jailbreakovanja

  • Tethered jailbreakovi zahtevaju povezivanje sa računarom za svako ponovno pokretanje.

  • Semi-tethered jailbreakovi omogućavaju pokretanje u režimu bez jailbreaka bez računara.

  • Semi-untethered jailbreakovi zahtevaju ručno ponovno jailbreakovanje bez potrebe za računarom.

  • Untethered jailbreakovi nude trajno rešenje za jailbreak bez potrebe za ponovnom primenom.

Alati i Resursi za Jailbreakovanje

Alati za jailbreakovanje variraju po verziji iOS-a i uređaju. Resursi poput Can I Jailbreak?, The iPhone Wiki i Reddit Jailbreak pružaju ažurirane informacije. Primeri uključuju:

  • Checkra1n za uređaje sa A7-A11 čipom.

  • Palera1n za uređaje sa Checkm8 čipom (A8-A11) na iOS 15.0-16.5.

  • Unc0ver za verzije iOS-a do 14.8.

Modifikacija vašeg uređaja nosi rizike, a jailbreakovanje treba pristupiti sa oprezom.

Prednosti i Rizici Jailbreakovanja

Jailbreakovanje uklanja sandboxing nametnut od strane OS-a, omogućavajući aplikacijama pristup celom fajl sistemu. Ova sloboda omogućava instalaciju neodobrenih aplikacija i pristup više API-ja. Međutim, za obične korisnike, jailbreakovanje se ne preporučuje zbog potencijalnih sigurnosnih rizika i nestabilnosti uređaja.

Nakon Jailbreakovanja

pageiOS Basic Testing Operations

Detekcija Jailbreakovanja

Nekoliko aplikacija će pokušati da detektuju da li je mobilni uređaj jailbroken i u tom slučaju aplikacija neće pokrenuti

  • Nakon jailbreakovanja iOS-a fajlovi i folderi se obično instaliraju, ovi se mogu pretražiti da bi se utvrdilo da li je uređaj jailbroken.

  • Na jailbroken uređaju aplikacije dobijaju pristup za čitanje/pisanje novih fajlova van sandbox-a

  • Neki API pozivi će se ponašati drugačije

  • Prisustvo OpenSSH servisa

  • Pozivanje /bin/sh će vratiti 1 umesto 0

Više informacija o detekciji jailbreakovanja ovde.

Možete pokušati da izbegnete ove detekcije koristeći objection's ios jailbreak disable

Bypass Detekcije Jailbreakovanja

  • Možete pokušati da izbegnete ove detekcije koristeći objection's ios jailbreak disable

  • Takođe možete instalirati alat Liberty Lite (https://ryleyangus.com/repo/). Kada se repozitorijum doda, aplikacija bi trebalo da se pojavi u 'Pretraga' tabu

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated