iOS Pentesting without Jailbreak

Reading time: 7 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Wazo Kuu

Programu zilizosainiwa na entitlement get_task_allow zinaruhusu programu za upande wa tatu kuendesha kazi inayoitwa task_for_pid() na kitambulisho cha mchakato wa programu ya awali kama hoja ili kupata bandari ya kazi juu yake (kuwa na uwezo wa kuidhibiti na kufikia kumbukumbu yake).

Hata hivyo, si rahisi kama tu kuvuta IPA, kuisaini tena na entitlement, na kuirudisha kwenye kifaa chako. Hii ni kwa sababu ya ulinzi wa FairPlay. Wakati saini ya programu inabadilika, funguo za DRM (Digital Rights Management) zinabatilishwa na programu haitafanya kazi.

Kwa kifaa cha zamani kilichovunjwa, inawezekana kufunga IPA, kuikodisha kwa kutumia chombo unachokipenda (kama Iridium au frida-ios-dump), na kuirudisha kutoka kwenye kifaa. Ingawa, ikiwa inawezekana, inapendekezwa kuomba tu kwa mteja kwa IPA iliyokodishwa.

Pata IPA iliyokodishwa

Pata kutoka Apple

  1. Funga programu ya kupima kwenye iPhone
  2. Funga na uzindue Apple Configurator ndani ya macos yako
  3. Fungua Terminal kwenye Mac yako, na cd hadi /Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps. IPA itaonekana katika folda hii baadaye.
  4. Unapaswa kuona kifaa chako cha iOS. Bonyeza mara mbili juu yake, kisha bonyeza Ongeza + β†’ Programu kutoka kwenye menyu ya juu.
  5. Baada ya kubonyeza Ongeza, Configurator itashusha IPA kutoka Apple, na kujaribu kuisukuma kwenye kifaa chako. Ikiwa ufuatiliaji wa mapendekezo yangu hapo awali na umefunga IPA tayari, ujumbe wa kukuuliza ufungue programu tena utaonekana.
  6. IPA inapaswa kushushwa ndani ya /Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps ambapo unaweza kuichukua.

Angalia https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed kwa maelezo zaidi kuhusu mchakato huu.

Kuikodisha programu

Ili kuikodisha IPA tunakwenda kuifunga. Hata hivyo, ikiwa una iPhone ya zamani iliyovunjwa, huenda toleo lake halitasaidiwa na programu kwani kawaida programu zinasaidia tu matoleo ya hivi karibuni.

Hivyo, ili kuifunga, fungua tu IPA:

bash
unzip redacted.ipa -d unzipped

Angalia Info.plist kwa toleo la chini linaloungwa mkono na ikiwa kifaa chako ni cha zamani zaidi ya hicho, badilisha thamani ili iweze kuungwa mkono.

Zipisha tena IPA:

bash
cd unzipped
zip -r ../no-min-version.ipa *

Kisha, sakinisha IPA kwa mfano na:

bash
ideviceinstaller -i no-min-version.ipa -w

Note that you might need AppSync Unified tweak from Cydia to prevent any invalid signature errors.

Once installed, you can use Iridium tweak from Cydia in order to obtain the decrypted IPA.

Patch entitlements & re-sign

Ili ku-sign upya programu na get-task-allow entitlement kuna zana kadhaa zinazopatikana kama app-signer, codesign, na iResign. app-signer ina kiolesura rafiki cha mtumiaji ambacho kinaruhusu ku-sign upya faili ya IPA kwa urahisi kwa kuashiria IPA ya ku-sign upya, kuweka get-task-allow na cheti na profaili ya usambazaji ya kutumia.

Kuhusu cheti na profaili za kusaini, Apple inatoa profaili za kusaini za watengenezaji bure kwa akaunti zote kupitia Xcode. Unda tu programu na uipange. Kisha, panga iPhone kuamini programu za watengenezaji kwa kuenda Settings β†’ Privacy & Security, na bonyeza Developer Mode.

With the re-signed IPA, it's time to install it in the device to pentest it:

bash
ideviceinstaller -i resigned.ipa -w

Wezesha Hali ya Mwandamizi (iOS 16+)

