hacktricks/mobile-pentesting/ios-pentesting/ios-testing-environment.md
2024-02-11 02:13:58 +00:00

11 KiB

Mazingira ya Majaribio ya iOS

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Programu ya Maendeleo ya Apple

Kitambulisho cha utoaji ni mkusanyiko wa funguo za umma na za kibinafsi ambazo zinaunganishwa na akaunti ya msanidi wa Apple. Ili kutilia saini programu unahitaji kulipa 99$/mwaka kujiandikisha kwenye Programu ya Maendeleo ya Apple ili upate kitambulisho chako cha utoaji. Bila hii hautaweza kuendesha programu kutoka kwenye chanzo cha nambari kwenye kifaa halisi. Chaguo lingine ni kutumia kifaa kilichovunjwa.

Kuanzia Xcode 7.2, Apple imefanya iwezekane kuunda profaili ya utoaji ya maendeleo ya iOS ya bure ambayo inaruhusu kuandika na kujaribu programu yako kwenye iPhone halisi. Nenda kwenye Xcode --> Mapendeleo --> Akaunti --> + (Ongeza Kitambulisho cha Appli kwenye vitambulisho vyako) --> Bonyeza kwenye Kitambulisho cha Apple kilichoundwa --> Simamia Vyeti --> + (Maendeleo ya Apple) --> Imekamilika
__Kisha, ili kuendesha programu yako kwenye iPhone yako, unahitaji kwanza kuonyesha iPhone kuamini kompyuta. Kisha, unaweza kujaribu kuendesha programu kwenye simu kutoka Xcode, lakini utapata kosa. Kwa hivyo nenda kwenye Mipangilio --> Jumla --> Vyeti na Usimamizi wa Kifaa --> Chagua profaili isiyosadikika na bonyeza "Kuamini".

Tambua kuwa programu zilizosainiwa na cheti sawa cha saini zinaweza kushiriki rasilimali kwa njia salama, kama vitu vya keychain.

Profaili za utoaji zimehifadhiwa ndani ya simu katika /Library/MobileDevice/ProvisioningProfiles

Simulatori

{% hint style="info" %} Tambua kuwa simulatori sio sawa na emulatori. Simulatori inasimulisha tabia na kazi za kifaa lakini haizitumii kwa kweli. {% endhint %}

Simulatori

Jambo la kwanza unahitaji kujua ni kwamba kufanya jaribio la kuingilia ndani ya simulatori kutakuwa na upeo mdogo zaidi kuliko kufanya hivyo kwenye kifaa kilichovunjwa.

Zana zote zinazohitajika kujenga na kusaidia programu ya iOS zinasaidiwa rasmi tu kwenye Mac OS.
Zana ya msingi ya Apple ya kuunda/kudebugi/kupima programu za iOS ni Xcode. Inaweza kutumika kupakua vipengele vingine kama simulatori na toleo tofauti za SDK zinazohitajika kujenga na kujaribu programu yako.
Inashauriwa sana kupakua Xcode kutoka kwenye duka rasmi la programu. Matoleo mengine yanaweza kuwa na programu hasidi.

Faili za simulatori zinaweza kupatikana katika /Users/<jina_la_mtumiaji>/Library/Developer/CoreSimulator/Devices

Ili kufungua simulatori, endesha Xcode, kisha bonyeza kwenye kichupo cha Xcode --> Fungua Zana za Maendeleo --> Simulatori
__Katika picha inayofuata, kwa kubonyeza "iPod touch [...]" unaweza kuchagua kifaa kingine cha kujaribu:

Programu kwenye Simulatori

Ndani ya /Users/<jina_la_mtumiaji>/Library/Developer/CoreSimulator/Devices unaweza kupata simulatori zilizosanikishwa. Ikiwa unataka kupata faili za programu iliyoumbwa kwenye moja ya simulatori, inaweza kuwa ngumu kujua katika ipi programu imesanikishwa. Njia ya haraka ya kupata UID sahihi ni kutekeleza programu kwenye simulatori na kutekeleza amri:

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

Marafiki, mara tu unapojua UID, programu zilizosakinishwa ndani yake zinaweza kupatikana katika /Users/<username>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application

Hata hivyo, kwa kushangaza hutapata programu hapa. Unahitaji kufikia /Users/<username>/Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/

Na katika saraka hii unaweza kupata pakiti ya programu.

Emulator

Corellium ndiyo emulator ya iOS inayopatikana kwa umma pekee. Ni suluhisho la biashara la SaaS na mfano wa leseni kwa mtumiaji na haitoi leseni ya jaribio.

Jailbreaking

Apple inahitaji kwa nguvu kuwa nambari inayotumika kwenye iPhone lazima iwe imesainiwa na cheti kilichotolewa na Apple. Jailbreaking ni mchakato wa kuzunguka vizuizi kama hivyo na udhibiti mwingine wa usalama uliowekwa na OS. Kwa hivyo, mara tu kifaa kinapofunguliwa, ukaguzi wa uadilifu ambao unahusika na ukaguzi wa programu zinazosakinishwa unafanyiwa marekebisho ili uweze kupuuzwa.

