# iOS Toetsomgewing
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! Ander maniere om HackTricks te ondersteun: * As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) * Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) * **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
## Apple Ontwikkelaarprogram 'n **voorsieningsidentiteit** is 'n versameling openbare en private sleutels wat verband hou met 'n Apple-ontwikkelaarsrekening. Om **toepassings te onderteken**, moet jy **99$/jaar** betaal om te registreer vir die **Apple Ontwikkelaarprogram** om jou voorsieningsidentiteit te kry. Sonder dit sal jy nie in staat wees om programme vanuit die bronkode op 'n fisiese toestel uit te voer nie. 'n Ander opsie om dit te doen, is om 'n **gejailbreakte toestel** te gebruik. Vanaf Xcode 7.2 het Apple 'n opsie verskaf om 'n **gratis iOS-ontwikkelingsvoorsieningsprofiel** te skep wat dit moontlik maak 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 geskepte Apple ID_ --> _Bestuur Sertifikate_ --> _+_ (Apple Ontwikkeling) --> _Klaar_\ \_\_Daarna moet jy die iPhone eers **aandui dat dit die rekenaar moet vertrou** voordat jy die toepassing op die iPhone kan probeer uitvoer vanuit Xcode. Gaan na _Instellings_ --> _Algemeen_ --> _Profiel en toestelbestuur_ --> Kies die onvertroue profiel en klik "**Vertrou**". Let daarop dat **toepassings wat deur dieselfde ondertekeningssertifikaat onderteken is, hulpbronne op 'n veilige manier kan deel, soos sleutelkettingitems**. Die voorsieningsprofiel word binne die telefoon gestoor in **`/Library/MobileDevice/ProvisioningProfiles`** ## **Simulator** {% hint style="info" %} Let daarop dat 'n **simulator nie dieselfde as 'n emulator** is nie. Die simulator boots net die gedrag van die toestel en funksies na, maar gebruik dit nie werklik nie. {% endhint %} ### **Simulator** Die eerste ding wat jy moet weet, is dat 'n **pentest in 'n simulator baie beperkter sal wees as om dit in 'n gejailbreakte toestel te doen**. Alle gereedskap wat nodig is om 'n iOS-toepassing te bou en te ondersteun, word **slegs amptelik ondersteun op Mac OS**.\ Apple se de facto gereedskap vir die skep/debuut/instrumentering van iOS-toepassings is **Xcode**. Dit kan gebruik word om ander komponente soos **simulators** en verskillende **SDK-**weergawes wat nodig is om jou toepassing te bou en te **toets**, af te laai.\ Dit word sterk aanbeveel om Xcode van die **amptelike app store** af te laai. Ander weergawes kan malware dra. Die simulatorlêers kan gevind word in `/Users//Library/Developer/CoreSimulator/Devices` Om die simulator oop te maak, voer Xcode uit en druk dan op die _Xcode-tabblad_ --> _Open Developer Tools_ --> _Simulator_\ \_\_In die volgende prentjie kan jy deur op "iPod touch \[...]" te klik, 'n ander toestel kies om te toets: ![](<../../.gitbook/assets/image (457).png>) ![](<../../.gitbook/assets/image (458).png>) ### Toepassings in die Simulator Binne `/Users//Library/Developer/CoreSimulator/Devices` kan jy al die **geïnstalleerde simulators** vind. As jy die lêers van 'n toepassing wat binne een van die simulators geskep is, wil bereik, kan dit moeilik wees om te weet **in watter een die toepassing geïnstalleer is**. 'n Vinnige manier om die korrekte UID te vind, is om die toepassing in die simulator uit te voer en die volgende uit te voer: ```bash xcrun simctl list | grep Booted iPhone 8 (BF5DA4F8-6BBE-4EA0-BA16-7E3AFD16C06C) (Booted) ``` Sodra jy die UID weet, kan die geïnstalleerde programme binne dit gevind word in `/Users//Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application` Egter, verrassend genoeg sal jy die toepassing nie hier vind nie. Jy moet toegang verkry tot `/Users//Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/` En in hierdie vouer kan jy **die pakkie van die toepassing vind.** ## Emulator Corellium is die enigste openlik beskikbare iOS-emulator. Dit is 'n onderneming SaaS-oplossing met 'n lisensiemodel per gebruiker en bied geen proeftydperk lisensie aan nie. ## Jailbreaking Apple vereis streng dat die kode wat op die iPhone loop, **onderteken moet word deur 'n sertifikaat wat deur Apple uitgereik is**. **Jailbreaking** is die proses om aktief **sodanige beperkings** en ander sekuriteitsbeheermaatreëls wat deur die OS ingestel is, te omseil. Daarom, sodra die toestel gejailbreak is, word die **integriteitskontrole** wat verantwoordelik is vir die kontrole van geïnstalleerde programme, gepatch sodat dit **omseil** word. {% hint style="info" %} In teenstelling met Android, **kan jy nie oorskakel na "Ontwikkelaarsmodus"** in iOS om ondertekende/ongeverifieerde kode op die toestel uit te voer nie. {% endhint %} ### Android Rooting vs. iOS Jailbreaking Alhoewel dit dikwels vergelyk word, is **rooting** op Android en **jailbreaking** op iOS fundamenteel verskillende prosesse. Rooting van Android-toestelle mag die **installeer van die `su` binêre lêer** of die **vervang van die stelsel met 'n geroote aangepaste ROM** behels, wat nie noodwendig exploits vereis as die bootloader ontgrendel is nie. **Flashing van aangepaste ROMs** vervang die toestel se bedryfstelsel nadat die bootloader ontgrendel is, en vereis soms 'n exploit. In teenstelling hiermee kan iOS-toestelle nie aangepaste ROMs flash nie as gevolg van die bootloader se beperking om slegs Apple-ondertekende beelde te laai. **Jailbreaking van iOS** het ten doel om Apple se kode-ondertekeningsbeskerming te omseil om ondertekende kode uit te voer, 'n proses wat gekompliseer word deur Apple se voortdurende sekuriteitsverbeterings. ### Uitdagings met Jailbreaking Jailbreaking van iOS word toenemend moeilik aangesien Apple kwetsbaarhede vinnig patch. **Aftrekking van iOS** is slegs moontlik vir 'n beperkte tydperk na 'n vrystelling, wat jailbreaking 'n tydsensitiewe aangeleentheid maak. Toestelle wat vir sekuriteitstoetsing gebruik word, moet nie opgedateer word tensy herjailbreaking gewaarborg is nie. iOS-opdaterings word beheer deur 'n **uitdaging-responsmeganisme** (SHSH blobs), wat slegs die installasie van Apple-ondertekende responsies toelaat. Hierdie meganisme, bekend as 'n "ondertekeningsvenster", beperk die vermoë om OTA-firmwarepakette te stoor en later te gebruik. Die [IPSW Downloads-webwerf](https://ipsw.me) is 'n bron vir die nagaan van die huidige ondertekeningsvensters. ### Verskillende Jailbreak-variëteite - **Tethered jailbreaks** vereis 'n rekenaarkoppeling vir elke herlaai. - **Semi-tethered jailbreaks** maak dit moontlik om in nie-gejailbreakte modus te herlaai sonder 'n rekenaar. - **Semi-untethered jailbreaks** vereis handmatige herjailbreaking sonder 'n rekenaar. - **Untethered jailbreaks** bied 'n permanente jailbreak-oplossing sonder die behoefte aan heraanwending. ### Jailbreaking-hulpmiddels en -hulpbronne Jailbreaking-hulpmiddels verskil volgens die iOS-weergawe en toestel. Hulpbronne soos [Can I Jailbreak?](https://canijailbreak.com), [The iPhone Wiki](https://www.theiphonewiki.com) en [Reddit Jailbreak](https://www.reddit.com/r/jailbreak/) bied opgedateerde inligting. Voorbeelde sluit in: - [Checkra1n](https://checkra.in/) vir A7-A11 chip-toestelle. - [Palera1n](https://palera.in/) vir Checkm8-toestelle (A8-A11) op iOS 15.0-16.5. - [Unc0ver](https://unc0ver.dev/) vir iOS-weergawes tot 14.8. Die wysiging van jou toestel dra risiko's, en jailbreaking moet met omsigtigheid benader word. ### Voordele en Risiko's van Jailbreaking Jailbreaking **verwyder die deur die OS opgelegde sandboksing**, wat dit vir programme moontlik maak om toegang tot die hele lêersisteem te verkry. Hierdie vryheid maak die installasie van nie-goedgekeurde programme en toegang tot meer API's moontlik. Vir gewone gebruikers word jailbreaking egter **nie aanbeveel nie** as gevolg van potensiële sekuriteitsrisiko's en toestel-onstabiliteit. ### **Na Jailbreaking** {% content-ref url="basic-ios-testing-operations.md" %} [basic-ios-testing-operations.md](basic-ios-testing-operations.md) {% endcontent-ref %} ### **Jailbreak-opsporing** **Verskeie programme sal probeer om vas te stel of die mobiele toestel gejailbreak is, en in daardie geval sal die toepassing nie uitgevoer word nie** * Nadat iOS gejailbreak is, word **lêers en vouers gewoonlik geïnstalleer**, en dit kan ondersoek word om vas te stel of die toestel gejailbreak is. * Op 'n gejailbreakte toestel kry programme **lees-/skryftoegang tot nuwe lêers** buite die sandboks. * Sommige **API-oproepe** sal **anders optree**. * Die teenwoordigheid van die **OpenSSH-diens** * Die aanroep van `/bin/sh` sal **1 teruggee** in plaas van 0 **Meer inligting oor hoe om jailbreaking op te spoor** [**hier**](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/jailbreak-detection-methods/)**.** Jy kan probeer om hierdie opsporings te vermy deur gebruik te maak van die `ios jailbreak disable`-funksie van **objection**. ## **Jailbreak-opsporingsverbygaan** * Jy kan probeer om hierdie opsporings te vermy deur gebruik te maak van die `ios jailbreak disable`-funksie van **objection**. * Jy kan ook die hulpmiddel **Liberty Lite** installeer (https://ryleyangus.com/repo/). Sodra die repo bygevoeg is, behoort die toepassing in die 'Soek'-tabblad te verskyn. ## Verwysings * [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! Ander maniere om HackTricks te ondersteun: * As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks in PDF aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! * Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com) * Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) * **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.