12 KiB
Uchunguzi wa Msingi wa Ufundi wa iOS
Jifunze kuhusu kuhack AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako inayotangazwa kwenye HackTricks au kupakua HackTricks kwa muundo wa PDF Angalia MPANGO WA KUJIUNGA!
- Pata swag rasmi ya PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kuhack kwa kuwasilisha PR kwa HackTricks na HackTricks Cloud repos za github.
Muhtasari wa Kutambua na Kupata Ufikiaji wa Kifaa cha iOS
Kutambua UDID ya Kifaa cha iOS
Kutambua kifaa cha iOS kwa kipekee, hutumika mfuatano wa tarakimu 40 unaojulikana kama UDID. Kwenye macOS Catalina au mpya zaidi, hii inaweza kupatikana kwenye programu ya Finder, kwani iTunes haipo tena. Kifaa, mara kilipounganishwa kupitia USB na kuchaguliwa kwenye Finder, inaonyesha UDID yake pamoja na habari nyingine wakati maelezo chini ya jina lake yanapobonyezwa.
Kwa toleo la macOS kabla ya Catalina, iTunes inawezesha ugunduzi wa UDID. Maelekezo ya kina yanaweza kupatikana hapa.
Zana za amri ya mstari hutoa njia mbadala za kupata UDID:
- Kutumia zana ya I/O Registry Explorer
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
Kupata Kifaa cha Shell
Upatikanaji wa SSH umewezeshwa kwa kufunga kifurushi cha OpenSSH baada ya kufungua kifaa, kuruhusu uunganisho kupitia ssh root@<anwani_ya_ip_ya_kifaa>
. Ni muhimu kubadilisha nywila za msingi (alpine
) kwa watumiaji root
na mobile
ili kuhakikisha usalama wa kifaa.
SSH kupitia USB inakuwa muhimu ikiwa hakuna Wi-Fi, kwa kutumia iproxy
kuweka ramani ya bandari za kifaa kwa ajili ya uunganisho wa SSH. Hii inawezesha upatikanaji wa SSH kupitia USB kwa kutekeleza:
$ iproxy 2222 22
$ ssh -p 2222 root@localhost
Programu za kushughulikia kifaa kwenye kifaa, kama vile NewTerm 2, hufanikisha mwingiliano wa moja kwa moja na kifaa, hasa ni muhimu kwa ajili ya kutatua matatizo. Maboya ya SSH ya kugeuza pia yanaweza kuanzishwa kwa ajili ya ufikiaji wa kijijini kutoka kwenye kompyuta ya mwenyeji.
Kurejesha Nywila Zilizosahaulika
Ili kurejesha nywila iliyosahaulika kurudi kwenye chaguo-msingi (alpine
), ni lazima kuhariri faili ya /private/etc/master.passwd
. Hii inahusisha kubadilisha hash iliyopo na hash kwa ajili ya alpine
karibu na maelezo ya mtumiaji wa root
na mobile
.
Mbinu za Uhamishaji wa Data
Uhamishaji wa Faili za Data za Programu
Kuhifadhi na Kupata kwa Kutumia SSH na SCP: Ni rahisi kuhifadhi saraka ya Data ya programu kwa kutumia tar
na kisha kuhamisha kwa kutumia scp
. Amri ifuatayo inahifadhi saraka ya saraka ya Data katika faili ya .tgz, ambayo kisha inavutwa kutoka kwenye 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 .
Zana za Kiolesura cha Mtumiaji cha Picha
Kutumia iFunbox na iExplorer: Zana hizi za GUI ni muhimu kwa kusimamia faili kwenye vifaa vya iOS. Hata hivyo, kuanzia iOS 8.4, Apple imezuia upatikanaji wa zana hizi kwenye sanduku la maombi isipokuwa kifaa kimefungwa.
Kutumia Objection kwa Usimamizi wa Faili
Kifaa cha Shell cha Kuingiliana na Objection: Kuzindua objection hutoa upatikanaji kwenye saraka ya Bundle ya programu. Kutoka hapa, unaweza kusafiri kwenye saraka ya Nyaraka ya programu na kusimamia faili, ikiwa ni pamoja na kupakua na kupakia kutoka kwenye 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 Kuchanganua Programu
Kupata Faili ya IPA
Kiungo cha Usambazaji wa Juu ya Hewani (OTA): Programu zilizosambazwa kwa ajili ya majaribio kupitia OTA zinaweza kupakuliwa kwa kutumia zana ya kupakua mali ya huduma za ITMS, ambayo imewekwa kupitia npm na hutumiwa kuokoa faili ya IPA kwa kiwango cha 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
Kuchukua Programu ya Binary
- Kutoka kwa IPA: Fungua IPA ili kupata programu ya binary iliyofunguliwa.
- Kutoka kwa Kifaa kilichovunjwa: Sakinisha programu na chukua binary iliyofunguliwa kutoka kumbukumbu.
Mchakato wa Kufungua
Muhtasari wa Kufungua kwa Mikono: Programu za iOS zinafungwa kwa kutumia FairPlay na Apple. Ili kurejesha, mtu lazima achukue binary iliyofunguliwa kutoka kumbukumbu. Mchakato wa kufungua unahusisha kuchunguza bendera ya PIE, kurekebisha bendera za kumbukumbu, kutambua sehemu iliyofungwa, na kisha kuchukua na kubadilisha sehemu hii na fomu yake iliyofunguliwa.
Kuchunguza na Kubadilisha Bendera ya PIE:
otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World
Kutambua Sehemu Iliyofichwa na Kudondosha Kumbukumbu:
Tambua anwani za kuanza na kumaliza sehemu iliyofichwa kwa kutumia otool
na kudondosha kumbukumbu kutoka kifaa kilichovunjwa ulinzi kwa kutumia gdb.
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000
Kuandika upya Sehemu Iliyofichwa:
Badilisha sehemu iliyoifichwa katika faili ya asili ya programu na nakala iliyofichuliwa.
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
Kukamilisha Ufichuzi: Badilisha metadata ya faili ya binary ili kuonyesha kutokuwepo kwa ufichuzi kwa kutumia zana kama MachOView, kwa kuweka cryptid
kuwa 0.
Ufichuzi (Kiotomatiki)
frida-ios-dump
Zana ya frida-ios-dump hutumiwa kwa ufichuzi na uchimbaji wa kiotomatiki wa programu kutoka kwenye vifaa vya iOS. Kwanza, mtu lazima aconfigure dump.py
ili kuunganisha kifaa cha iOS, ambacho kinaweza kufanywa kupitia localhost kwenye bandari 2222 kupitia iproxy au moja kwa moja kupitia anwani ya IP ya kifaa na bandari.
Programu zilizosakinishwa kwenye kifaa zinaweza kuorodheshwa kwa kutumia amri:
$ python dump.py -l
Kutapanya programu maalum, kama vile Telegram, tumia amri ifuatayo:
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
Amri hii inaanzisha upakuaji wa programu, ikisababisha uundaji wa faili ya Telegram.ipa
katika saraka ya sasa. Mchakato huu ni mzuri kwa vifaa vilivyofungwa, kwani programu zisizo na saini au zilizosainiwa bandia zinaweza kusakinishwa tena kwa kutumia zana kama ios-deploy.
flexdecrypt
Zana ya flexdecrypt, pamoja na kifuniko chake flexdump, inaruhusu uchimbaji wa faili za IPA kutoka kwenye programu zilizosakinishwa. Amri za usakinishaji kwa flexdecrypt kwenye kifaa ni pamoja na kupakua na kusakinisha pakiti ya .deb
. flexdump inaweza kutumika kuorodhesha na kudump programu, kama inavyoonyeshwa katika amri zifuatazo:
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 kinachotegemea Frida, kinahitaji kifaa kilichofungwa kwa ajili ya kufichua programu:
bagbak --raw Chrome
r2flutch
r2flutch, ikitumia radare na frida, inatumika kwa kusimbua na kudumpa programu. Maelezo zaidi yanaweza kupatikana kwenye ukurasa wake wa GitHub.
Kuweka Programu
Sideloading inahusu kuweka programu nje ya Duka rasmi la App. Mchakato huu unashughulikiwa na installd daemon na inahitaji programu kuwa na saini ya cheti kilichotolewa na Apple. Vifaa vilivyofanyiwa jailbreak vinaweza kuepuka hii kupitia AppSync, kuruhusu kuweka pakiti za IPA zenye saini bandia.
Vyombo vya Sideloading
-
Cydia Impactor: Chombo cha kusaini na kuweka faili za IPA kwenye iOS na faili za APK kwenye Android. Mwongozo na suluhisho la matatizo yanaweza kupatikana kwenye yalujailbreak.net.
-
libimobiledevice: Maktaba kwa Linux na macOS kwa mawasiliano na vifaa vya iOS. Amri za kuweka na mifano ya matumizi ya ideviceinstaller zinapatikana kwa kuweka programu kupitia USB.
-
ipainstaller: Chombo cha amri kinachoruhusu kuweka programu moja kwa moja kwenye vifaa vya iOS.
-
ios-deploy: Kwa watumiaji wa macOS, ios-deploy inaweka programu za iOS kupitia amri ya mstari wa peruzi. Kufungua faili ya IPA na kutumia bendera ya
-m
kwa uzinduzi wa moja kwa moja wa programu ni sehemu ya mchakato. -
Xcode: Tumia Xcode kuweka programu kwa kwenda kwenye Window/Devices and Simulators na kuongeza programu kwenye Installed Apps.
Ruhusu Kuweka Programu kwenye Vifaa Visivyo vya iPad
Ili kuweka programu maalum za iPad kwenye vifaa vya iPhone au iPod touch, thamani ya UIDeviceFamily kwenye faili ya Info.plist inahitaji kubadilishwa kuwa 1. Mabadiliko haya, hata hivyo, yanahitaji kusaini upya faili ya IPA kutokana na ukaguzi wa uthibitisho wa saini.
Note: Njia hii inaweza kushindwa ikiwa programu inahitaji uwezo maalum unaopatikana kwenye mifano mipya ya iPad wakati inatumia iPhone au iPod touch ya 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/
Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa muundo wa PDF Angalia MPANGO WA KUJIUNGA!
- Pata swag rasmi wa PEASS & HackTricks
- Gundua The PEASS Family, mkusanyiko wetu wa NFTs za kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram](https://t.me/peass) au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kudukua kwa kuwasilisha PR kwa HackTricks na HackTricks Cloud github repos.