11 KiB
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!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die HackTricks en 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/<gebruikersnaam>/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:
Toepassings in die Simulator
Binne /Users/<gebruikersnaam>/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:
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/<username>/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/<username>/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 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?, The iPhone Wiki en Reddit Jailbreak bied opgedateerde inligting. 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 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 {% 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.
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
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!
- Kry die amptelike PEASS & HackTricks-uitrusting
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacking-truuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.