iOS Testing Environment
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Kitambulisho cha usambazaji ni mkusanyiko wa funguo za umma na za kibinafsi ambazo zinahusishwa na akaunti ya mende wa Apple. Ili kusaini programu unahitaji kulipa 99$/mwaka kujiandikisha katika Apple Developer Program ili kupata kitambulisho chako cha usambazaji. Bila hii huwezi kuendesha programu kutoka kwa msimbo wa chanzo kwenye kifaa halisi. Chaguo lingine la kufanya hivi ni kutumia kifaa kilichovunjwa.
Kuanzia Xcode 7.2 Apple imetoa chaguo la kuunda profaili ya usambazaji ya maendeleo ya iOS bure ambayo inaruhusu kuandika na kujaribu programu yako kwenye iPhone halisi. Nenda kwenye Xcode --> Preferences --> Accounts --> + (Ongeza ID mpya ya Appli na akiba zako) --> Bonyeza kwenye Apple ID iliyoundwa --> Manage Certificates --> + (Maendeleo ya Apple) --> Done __Kisha, ili kuendesha programu yako kwenye iPhone yako unahitaji kwanza kuonyesha iPhone kuamini kompyuta. Kisha, unaweza kujaribu kuendesha programu kwenye simu kutoka Xcode, lakini kosa litaonekana. Hivyo nenda kwenye Settings --> General --> Profiles and Device Management --> Chagua profaili isiyoaminika na bonyeza "Amini".
Kumbuka kwamba programu zilizotiwa saini na cheti sawa cha saini zinaweza kushiriki rasilimali kwa njia salama, kama vitu vya keychain.
Profaili za usambazaji zimehifadhiwa ndani ya simu katika /Library/MobileDevice/ProvisioningProfiles
Kumbuka kwamba simulator si sawa na emulator. Simulator inasimulia tu tabia ya kifaa na kazi lakini haitumii kwa kweli.
Jambo la kwanza unahitaji kujua ni kwamba kufanya pentest ndani ya simulator kutakuwa na mipaka zaidi kuliko kufanya hivyo kwenye kifaa kilichovunjwa.
Zana zote zinazohitajika kujenga na kusaidia programu ya iOS zinapatikana tu rasmi kwenye Mac OS. Zana ya de facto ya Apple kwa kuunda/kukarabati/kufanya kazi za iOS ni Xcode. Inaweza kutumika kupakua vipengele vingine kama simulators na SDK toleo tofauti zinazohitajika kujenga na kujaribu programu yako. Inapendekezwa sana kupakua Xcode kutoka kwenye duka rasmi la programu. Matoleo mengine yanaweza kuwa na malware.
Faili za simulator zinaweza kupatikana katika /Users/<username>/Library/Developer/CoreSimulator/Devices
Ili kufungua simulator, endesha Xcode, kisha bonyeza kwenye Xcode tab --> Open Developer tools --> Simulator __Katika picha ifuatayo bonyeza "iPod touch [...]" unaweza kuchagua kifaa kingine cha kujaribu:
Ndani ya /Users/<username>/Library/Developer/CoreSimulator/Devices
unaweza kupata simulators zote zilizowekwa. Ikiwa unataka kufikia faili za programu iliyoundwa ndani ya moja ya emulators inaweza kuwa vigumu kujua katika ipi programu imewekwa. Njia ya haraka ya kupata UID sahihi ni kutekeleza programu kwenye simulator na kutekeleza:
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 ni emulator pekee wa iOS unaopatikana hadharani. Ni suluhisho la SaaS la biashara lenye mfano wa leseni kwa mtumiaji na halitoi leseni ya majaribio.
Angalia chapisho hili la blog kuhusu jinsi ya pentest programu ya iOS katika kipande kisichovunjwa: https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed
Apple inahitaji kwa nguvu kwamba msimbo unaotumika kwenye iPhone lazima uwe umetiwa saini na cheti kilichotolewa na Apple. Jailbreaking ni mchakato wa kuzunguka vizuizi hivyo na udhibiti mwingine wa usalama uliowekwa na OS. Hivyo, mara tu kifaa kinapovunjwa, ukaguzi wa uadilifu ambao unawajibika kwa kuangalia programu zinazowekwa unarekebishwa ili upitishwe.
Tofauti na Android, huwezi kubadilisha kuwa "Mode ya Developer" katika iOS ili kuendesha msimbo usio na saini/usioaminika kwenye kifaa.
Ingawa mara nyingi hufananishwa, rooting kwenye Android na jailbreaking kwenye iOS ni michakato tofauti kimsingi. Kuweka mizizi kwenye vifaa vya Android kunaweza kujumuisha kufunga su
binary au kurekebisha mfumo kwa ROM iliyowekwa mizizi, ambayo haihitaji lazima matumizi ya udhaifu ikiwa bootloader imefunguliwa. Kuflash ROM za kawaida kunabadilisha OS ya kifaa baada ya kufungua bootloader, wakati mwingine kunahitaji udhaifu.
Kwa upande mwingine, vifaa vya iOS haviwezi kuflash ROM za kawaida kutokana na vizuizi vya bootloader vya kuanzisha picha zilizotiwa saini na Apple pekee. Jailbreaking iOS inalenga kupita ulinzi wa saini wa msimbo wa Apple ili kuendesha msimbo usio na saini, mchakato ambao unachanganya na maboresho ya usalama ya Apple yanayoendelea.
Jailbreaking iOS inakuwa ngumu zaidi kadri Apple inavyorekebisha udhaifu haraka. Kudondosha iOS kunawezekana tu kwa muda mfupi baada ya kutolewa, na kufanya jailbreaking kuwa suala la muda. Vifaa vinavyotumika kwa majaribio ya usalama havipaswi kusasishwa isipokuwa re-jailbreaking inahakikishwa.
Sasisho za iOS zinadhibitiwa na mekanism ya changamoto-jibu (SHSH blobs), ikiruhusu usakinishaji tu kwa majibu yaliyotiwa saini na Apple. Mekanism hii, inayojulikana kama "dirisha la saini", inapunguza uwezo wa kuhifadhi na kutumia baadaye vifurushi vya firmware vya OTA. Tovuti ya IPSW Downloads ni rasilimali ya kuangalia dirisha za sasa za saini.
Jailbreaks za tethered zinahitaji muunganisho wa kompyuta kwa kila upya.
Jailbreaks za semi-tethered zinaruhusu kuanzisha katika hali isiyo na jailbroken bila kompyuta.
Jailbreaks za semi-untethered zinahitaji re-jailbreaking ya mikono bila kuhitaji kompyuta.
Jailbreaks za untethered zinatoa suluhisho la kudumu la jailbreak bila haja ya kuomba tena.
Zana za jailbreaking zinatofautiana kulingana na toleo la iOS na kifaa. Rasilimali kama Can I Jailbreak?, The iPhone Wiki, na Reddit Jailbreak zinatoa taarifa za kisasa. Mifano ni pamoja na:
Checkra1n kwa vifaa vya chip A7-A11.
Palera1n kwa vifaa vya Checkm8 (A8-A11) kwenye iOS 15.0-16.5.
Unc0ver kwa toleo za iOS hadi 14.8.
Kurekebisha kifaa chako kuna hatari, na jailbreaking inapaswa kuchukuliwa kwa tahadhari.
Jailbreaking inondoa sandboxing iliyowekwa na OS, ikiruhusu programu kufikia mfumo mzima wa faili. Uhuru huu unaruhusu usakinishaji wa programu zisizothibitishwa na ufikiaji wa APIs zaidi. Hata hivyo, kwa watumiaji wa kawaida, jailbreaking haitashauriwa kutokana na hatari za usalama na kutokuwa thabiti kwa kifaa.
Programu kadhaa zitajaribu kugundua ikiwa simu imevunjwa na katika kesi hiyo programu haitakimbia
Baada ya jailbreaking iOS faili na folda kwa kawaida huwekwa, hizi zinaweza kutafutwa ili kubaini ikiwa kifaa kimevunjwa.
Katika kifaa kilichovunjwa programu hupata ufikiaji wa kusoma/kandika kwa faili mpya nje ya sandbox
Baadhi ya API itoaji zitakuwa na tabia tofauti
Uwepo wa huduma ya OpenSSH
Kuita /bin/sh
itarejesha 1 badala ya 0
Taarifa zaidi kuhusu jinsi ya kugundua jailbreaking hapa.
Unaweza kujaribu kuepuka hizi kugundua kwa kutumia objection's ios jailbreak disable
Unaweza kujaribu kuepuka hizi kugundua kwa kutumia objection's ios jailbreak disable
Unaweza pia kufunga zana Liberty Lite (https://ryleyangus.com/repo/). Mara tu repo itakapoongezwa, programu inapaswa kuonekana kwenye tab ya ‘Tafuta’
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)