iOS Basic Testing Operations

Support HackTricks

Muhtasari wa Utambuzi wa Kifaa cha iOS na Ufikiaji

Kuutambua UDID wa Kifaa cha iOS

Ili kutambua kifaa cha iOS kwa kipekee, mfuatano wa tarakimu 40 unaojulikana kama UDID unatumika. Kwenye macOS Catalina au toleo jipya, hii inaweza kupatikana kwenye app ya Finder, kwani iTunes haipo tena. Kifaa, kinapounganishwa kupitia USB na kuchaguliwa kwenye 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:

$ 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 Ufikiaji wa Shell ya Kifaa

Ufikiaji wa SSH umewezeshwa kwa kufunga pakiti ya OpenSSH baada ya jailbreak, kuruhusu 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 Wi-Fi haitapatikana, kwa kutumia iproxy kuunganisha bandari za kifaa kwa muunganisho wa SSH. Mpangilio huu unaruhusu ufikiaji wa SSH kupitia USB kwa kukimbia:

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

On-device shell applications, kama NewTerm 2, hurahisisha mwingiliano wa moja kwa moja na kifaa, hasa ni muhimu kwa ajili ya kutatua matatizo. Reverse SSH shells pia zinaweza kuanzishwa kwa 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 kuhamasisha kwa kutumia scp. Amri iliyo hapa chini inahifadhi saraka ya Data katika faili ya .tgz, ambayo kisha inavutwa 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 .

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 kimefanywa jailbroken.

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 hizo kutoka na kwenda 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 Kutolewa kwa Programu

Kupata Faili la IPA

Kiungo cha Usambazaji Juu ya Hewa (OTA): Programu zinazotolewa kwa ajili ya majaribio kupitia OTA zinaweza kupakuliwa kwa kutumia chombo cha kupakua mali za huduma za ITMS, ambacho kimewekwa kupitia npm na kinatumika kuhifadhi faili la IPA kwenye kifaa.

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 iliyotolewa.

  2. Kutoka kwa Kifaa kilichovunjwa: Sakinisha app na toa binary iliyotolewa kutoka kwenye kumbukumbu.

Mchakato wa Kufungua

Muhtasari wa Kufungua kwa Mikono: Binary za app za iOS zimefungwa na Apple kwa kutumia FairPlay. Ili kufanya reverse-engineering, lazima utoe binary iliyotolewa kutoka kwenye kumbukumbu. Mchakato wa kufungua unajumuisha kuangalia bendera ya PIE, kurekebisha bendera za kumbukumbu, kubaini sehemu iliyofungwa, na kisha kutoa na kubadilisha sehemu hii na fomu yake iliyotolewa.

Kuangalia na Kubadilisha Bendera ya PIE:

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

Kutambua Sehemu Iliyosimbwa na Kutupa Kumbukumbu:

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

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

Kufuta Sehemu Iliyoandikwa kwa Siri:

Badilisha sehemu iliyokuwa imeandikwa kwa siri katika programu asilia na dump iliyotolewa.

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

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

Kufichua (Kiotomatiki)

frida-ios-dump

Zana ya frida-ios-dump inatumika kwa kufichua na kutoa programu kiotomatiki kutoka kwa vifaa vya iOS. Kwanza, mtu anapaswa kuunda dump.py 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:

$ python dump.py -l

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

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

Hii amri inaanzisha upakuaji wa programu, na kusababisha 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 kifungashio chake flexdump, inaruhusu kutoa faili za IPA kutoka kwa programu zilizowekwa. Amri za usakinishaji za flexdecrypt kwenye kifaa zinajumuisha kupakua na kusakinisha kifurushi cha .deb. flexdump inaweza kutumika kuorodhesha na kupakua programu, kama inavyoonyeshwa katika amri zilizo 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, chombo kingine kinachotumia Frida, kinahitaji kifaa kilichovunjwa ili kufungua programu:

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 inamaanisha kufunga programu nje ya Duka rasmi la Programu. Mchakato huu unashughulikiwa na installd daemon na unahitaji programu zisainiwe kwa cheti kilichotolewa na Apple. Vifaa vilivyofanywa 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 vya 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 wa kipekee kwa mifano mipya ya iPad wakati ikitumia iPhone au iPod touch ya zamani.

Marejeo

Support HackTricks

Last updated