hacktricks/mobile-pentesting/ios-pentesting/basic-ios-testing-operations.md
2024-02-11 02:13:58 +00:00

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:

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

  1. Kutoka kwa IPA: Fungua IPA ili kupata programu ya binary iliyofunguliwa.
  2. 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

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks: