hacktricks/mobile-pentesting/ios-pentesting/ios-testing-environment.md

148 lines
11 KiB
Markdown
Raw Normal View History

2024-02-11 02:13:58 +00:00
# Mazingira ya Majaribio ya iOS
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 02:13:58 +00:00
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:13:58 +00:00
Njia nyingine za kusaidia HackTricks:
2024-01-03 10:43:38 +00:00
2024-02-11 02:13:58 +00:00
* Ikiwa unataka kuona **kampuni yako inatangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
2022-04-28 16:01:33 +00:00
</details>
2024-02-11 02:13:58 +00:00
## Programu ya Maendeleo ya Apple
2021-05-14 22:25:03 +00:00
2024-02-11 02:13:58 +00:00
**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**.
2021-05-14 22:25:03 +00:00
2024-02-11 02:13:58 +00:00
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**".
2021-05-14 22:25:03 +00:00
2024-02-11 02:13:58 +00:00
Tambua kuwa **programu zilizosainiwa na cheti sawa cha saini zinaweza kushiriki rasilimali kwa njia salama, kama vitu vya keychain**.
2021-05-14 22:25:03 +00:00
2024-02-11 02:13:58 +00:00
Profaili za utoaji zimehifadhiwa ndani ya simu katika **`/Library/MobileDevice/ProvisioningProfiles`**
2021-05-14 22:25:03 +00:00
2024-02-11 02:13:58 +00:00
## **Simulatori**
{% hint style="info" %}
2024-02-11 02:13:58 +00:00
Tambua kuwa **simulatori sio sawa na emulatori**. Simulatori inasimulisha tabia na kazi za kifaa lakini haizitumii kwa kweli.
{% endhint %}
2024-02-11 02:13:58 +00:00
### **Simulatori**
2024-02-11 02:13:58 +00:00
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**.
2024-02-11 02:13:58 +00:00
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.
2024-02-11 02:13:58 +00:00
Faili za simulatori zinaweza kupatikana katika `/Users/<jina_la_mtumiaji>/Library/Developer/CoreSimulator/Devices`
2024-02-11 02:13:58 +00:00
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:
![](<../../.gitbook/assets/image (457).png>)
![](<../../.gitbook/assets/image (458).png>)
2024-02-11 02:13:58 +00:00
### Programu kwenye Simulatori
2024-02-11 02:13:58 +00:00
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:
```bash
xcrun simctl list | grep Booted
2024-02-11 02:13:58 +00:00
iPhone 8 (BF5DA4F8-6BBE-4EA0-BA16-7E3AFD16C06C) (Booted)
```
2024-02-11 02:13:58 +00:00
Marafiki, mara tu unapojua UID, programu zilizosakinishwa ndani yake zinaweza kupatikana katika `/Users/<username>/Library/Developer/CoreSimulator/Devices/{UID}/data/Containers/Data/Application`
2024-02-11 02:13:58 +00:00
Hata hivyo, kwa kushangaza hutapata programu hapa. Unahitaji kufikia `/Users/<username>/Library/Developer/Xcode/DerivedData/{Application}/Build/Products/Debug-iphonesimulator/`
2024-02-11 02:13:58 +00:00
Na katika saraka hii unaweza **kupata pakiti ya programu.**
## Emulator
2024-02-11 02:13:58 +00:00
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.
2024-02-11 02:13:58 +00:00
## Jailbreaking
2024-02-11 02:13:58 +00:00
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" %}
2024-02-11 02:13:58 +00:00
Tofauti na Android, **hauwezi kubadilisha kwa "Developer Mode"** kwenye iOS ili kuendesha nambari isiyosainiwa/isioaminika kwenye kifaa.
{% endhint %}
2024-02-11 02:13:58 +00:00
### Kupata Mamlaka kwenye Android vs. Jailbreaking kwenye iOS
2024-02-11 02:13:58 +00:00
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.
2024-02-11 02:13:58 +00:00
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.
2024-02-11 02:13:58 +00:00
### Changamoto za Jailbreaking
2024-02-11 02:13:58 +00:00
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.
2024-02-11 02:13:58 +00:00
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](https://ipsw.me) ni rasilimali ya kuangalia dirisha la sasa la kusaini.
2024-02-11 02:13:58 +00:00
### Aina za Jailbreak
2024-02-11 02:13:58 +00:00
- **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.
2024-02-11 02:13:58 +00:00
### Zana na Rasilimali za Jailbreaking
2024-02-11 02:13:58 +00:00
Zana za jailbreaking hutofautiana kulingana na toleo la iOS na kifaa. Rasilimali kama [Can I Jailbreak?](https://canijailbreak.com), [The iPhone Wiki](https://www.theiphonewiki.com), na [Reddit Jailbreak](https://www.reddit.com/r/jailbreak/) hutoa habari za sasa. Mifano ni pamoja na:
2024-02-11 02:13:58 +00:00
- [Checkra1n](https://checkra.in/) kwa vifaa vya chip A7-A11.
- [Palera1n](https://palera.in/) kwa vifaa vya Checkm8 (A8-A11) kwenye iOS 15.0-16.5.
- [Unc0ver](https://unc0ver.dev/) kwa toleo za iOS hadi 14.8.
2024-02-11 02:13:58 +00:00
Kubadilisha kifaa chako kunahusisha hatari, na jailbreaking inapaswa kufanywa kwa tahadhari.
2024-02-11 02:13:58 +00:00
### Manufaa na Hatari za Jailbreaking
2024-02-11 02:13:58 +00:00
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.
2024-02-11 02:13:58 +00:00
### **Baada ya Jailbreaking**
{% content-ref url="basic-ios-testing-operations.md" %}
[basic-ios-testing-operations.md](basic-ios-testing-operations.md)
{% endcontent-ref %}
2024-02-11 02:13:58 +00:00
### **Ugunduzi wa Jailbreak**
2024-02-11 02:13:58 +00:00
**Baadhi ya programu zitajaribu kugundua ikiwa simu imefunguliwa na katika kesi hiyo programu haitaendeshwa**
2024-02-11 02:13:58 +00:00
* 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
2024-02-11 02:13:58 +00:00
**Maelezo zaidi kuhusu jinsi ya kugundua jailbreaking** [**hapa**](https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/jailbreak-detection-methods/)**.**
2021-05-19 16:11:33 +00:00
2024-02-11 02:13:58 +00:00
Unaweza kujaribu kuepuka ugunduzi huu kwa kutumia **objection's** `ios jailbreak disable`
2022-04-05 21:52:22 +00:00
2024-02-11 02:13:58 +00:00
## **Kuepuka Ugunduzi wa Jailbreak**
2022-04-05 21:52:22 +00:00
2024-02-11 02:13:58 +00:00
* 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'
2022-04-28 16:01:33 +00:00
2024-02-11 02:13:58 +00:00
## Marejeo
2024-02-08 03:08:28 +00:00
* [https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/](https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/)
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 02:13:58 +00:00
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:13:58 +00:00
Njia nyingine za kusaidia HackTricks:
2024-01-03 10:43:38 +00:00
2024-02-11 02:13:58 +00:00
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa muundo wa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi wa PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) za kipekee
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa** [**HackTricks**](https://github