{% hint style="info" %} Tofauti na Android, hauwezi kubadilisha kwa "Developer Mode" kwenye iOS ili kuendesha nambari isiyosainiwa/isioaminika kwenye kifaa. {% endhint %}

Kupata Mamlaka kwenye Android vs. Jailbreaking kwenye iOS

Ingawa mara nyingi zinalinganishwa, kupata mamlaka kwenye Android na jailbreaking kwenye iOS ni mchakato tofauti kabisa. Kupata mamlaka kwenye vifaa vya Android kunaweza kuhusisha kusakinisha faili ya su au kubadilisha mfumo na ROM iliyosakinishwa kwa mamlaka, ambayo haikuhitaji lazima kutumia mbinu za kudukua ikiwa bootloader imefunguliwa. Kusakinisha ROM za kawaida kunachukua nafasi ya OS ya kifaa baada ya kufungua bootloader, mara nyingi ikihitaji mbinu za kudukua.

Kwa upande mwingine, vifaa vya iOS haviwezi kusakinisha ROM za kawaida kutokana na kizuizi cha bootloader cha kuanza tu picha zilizosainiwa na Apple. Jailbreaking kwenye iOS inalenga kuzunguka ulinzi wa kusaini nambari ya Apple ili kuendesha nambari isiyosainiwa, mchakato ambao unakuwa mgumu kutokana na nyongeza za usalama za mara kwa mara za Apple.

Changamoto za Jailbreaking

Jailbreaking kwenye iOS inazidi kuwa ngumu wakati Apple inapofunga haraka mapungufu. Kurudisha nyuma iOS kunawezekana tu kwa muda mdogo baada ya kutolewa, hivyo kufanya jailbreaking kuwa suala la wakati. Vifaa vinavyotumiwa kwa ajili ya upimaji wa usalama haipaswi kusasishwa isipokuwa jailbreaking upya imehakikishiwa.

Visasisho vya iOS vinadhibitiwa na mfumo wa majibu ya changamoto (SHSH blobs), kuruhusu usakinishaji tu kwa majibu yaliyosainiwa na Apple. Mfumo huu, unaojulikana kama "dirisha la kusaini", unapunguza uwezo wa kuhifadhi na kutumia baadaye paketi za OTA firmware. Tovuti ya IPSW Downloads ni rasilimali ya kuangalia dirisha la sasa la kusaini.

Aina za Jailbreak

  • Tethered jailbreaks inahitaji uunganisho wa kompyuta kwa kila kuanza upya.
  • Semi-tethered jailbreaks inaruhusu kuanza upya kwenye hali isiyofunguliwa bila kompyuta.
  • Semi-untethered jailbreaks inahitaji jailbreaking upya kwa mikono bila kuhitaji kompyuta.
  • Untethered jailbreaks hutoa suluhisho la jailbreak la kudumu bila haja ya kuomba tena.

Zana na Rasilimali za Jailbreaking

Zana za jailbreaking hutofautiana kulingana na toleo la iOS na kifaa. Rasilimali kama Can I Jailbreak?, The iPhone Wiki, na Reddit Jailbreak hutoa habari za sasa. 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.

Kubadilisha kifaa chako kunahusisha hatari, na jailbreaking inapaswa kufanywa kwa tahadhari.

Manufaa na Hatari za Jailbreaking

Jailbreaking inatoa uhuru kutoka kwa kizuizi cha OS, kuruhusu programu kupata mfumo wa faili mzima. Uhuru huu unawezesha usakinishaji wa programu zisizoidhinishwa na ufikiaji wa API zaidi. Hata hivyo, kwa watumiaji wa kawaida, jailbreaking haijapendekezwa kutokana na hatari za usalama na kutokuwa na utulivu kwa kifaa.

Baada ya Jailbreaking

{% content-ref url="basic-ios-testing-operations.md" %} basic-ios-testing-operations.md {% endcontent-ref %}

Ugunduzi wa Jailbreak

Baadhi ya programu zitajaribu kugundua ikiwa simu imefunguliwa na katika kesi hiyo programu haitaendeshwa

  • Baada ya kufungua simu ya iOS, faili na saraka kawaida hufunguliwa, hizi zinaweza kutafutwa ili kubaini ikiwa kifaa kimefunguliwa.
  • Kwenye kifaa kilichofunguliwa, programu zinapata upatikanaji wa kusoma/kuandika kwenye faili mpya nje ya sanduku la mchanga.
  • Baadhi ya wito wa API utakuwa tofauti.
  • Kuwepo kwa huduma ya OpenSSH
  • Kuita /bin/sh kutarejea 1 badala ya 0

Maelezo zaidi kuhusu jinsi ya kugundua jailbreaking hapa.

Unaweza kujaribu kuepuka ugunduzi huu kwa kutumia objection's ios jailbreak disable

Kuepuka Ugunduzi wa Jailbreak

  • Unaweza kujaribu kuepuka ugunduzi huu kwa kutumia objection's ios jailbreak disable
  • Pia unaweza kusakinisha zana Liberty Lite (https://ryleyangus.com/repo/). Mara baada ya kusakinisha, programu inapaswa kuonekana kwenye kichupo cha 'Tafuta'

Marejeo

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks: