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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
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
ideviceinstallerkwa 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
instrumentskuorodhesha 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
- Kutoka kwa IPA: Unzip IPA ili kufikia decrypted app binary.
- 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--pidkwa PID);-oinaweka jina la pato.-Uinatumia USB;-H/-P/-u/-phufungua tunnel ya SSH kwenda kwafrida-server27042 na huvuta kwa SFTP (inaweza kuunganishwa na-U).--sandboxhutupa sandbox;--no-resumeinaweka app imesimamishwa ili kuepuka kuanguka (crashes) na jaribu tena kupitia mchakato wa mfumo ikiwa kikao kinashuka. -
Utatuzi wa matatizo:
Frida attach timed out→ tumia-fau--no-resume;script has been destroyed→--no-resumeau 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
-mkwa 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
- https://mas.owasp.org/MASTG/iOS/0x06b-iOS-Security-Testing/
- https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0052/
- https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0053/
- https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0054/
- https://mas.owasp.org/MASTG/techniques/ios/MASTG-TECH-0056/
- frida-ipa-extract
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
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.