Tangu iOS 16 Apple ilianzisha Hali ya Mwandamizi: binary yoyote inayobeba get_task_allow au iliyosainiwa na cheti cha maendeleo itakataa kuanzishwa hadi Hali ya Mwandamizi iwezeshwe kwenye kifaa. Hutaweza pia kuunganisha Frida/LLDB isipokuwa bendera hii iwepo.

  1. Sakinisha au sukuma yoyote IPA iliyosainiwa na mwandamizi kwenye simu.
  2. Nenda kwenye Mipangilio β†’ Faragha & Usalama β†’ Hali ya Mwandamizi na iwashe.
  3. Kifaa kitaanzisha upya; baada ya kuingiza nambari ya siri utaulizwa Washa Hali ya Mwandamizi.

Hali ya Mwandamizi inabaki hai hadi uizime au kufuta simu, hivyo hatua hii inahitaji kufanywa mara moja tu kwa kifaa. Apple documentation inaelezea athari za usalama.

Chaguzi za kisasa za sideloading

Sasa kuna njia kadhaa za kisasa za sideloading na kuweka IPAs zilizosainiwa up-to-date bila jailbreak:

ChomboMahitajiNguvuMipaka
AltStore 2 / SideStoremacOS/Windows/Linux mwenzi anayesaini tena IPA kila siku 7 kwa profaili ya bure ya maendeleoUpakuaji wa moja kwa moja kupitia Wi-Fi, inafanya kazi hadi iOS 17Inahitaji kompyuta kwenye mtandao mmoja, kikomo cha programu 3 kilichowekwa na Apple
TrollStore 1/2Kifaa kwenye iOS 14 – 15.4.1 kilichokuwa na udhaifu wa CoreTrustSaini ya kudumu (hakuna kikomo cha siku 7); hakuna kompyuta inahitajika mara baada ya kusakinishwaHaipati msaada kwenye iOS 15.5+ (bug ilirekebishwa)

Kwa pentests za kawaida kwenye toleo la sasa la iOS, Alt/Side-Store mara nyingi ni chaguo bora zaidi.

Hooking / uhandisi wa dynamic

Unaweza kuhook programu yako kama ilivyo kwenye kifaa kilichofanywa jailbreak mara tu inapokuwa imesainiwa na get_task_allow na Hali ya Mwandamizi ikiwa wazi:

bash
# Spawn & attach with objection
objection -g "com.example.target" explore

# Or plain Frida
frida -U -f com.example.target -l my_script.js --no-pause

Recent Frida releases (>=16) automatically handle pointer authentication and other iOS 17 mitigations, so most existing scripts work out-of-the-box.

Automated dynamic analysis with MobSF (no jailbreak)

MobSF inaweza kuingiza IPA iliyoidhinishwa na mende kwenye kifaa halisi kwa kutumia mbinu ile ile (get_task_allow) na inatoa UI ya wavuti yenye kivinjari cha mfumo wa faili, kukamata trafiki na console ya Frida【】. Njia ya haraka zaidi ni kuendesha MobSF kwenye Docker kisha kuunganisha iPhone yako kupitia USB:

bash
docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -p 8000:8000 --privileged \
-v /var/run/usbmuxd:/var/run/usbmuxd \
opensecurity/mobile-security-framework-mobsf:latest
# Browse to http://127.0.0.1:8000 and upload your resigned IPA

MobSF itapeleka kiotomatiki binary, iwezeshe seva ya Frida ndani ya sandbox ya programu na kuunda ripoti ya mwingiliano.

iOS 17 & Kikwazo cha Modu ya Kufunga

  • Modu ya Kufunga (Mipangilio β†’ Faragha & Usalama) inazuia linker ya dinamik kutoka kupakia maktaba za dinamik zisizosainiwa au zilizotiwa saini na nje. Unapojaribu vifaa ambavyo vinaweza kuwa na modhi hii imewezeshwa hakikisha ime zimwa au vikao vyako vya Frida/objection vitakatishwa mara moja.
  • Uthibitishaji wa Kidokezo (PAC) unatekelezwa kwa mfumo mzima kwenye vifaa vya A12+. Frida β‰₯16 inashughulikia PAC stripping kwa uwazi β€” tu hakikisha frida-server na zana za Python/CLI ziko katika hali ya kisasa unapozindua toleo jipya kuu la iOS.

Marejeleo

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks