iOS Operesheni za Msingi za Upimaji

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

Muhtasari wa Utambuzi na Ufikiaji wa Vifaa vya iOS

Utambuzi wa UDID ya Kifaa cha iOS

Ili kutambua kifaa cha iOS kwa kipekee, hutumiwa mlolongo wa tarakimu 40 unaojulikana kama UDID. Kwenye macOS Catalina au ya baadaye, inaweza kupatikana katika Finder app, kwani iTunes hayupo tena. Kifaa, mara kinachounganishwa kwa USB na kuchaguliwa katika Finder, kinafunua UDID yake miongoni mwa taarifa nyingine wakati maelezo chini ya jina lake yanapobonyezwa.

Kwa toleo za macOS kabla ya Catalina, iTunes husaidia kugundua UDID. Maelekezo ya kina yanaweza kupatikana hapa.

Zana za command-line zinatoa njia mbadala za kupata UDID:

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

Kufikia Device Shell

SSH access inaruhusiwa kwa kusakinisha OpenSSH package baada ya jailbreak, ikiruhusu muunganisho kupitia ssh root@<device_ip_address>. Ni muhimu kubadilisha nenosiri za chaguo-msingi (alpine) kwa watumiaji root na mobile ili kuhakikisha kifaa kiko salama.

SSH over USB inahitajika pale hakuna Wi-Fi, ukitumia iproxy kuoanisha ports za kifaa kwa muunganisho wa SSH. Mpangilio huu unawezesha ufikiaji wa SSH kupitia USB kwa kukimbia:

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

Programu za shell kwenye kifaa, kama NewTerm 2, husaidia mwingiliano wa moja kwa moja na kifaa, hasa muhimu kwa utatuzi wa matatizo. Reverse SSH shells pia zinaweza kuanzishwa kwa ajili ya ufikiaji wa mbali kutoka kwa kompyuta mwenyeji.

Kurejesha Nywila Zilizosahaulika

Ili kurejesha nywila iliyosahaulika hadi ile ya chaguo-msingi (alpine), inahitajika kuhariri faili /private/etc/master.passwd. Hii inahusisha kubadilisha hash iliyopo kwa hash ya alpine karibu na rekodi za watumiaji root na mobile.

Mbinu za Uhamishaji wa Data

Kuhamisha Faili za Data za App

Kuhifadhi na Kupata kupitia SSH na SCP: Ni rahisi kuhifadhi kabrasha la Data la app kwa kutumia tar kisha kulihamisha kwa kutumia scp. Amri hapa chini inahifadhi kabrasha la Data ndani ya faili .tgz, ambayo baadaye hutolewa kutoka kwa kifaa:

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 .

Vifaa vya Kiolesura cha Mtumiaji (Graphical User Interface)

Kutumia iFunbox na iExplorer: Vifaa hivi vya GUI ni muhimu kwa kusimamia faili kwenye vifaa vya iOS. Hata hivyo, kuanzia iOS 8.4, Apple ilipunguza ufikiaji wa vifaa hivi kwenye sandbox ya programu isipokuwa kifaa kimejailbroken.

Kutumia Objection kwa Usimamizi wa Faili

Shell ya Kuingiliana na Objection: Kuzindua objection kunatoa ufikiaji wa Bundle directory ya app. Kutoka hapa, unaweza kuvinjari hadi Documents directory ya app na kusimamia faili, ikiwa ni pamoja na kupakua na kupakia kwa na kutoka kifaa cha iOS.

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

Kupata na Kutoa Programu

Kupata Faili ya IPA

Over-The-Air (OTA) Distribution Link: Programu zilizotolewa kwa ajili ya upimaji kupitia OTA zinaweza kupakuliwa kwa kutumia ITMS services asset downloader tool, ambayo inasakinishwa kupitia npm na kutumika kuhifadhi faili ya IPA kwenye kompyuta ya ndani.

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 App Binary

  1. Kutoka kwa IPA: Unzip IPA ili kufikia decrypted app binary.
  2. Kutoka kwa Jailbroken Device: Install app kisha extract decrypted binary kutoka memory.

Mchakato wa Decryption

Muhtasari wa Manual Decryption: iOS app binaries zime encrypted na Apple kwa kutumia FairPlay. Ili reverse-engineer, lazima dump decrypted binary kutoka memory. Mchakato wa decryption unahusisha kukagua PIE flag, kurekebisha memory flags, kutambua encrypted section, kisha ku-dump na kubadilisha sehemu hii na form yake decrypted.

Kukagua na Kurekebisha PIE Flag:

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

Kutambua Encrypted Section na Dumping Memory:

Tambua anwani za kuanza na kumalizika za encrypted section kwa kutumia otool, kisha dump the memory kutoka kwenye jailbroken device kwa kutumia gdb.

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

Kuandika tena Encrypted Section:

Badilisha encrypted section iliyopo katika original app binary kwa decrypted dump.

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

Kumaliza Decryption: Badilisha metadata ya binary ili kuonyesha kutokuwepo kwa encryption kwa kutumia zana kama MachOView, uweke cryptid kuwa 0.

Decryption (Automatically)

frida-ios-dump

The frida-ios-dump tool inatumiwa kwa automatically decrypting and extracting apps kutoka kwa vifaa vya iOS. Kwanza, unapaswa kusanidi dump.py kuunganishwa na kifaa cha iOS; hili linaweza kufanywa kupitia localhost kwenye port 2222 kwa kutumia iproxy, au moja kwa moja kupitia IP address na port ya kifaa.

Applications zilizowekwa kwenye kifaa zinaweza kuorodheshwa kwa amri:

$ python dump.py -l

Ili kufanya dump ya app maalum, kama Telegram, amri ifuatayo inatumiwa:

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

Amri hii inaanzisha app dump, na kusababisha kuundwa kwa faili Telegram.ipa katika direktori ya sasa. Mchakato huu unafaa kwa jailbroken devices, kwani unsigned or fake-signed apps zinaweza kusakinishwa tena kwa kutumia zana kama ios-deploy.

frida-ipa-extract

Frida-based IPA extractor kwa jailbroken devices; inatumia USB Frida sessions na, kwa hiari, SSH/SFTP kwa kuvuta faili kwa haraka.

  • Mahitaji: Python 3.9+, frida, paramiko, jailbroken device with frida-server (OpenSSH for SSH mode).
  • Usanidi:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  • Matumizi:
python extract.py -U -f com.example.app -o MyApp.ipa
python extract.py -U -f com.example.app -o MyApp.ipa --sandbox --no-resume
python extract.py -H 192.168.100.32 -P 2222 -u root -p password -f com.example.app
  • Bendera: -f <bundle> inazindua/inaunganisha (au --pid kwa PID); -o inaweka jina la pato. -U inatumia USB; -H/-P/-u/-p hufungua tunnel ya SSH kwenda kwa frida-server 27042 na huvuta kwa SFTP (inaweza kuunganishwa na -U). --sandbox hutupa sandbox; --no-resume inaweka app imesimamishwa ili kuepuka kuanguka (crashes) na jaribu tena kupitia mchakato wa mfumo ikiwa kikao kinashuka.

  • Utatuzi wa matatizo: Frida attach timed out → tumia -f au --no-resume; script has been destroyed--no-resume au uhamisho wa SSH; No running apps found → anzisha au izindue app.

flexdecrypt

Zana flexdecrypt, pamoja na wrapper yake flexdump, zinaruhusu uchimbaji wa faili za IPA kutoka kwa programu zilizosakinishwa. Amri za kusanidi flexdecrypt kwenye kifaa ni pamoja na kupakua na kusakinisha kifurushi .deb. flexdump inaweza kutumika kuorodhesha na kudump programu, kama ilivyoonyeshwa katika amri hapa chini:

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, zana nyingine inayotegemea Frida, inahitaji kifaa kilicho jailbroken kwa ajili ya app decryption:

bagbak --raw Chrome

r2flutch

r2flutch, ikitumia radare na frida, hutumika kwa app decryption na dumping. Maelezo zaidi yanapatikana kwenye GitHub page.

Kusakinisha Apps

Sideloading inamaanisha kusakinisha applications nje ya App Store rasmi. Mchakato huu unasimamiwa na installd daemon na unahitaji apps kusainiwa kwa cheti kinachotolewa na Apple. Vifaa vilivyo jailbreak vinaweza kuepuka hili kupitia AppSync, kuruhusu ufungaji wa fake-signed IPA packages.

Zana za Sideloading

  • Cydia Impactor: Zana ya kusaini na kusakinisha IPA files kwenye iOS na APK files kwenye Android. Maelekezo na utatuzi wa matatizo yanapatikana kwenye yalujailbreak.net.

  • libimobiledevice: Maktaba kwa Linux na macOS kwa ajili ya kuwasiliana na iOS devices. Amri za usakinishaji na mifano ya matumizi kwa ideviceinstaller zinatolewa kwa kusakinisha apps kwa USB.

  • ipainstaller: Zana ya command-line inayoruhusu kusakinisha apps moja kwa moja kwenye iOS devices.

  • ios-deploy: Kwa watumiaji wa macOS, ios-deploy inasakinisha iOS apps kutoka command line. Kuunzilia IPA na kutumia flag -m kwa kuanzisha app moja kwa moja ni sehemu ya mchakato.

  • Xcode: Tumia Xcode kusakinisha apps kwa kwenda Window/Devices and Simulators na kuongeza app kwenye Installed Apps.

Ruhusu Kusakinisha Programu kwenye Vifaa Visivyo iPad

Ili kusakinisha applications maalum za iPad kwenye iPhone au iPod touch, thamani ya UIDeviceFamily katika faili ya Info.plist inahitaji kubadilishwa kuwa 1. Hata hivyo, marekebisho haya yanahitaji re-signing ya IPA file kutokana na ukaguzi wa saini.

Note: Njia hii inaweza kushindwa ikiwa application inahitaji sifa (capabilities) ambazo zinapatikana tu kwenye modeli mpya za iPad wakati zikitumika kwenye iPhone au iPod touch za zamani.

Marejeo

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