iOS Basic Testing Operations

Reading time: 9 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)

Support HackTricks

Muhtasari wa Utambuzi wa Kifaa cha iOS na Ufikiaji

Kutambua UDID ya Kifaa cha iOS

Ili kutambua kifaa cha iOS kwa kipekee, mfuatano wa tarakimu 40 unaojulikana kama UDID unatumika. Kwenye macOS Catalina au mpya, hii inaweza kupatikana katika Finder app, kwani iTunes haitumiki tena. Kifaa, kinapounganishwa kupitia USB na kuchaguliwa katika Finder, kinaonyesha UDID yake pamoja na taarifa nyingine wakati maelezo chini ya jina lake yanapobofya.

Kwa matoleo ya macOS kabla ya Catalina, iTunes inarahisisha kugundua UDID. Maelekezo ya kina yanaweza kupatikana hapa.

Zana za mstari wa amri zinatoa njia mbadala za kupata UDID:

  • Kutumia zana ya I/O Registry Explorer ioreg:
bash
$ ioreg -p IOUSB -l | grep "USB Serial"
  • Kutumia ideviceinstaller kwa macOS (na Linux):
bash
$ brew install ideviceinstaller
$ idevice_id -l
  • Kutumia system_profiler:
bash
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
  • Kutumia instruments kuorodhesha vifaa:
bash
$ instruments -s devices

Kufikia Shell ya Kifaa

SSH access inaruhusiwa kwa kufunga OpenSSH package baada ya jailbreak, ikiruhusu muunganisho kupitia ssh root@<device_ip_address>. Ni muhimu kubadilisha nywila za msingi (alpine) kwa watumiaji root na mobile ili kulinda kifaa.

SSH kupitia USB inakuwa muhimu pindi hakuna Wi-Fi, kwa kutumia iproxy kuunganisha bandari za kifaa kwa muunganisho wa SSH. Mpangilio huu unaruhusu ufikiaji wa SSH kupitia USB kwa kukimbia:

bash
$ iproxy 2222 22
$ ssh -p 2222 root@localhost

On-device shell applications, kama NewTerm 2, huruhusu mwingiliano wa moja kwa moja na kifaa, hasa ni muhimu kwa ajili ya kutatua matatizo. Reverse SSH shells pia zinaweza kuanzishwa kwa ajili ya ufikiaji wa mbali kutoka kwa kompyuta mwenyeji.

Kurekebisha Nywila Iliyosahaulika

Ili kurekebisha nywila iliyosahaulika kurudi kwenye chaguo-msingi (alpine), kuhariri faili ya /private/etc/master.passwd ni muhimu. Hii inahusisha kubadilisha hash iliyopo na hash ya alpine karibu na entries za mtumiaji root na mobile.

Mbinu za Uhamasishaji wa Data

Kuhamisha Faili za Data za Programu

Archiving and Retrieval via SSH and SCP: Ni rahisi kuhifadhi saraka ya Data ya programu kwa kutumia tar na kisha kuhamisha kwa kutumia scp. Amri iliyo hapa chini inahifadhi saraka ya Data katika faili .tgz, ambayo kisha inavutwa kutoka kwa kifaa:

bash
tar czvf /tmp/data.tgz /private/var/mobile/Containers/Data/Application/8C8E7EB0-BC9B-435B-8EF8-8F5560EB0693
exit
scp -P 2222 root@localhost:/tmp/data.tgz .

Zana za Kiolesura cha Mtumiaji

Kutumia iFunbox na iExplorer: Zana hizi za GUI ni muhimu kwa usimamizi wa faili kwenye vifaa vya iOS. Hata hivyo, kuanzia iOS 8.4, Apple ilipunguza ufikiaji wa zana hizi kwenye sandbox ya programu isipokuwa kifaa kimefungwa.

Kutumia Objection kwa Usimamizi wa Faili

Shell ya Kihusiano na Objection: Kuanzisha objection kunatoa ufikiaji wa saraka ya Bundle ya programu. Kutoka hapa, unaweza kuhamasisha kwenye saraka ya Hati za programu na kusimamia faili, ikiwa ni pamoja na kupakua na kupakia faili kutoka na kwenda kwenye kifaa cha iOS.

bash
objection --gadget com.apple.mobilesafari explorer
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
file download <filename>

Kupata na Kutolewa kwa Mifumo ya Programu

Kupata Faili la IPA

Kiungo cha Usambazaji wa Over-The-Air (OTA): Mifumo ya programu inayosambazwa kwa ajili ya majaribio kupitia OTA inaweza kupakuliwa kwa kutumia chombo cha kupakua mali za huduma za ITMS, ambacho kimewekwa kupitia npm na kinatumika kuhifadhi faili la IPA kwenye kifaa.

bash
npm install -g itms-services
itms-services -u "itms-services://?action=download-manifest&url=https://s3-ap-southeast-1.amazonaws.com/test-uat/manifest.plist" -o - > out.ipa

Kutoa Binary ya App

  1. Kutoka kwa IPA: Fungua IPA ili kufikia binary ya app iliyosimbwa.
  2. Kutoka kwa Kifaa kilichovunjwa: Sakinisha app na toa binary iliyosimbwa kutoka kwenye kumbukumbu.

Mchakato wa Kufungua

Muhtasari wa Kufungua kwa Mikono: Binary za app za iOS zimefungwa na Apple kwa kutumia FairPlay. Ili kufanya uhandisi wa nyuma, lazima mtu atoe binary iliyosimbwa kutoka kwenye kumbukumbu. Mchakato wa kufungua unajumuisha kuangalia bendera ya PIE, kurekebisha bendera za kumbukumbu, kubaini sehemu iliyosimbwa, na kisha kutoa na kubadilisha sehemu hii na fomu yake iliyosimbwa.

Kuangalia na Kubadilisha Bendera ya PIE:

bash
otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World

Kutambua Sehemu Iliyosimbwa na Kutoa Kumbukumbu:

Tathmini anwani za mwanzo na mwisho za sehemu iliyosimbwa kwa kutumia otool na kutoa kumbukumbu kutoka kwa kifaa kilichovunjwa kwa kutumia gdb.

bash
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000

Kuweka Upya Sehemu ya Kificho:

Badilisha sehemu ya kificho katika binary ya programu asilia na dump iliyotolewa.

bash
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App

Kumaliza Ufunguo: Badilisha metadata ya binary kuonyesha kutokuwepo kwa usimbuaji kwa kutumia zana kama MachOView, ukipanga cryptid kuwa 0.

Ufunguo (Kiotomatiki)

frida-ios-dump

Zana ya frida-ios-dump inatumika kwa kufungua na kutoa programu kiotomatiki kutoka kwa vifaa vya iOS. Kwanza, mtu anapaswa kuunda dump.py ili kuungana na kifaa cha iOS, ambayo inaweza kufanywa kupitia localhost kwenye bandari 2222 kupitia iproxy au moja kwa moja kupitia anwani ya IP ya kifaa na bandari.

Programu zilizowekwa kwenye kifaa zinaweza kuorodheshwa kwa amri:

bash
$ python dump.py -l

Ili kudondosha programu maalum, kama Telegram, amri ifuatayo inatumika:

bash
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph

Hii amri inaanzisha upakuaji wa programu, ikisababisha kuundwa kwa faili ya Telegram.ipa katika saraka ya sasa. Mchakato huu unafaa kwa vifaa vilivyovunjwa, kwani programu zisizosainiwa au zisizo sahihi zinaweza kufungwa upya kwa kutumia zana kama ios-deploy.

flexdecrypt

Zana ya flexdecrypt, pamoja na kifurushi chake flexdump, inaruhusu kutoa faili za IPA kutoka kwa programu zilizowekwa. Amri za usakinishaji kwa flexdecrypt kwenye kifaa zinajumuisha kupakua na kusakinisha kifurushi cha .deb. flexdump inaweza kutumika kuorodhesha na kupakua programu, kama inavyoonyeshwa katika amri zilizo hapa chini:

bash
apt install zip unzip
wget https://gist.githubusercontent.com/defparam/71d67ee738341559c35c684d659d40ac/raw/30c7612262f1faf7871ba8e32fbe29c0f3ef9e27/flexdump -P /usr/local/bin; chmod +x /usr/local/bin/flexdump
flexdump list
flexdump dump Twitter.app

bagbak

bagbak, chombo kingine kinachotumia Frida, kinahitaji kifaa kilichovunjwa ili kufungua programu:

bash
bagbak --raw Chrome

r2flutch

r2flutch, ikitumia radare na frida, inatumika kwa ajili ya ufichuzi wa programu na dumping. Taarifa zaidi zinaweza kupatikana kwenye GitHub page.

Kuweka Programu

Sideloading inahusisha kufunga programu nje ya Duka rasmi la Programu. Mchakato huu unashughulikiwa na installd daemon na unahitaji programu zisainiwe kwa cheti kilichotolewa na Apple. Vifaa vilivyofunguliwa (jailbroken) vinaweza kupita hili kupitia AppSync, kuruhusu ufungaji wa pakiti za IPA zenye sahihi bandia.

Zana za Sideloading

  • Cydia Impactor: Zana ya kusaini na kufunga faili za IPA kwenye iOS na faili za APK kwenye Android. Miongozo na ufumbuzi wa matatizo yanaweza kupatikana kwenye yalujailbreak.net.

  • libimobiledevice: Maktaba kwa ajili ya Linux na macOS kuwasiliana na vifaa vya iOS. Amri za ufungaji na mifano ya matumizi ya ideviceinstaller zinatolewa kwa ajili ya kufunga programu kupitia USB.

  • ipainstaller: Zana hii ya mstari wa amri inaruhusu ufungaji wa moja kwa moja wa programu kwenye vifaa vya iOS.

  • ios-deploy: Kwa watumiaji wa macOS, ios-deploy inafunga programu za iOS kutoka kwenye mstari wa amri. Kufungua IPA na kutumia lipo -m kwa ajili ya uzinduzi wa moja kwa moja wa programu ni sehemu ya mchakato.

  • Xcode: Tumia Xcode kufunga programu kwa kuingia kwenye Window/Devices and Simulators na kuongeza programu kwenye Installed Apps.

Ruhusu Ufunguzi wa Programu kwenye Vifaa Visivyo na iPad

Ili kufunga programu maalum za iPad kwenye vifaa vya iPhone au iPod touch, thamani ya UIDeviceFamily katika faili ya Info.plist inahitaji kubadilishwa kuwa 1. Marekebisho haya, hata hivyo, yanahitaji kusaini tena faili ya IPA kutokana na ukaguzi wa uthibitisho wa sahihi.

Kumbuka: Njia hii inaweza kushindwa ikiwa programu inahitaji uwezo ambao ni wa kipekee kwa mifano mipya ya iPad wakati ikitumia iPhone au iPod touch ya zamani.

References

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)

Support HackTricks