iOS Testing Environment
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)
'n Provisioning identiteit is 'n versameling van publieke en private sleutels wat aan 'n Apple ontwikkelaar rekening gekoppel is. Om apps te teken moet jy 99$/jaar betaal om te registreer in die Apple Ontwikkelaar Program om jou provisioning identiteit te verkry. Sonder dit sal jy nie in staat wees om toepassings vanaf die bronkode op 'n fisiese toestel te loop nie. 'n Ander opsie om dit te doen is om 'n gejailbreakte toestel te gebruik.
Begin in Xcode 7.2 het Apple 'n opsie verskaf om 'n gratis iOS ontwikkeling provisioning profiel te skep wat jou toelaat om jou toepassing op 'n werklike iPhone te skryf en te toets. Gaan na Xcode --> Voorkeure --> Rekeninge --> + (Voeg nuwe Appli ID by jou geloofsbriewe) --> Klik op die Apple ID wat geskep is --> Bestuur Sertifikate --> + (Apple Ontwikkeling) --> Klaar __Dan, om jou toepassing op jou iPhone te laat loop moet jy eers aangee dat die iPhone die rekenaar moet vertrou. Dan kan jy probeer om die toepassing op die mobiele toestel vanaf Xcode te laat loop, maar 'n fout sal verskyn. Gaan dus na Instellings --> Algemeen --> Profiele en Toestuurbestuur --> Kies die onbetroubare profiel en klik "Vertrou".
Let daarop dat toepassings wat deur dieselfde teken sertifikaat geteken is, hulpbronne op 'n veilige manier kan deel, soos sleutelhouer items.
Die provisioning profiele word binne die foon gestoor in /Library/MobileDevice/ProvisioningProfiles
Let daarop dat 'n simulator nie dieselfde is as 'n emulator nie. Die simulator simuleer net die gedrag van die toestel en funksies, maar gebruik hulle nie werklik nie.
Die eerste ding wat jy moet weet is dat om 'n pentest binne 'n simulator uit te voer baie meer beperk sal wees as om dit in 'n gejailbreakte toestel te doen.
Alle gereedskap wat benodig word om 'n iOS-app te bou en te ondersteun, word slegs amptelik op Mac OS ondersteun. Apple se de facto gereedskap vir die skep/debugging/instrumentering van iOS toepassings is Xcode. Dit kan gebruik word om ander komponente soos simulators en verskillende SDK weergawe wat benodig word om jou app te bou en te toets af te laai. Dit word sterk aanbeveel om Xcode van die amptelike app winkel af te laai. Ander weergawes mag malware dra.
Die simulator lêers kan gevind word in /Users/<username>/Library/Developer/CoreSimulator/Devices
Om die simulator te open, hardloop Xcode, druk dan in die Xcode tab --> Open Ontwikkelaar gereedskap --> Simulator __In die volgende beeld kan jy deur op "iPod touch [...]" te klik 'n ander toestel kies om op te toets:
Binne /Users/<username>/Library/Developer/CoreSimulator/Devices
kan jy al die geïnstalleerde simulators vind. As jy toegang wil hê tot die lêers van 'n toepassing wat binne een van die emulators geskep is, kan dit moeilik wees om te weet in watter een die app geïnstalleer is. 'n Vinige manier om die regte UID te vind is om die app in die simulator te hardloop en die volgende uit te voer:
Once you know the UID the apps installed within it can be found in /Users/<username>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application
However, surprisingly you won't find the application here. You need to access /Users/<username>/Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/
And in this folder you can find the package of the application.
Corellium is the only publicly available iOS emulator. It is an enterprise SaaS solution with a per user license model and does not offer any trial license.
Check this blog post about how to pentest an iOS application in a non jailbroken device: https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed
Apple vereis streng dat die kode wat op die iPhone loop, onderteken moet wees deur 'n sertifikaat wat deur Apple uitgereik is. Jailbreaking is die proses om aktief soos beperkings te omseil en ander sekuriteitsbeheermaatreëls wat deur die OS in plek gestel is. Daarom, sodra die toestel gejailbreak is, word die integriteitskontrole wat verantwoordelik is vir die kontrole van geïnstalleerde toepassings, gepatch sodat dit omseil word.
In teenstelling met Android, kan jy nie na "Ontwikkelaarsmodus" in iOS oorgaan om ongetekende/onbetroubare kode op die toestel te loop nie.
Terwyl dit dikwels vergelyk word, is rooting op Android en jailbreaking op iOS fundamenteel verskillende prosesse. Rooting Android-toestelle kan behels die installering van die su
binêre of die vervanging van die stelsel met 'n ge-rootte pasgemaakte ROM, wat nie noodwendig eksplosiewe benodig as die bootloader ontgrendel is nie. Flashing pasgemaakte ROMs vervang die toestel se OS na die ontgrendeling van die bootloader, wat soms 'n eksplosiewe benodig.
In teenstelling hiermee kan iOS-toestelle nie pasgemaakte ROMs flits nie weens die bootloader se beperking om slegs Apple-ondertekende beelde te laai. Jailbreaking iOS het ten doel om Apple se kodeondertekening beskerming te omseil om ongetekende kode te laat loop, 'n proses wat bemoeilik word deur Apple se deurlopende sekuriteitsverbeterings.
Jailbreaking iOS word al hoe moeiliker namate Apple kwesbaarhede vinnig patch. Downgrading iOS is slegs vir 'n beperkte tyd moontlik na 'n vrystelling, wat jailbreaking 'n tydsensitive saak maak. Toestelle wat vir sekuriteitstoetsing gebruik word, moet nie opgedateer word nie, tensy her-jailbreaking gewaarborg word.
iOS-opdaterings word beheer deur 'n uitdaging-respons meganisme (SHSH blobs), wat installasie slegs toelaat vir Apple-ondertekende antwoorde. Hierdie meganisme, bekend as 'n "onderteken venster", beperk die vermoë om OTA firmware-pakkette te stoor en later te gebruik. Die IPSW Downloads website is 'n hulpbron om huidige onderteken vensters te kontroleer.
Tethered jailbreaks vereis 'n rekenaarverbinding vir elke herlaai.
Semi-tethered jailbreaks laat boot in nie-gejailbreakte modus toe sonder 'n rekenaar.
Semi-untethered jailbreaks vereis handmatige her-jailbreaking sonder die behoefte aan 'n rekenaar.
Untethered jailbreaks bied 'n permanente jailbreak-oplossing sonder die behoefte aan her-toepassing.
Jailbreaking gereedskap verskil volgens iOS weergawe en toestel. Hulpbronne soos Can I Jailbreak?, The iPhone Wiki, en Reddit Jailbreak bied opdateringsinligting. Voorbeelde sluit in:
Checkra1n vir A7-A11 chip toestelle.
Palera1n vir Checkm8 toestelle (A8-A11) op iOS 15.0-16.5.
Unc0ver vir iOS weergawes tot 14.8.
Die aanpassing van jou toestel dra risiko's, en jailbreaking moet met omsigtigheid benader word.
Jailbreaking verwyder OS-opgelegde sandboxing, wat toelaat dat toepassings toegang tot die hele lêerstelsel het. Hierdie vryheid stel die installasie van nie-goedgekeurde toepassings en toegang tot meer API's in staat. Tog, vir gewone gebruikers, word jailbreaking nie aanbeveel weens potensiële sekuriteitsrisiko's en toestelinstabiliteit.
Verskeie toepassings sal probeer om te detecteer of die mobiele toestel gejailbreak is en in daardie geval sal die toepassing nie loop nie
Na jailbreaking van 'n iOS word lêers en vouers gewoonlik geïnstalleer, hierdie kan gesoek word om te bepaal of die toestel gejailbreak is.
In 'n gejailbreakte toestel kry toepassings lees/skryf toegang tot nuwe lêers buite die sandbox
Sommige API oproepen sal anders optree
Die teenwoordigheid van die OpenSSH diens
Die oproep van /bin/sh
sal 1 teruggee in plaas van 0
Meer inligting oor hoe om jailbreaking te detecteer hier.
You can try to avoid this detections using objection's ios jailbreak disable
You can try to avoid this detections using objection's ios jailbreak disable
You could also install the tool Liberty Lite (https://ryleyangus.com/repo/). Once the repo is added, the app should appear in the ‘Search’ tab
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)