iOS Basiese Toetsoperasies
Reading time: 9 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Samevatting van iOS Toestel Identifikasie en Toegang
Identifisering van die UDID van 'n iOS Toestel
Om 'n iOS toestel uniek te identifiseer, word 'n 40-syfer volgorde bekend as die UDID gebruik. Op macOS Catalina of nuwer, kan dit in die Finder app gevind word, aangesien iTunes nie meer teenwoordig is nie. Die toestel, eenmaal gekoppel via USB en in Finder gekies, openbaar sy UDID onder ander inligting wanneer die besonderhede onder sy naam geklik word.
Vir weergawes van macOS voor Catalina, fasiliteer iTunes die ontdekking van die UDID. Gedetailleerde instruksies kan hier gevind word.
Opdraglyn gereedskap bied alternatiewe metodes om die UDID te verkry:
- Gebruik van I/O Registry Explorer gereedskap
ioreg
:
$ ioreg -p IOUSB -l | grep "USB Serial"
- Gebruik
ideviceinstaller
vir macOS (en Linux):
$ brew install ideviceinstaller
$ idevice_id -l
- Gebruik van
system_profiler
:
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
- Gebruik van
instruments
om toestelle te lys:
$ instruments -s devices
Toegang tot die Toestel Skulp
SSH-toegang is geaktiveer deur die OpenSSH-pakket na jailbreak te installeer, wat verbindings via ssh root@<device_ip_address>
moontlik maak. Dit is noodsaaklik om die standaard wagwoorde (alpine
) vir die gebruikers root
en mobile
te verander om die toestel te beveilig.
SSH oor USB word noodsaaklik in die afwesigheid van Wi-Fi, met iproxy
om toestelpoorte vir SSH-verbinding te kaart. Hierdie opstelling stel SSH-toegang deur USB in staat deur die volgende uit te voer:
$ iproxy 2222 22
$ ssh -p 2222 root@localhost
Op-toestel-skaal toepassings, soos NewTerm 2, fasiliteer direkte toestelinteraksie, veral nuttig vir probleemoplossing. Omgekeerde SSH-skaal kan ook gevestig word vir afstandstoegang vanaf die gasrekenaar.
Herstel van Vergete Wagwoorde
Om 'n vergete wagwoord terug te stel na die standaard (alpine
), is dit nodig om die /private/etc/master.passwd
lĂȘer te redigeer. Dit behels die vervanging van die bestaande hash met die hash vir alpine
langs die root
en mobile
gebruikersinvoere.
Data-oordragtegnieke
Oordrag van App Data LĂȘers
Argivering en Herwinning via SSH en SCP: Dit is eenvoudig om die toepassings se Data-gids te argiveer met tar
en dit dan oor te dra met scp
. Die onderstaande opdrag argiveer die Data-gids in 'n .tgz-lĂȘer, wat dan van die toestel af getrek word:
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 .
Grafiese Gebruikerskoppelvlak Gereedskap
Gebruik iFunbox en iExplorer: Hierdie GUI-gereedskap is nuttig vir die bestuur van lĂȘers op iOS-toestelle. egter, begin met iOS 8.4, het Apple hierdie gereedskap se toegang tot die aansoek sandbox beperk tensy die toestel gejailbreak is.
Gebruik Objection vir LĂȘerbestuur
Interaktiewe Skulp met Objection: Die bekendstelling van objection bied toegang tot die Bundle-gids van 'n aansoek. Van hier af kan jy na die aansoek se Dokumente-gids navigeer en lĂȘers bestuur, insluitend die aflaai en oplaai daarvan na en van die iOS-toestel.
objection --gadget com.apple.mobilesafari explorer
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
file download <filename>
Verkryging en Uittreksel van Apps
Verkryging van die IPA-lĂȘer
Over-The-Air (OTA) Verspreidingskakel: Apps wat vir toetsing via OTA versprei word, kan afgelaai word met behulp van die ITMS dienste bates aflaaigereedskap, wat via npm geĂŻnstalleer word en gebruik word om die IPA-lĂȘer plaaslik te stoor.
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
Onttrek die App BinĂȘre
- Van 'n IPA: Unzip die IPA om toegang te verkry tot die gedekripteerde app binĂȘre.
- Van 'n Jailbroken Toestel: Installeer die app en onttrek die gedekripteerde binĂȘre uit geheue.
Dekripsie Proses
Handmatige Dekripsie Oorsig: iOS app binĂȘre is deur Apple met FairPlay versleuteld. Om omgekeerd te werk, moet 'n mens die gedekripteerde binĂȘre uit geheue dump. Die dekripsie proses behels die nagaan van die PIE-vlag, die aanpassing van geheuevlagte, die identifisering van die versleutelde afdeling, en dan die dump en vervanging van hierdie afdeling met sy gedekripteerde vorm.
Nagaan en Wysig PIE Vlag:
otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World
Identifisering van Versleutelde Afdeling en Dump van Geheue:
Bepaal die begin- en eindadresse van die versleutelde afdeling met behulp van otool
en dump die geheue vanaf die jailbreak-toestel met gdb.
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000
Oorskrywing van die Gekodeerde Afdeling:
Vervang die gekodeerde afdeling in die oorspronklike app-binary met die gedekodeerde dump.
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
Finalisering van Ontsleuteling: Pas die binĂȘre se metadata aan om die afwesigheid van versleuteling aan te dui met behulp van gereedskap soos MachOView, en stel die cryptid
op 0.
Ontsleuteling (Outomaties)
frida-ios-dump
Die frida-ios-dump gereedskap word gebruik vir outomatiese ontsleuteling en onttrekking van toepassings van iOS-toestelle. Aanvanklik moet 'n mens dump.py
konfigureer om met die iOS-toestel te verbind, wat gedoen kan word deur localhost op poort 2222 via iproxy of direk via die toestel se IP-adres en poort.
Toepassings wat op die toestel geĂŻnstalleer is, kan gelys word met die opdrag:
$ python dump.py -l
Om 'n spesifieke app, soos Telegram, te dump, word die volgende opdrag gebruik:
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
Hierdie opdrag begin die app dump, wat lei tot die skepping van 'n Telegram.ipa
lĂȘer in die huidige gids. Hierdie proses is geskik vir jailbroken toestelle, aangesien ongetekende of vals-getekende apps herinstalleer kan word met behulp van gereedskap soos ios-deploy.
flexdecrypt
Die flexdecrypt gereedskap, saam met sy wrapper flexdump, maak dit moontlik om IPA-lĂȘers uit geĂŻnstalleerde toepassings te onttrek. Installasie-opdragte vir flexdecrypt op die toestel sluit die aflaai en installasie van die .deb
pakket in. flexdump kan gebruik word om apps te lys en te dump, soos in die onderstaande opdragte getoon:
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, 'n ander Frida-gebaseerde hulpmiddel, vereis 'n jailbreak-toestel vir app-dekripsie:
bagbak --raw Chrome
r2flutch
r2flutch, wat beide radare en frida gebruik, dien vir app-dekriptering en dumping. Meer inligting kan op sy GitHub-bladsy gevind word.
Installeer Apps
Sideloading verwys na die installering van toepassings buite die amptelike App Store. Hierdie proses word hanteer deur die installd daemon en vereis dat apps onderteken word met 'n Apple-uitgereikte sertifikaat. Jailbroken toestelle kan hierdie proses omseil deur AppSync, wat die installering van vals-ondertekende IPA-pakkette moontlik maak.
Sideloading Gereedskap
-
Cydia Impactor: 'n Gereedskap vir die ondertekening en installering van IPA-lĂȘers op iOS en APK-lĂȘers op Android. Gidse en probleemoplossing kan op yalujailbreak.net gevind word.
-
libimobiledevice: 'n Biblioteek vir Linux en macOS om met iOS-toestelle te kommunikeer. Installasie-opdragte en gebruiksvoorbeelde vir ideviceinstaller word verskaf vir die installering van apps oor USB.
-
ipainstaller: Hierdie opdraglyn-gereedskap stel direkte app-installasie op iOS-toestelle moontlik.
-
ios-deploy: Vir macOS-gebruikers installeer ios-deploy iOS-apps vanaf die opdraglyn. Die uitpak van die IPA en die gebruik van die
-m
vlag vir direkte app-lancering is deel van die proses. -
Xcode: Gebruik Xcode om apps te installeer deur na Window/Devices and Simulators te navigeer en die app by Installed Apps te voeg.
Toestaan van Toepassing Installasie op Nie-iPad Toestelle
Om iPad-spesifieke toepassings op iPhone of iPod touch toestelle te installeer, moet die UIDeviceFamily waarde in die Info.plist lĂȘer verander word na 1. Hierdie wysiging vereis egter dat die IPA-lĂȘer weer onderteken word weens handtekeningvalideringstoetse.
Nota: Hierdie metode mag misluk as die toepassing vermoëns vereis wat eksklusief is vir nuwer iPad-modelle terwyl 'n ouer iPhone of iPod touch gebruik word.
References
- 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/
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.