12 KiB
iOS Basiese Toetsoperasies
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien jou maatskappy geadverteer in HackTricks of HackTricks aflaai in PDF-formaat Kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-repos.
Opsomming van iOS-toestelidentifikasie en toegang
Identifisering van die UDID van 'n iOS-toestel
Om 'n iOS-toestel uniek te identifiseer, word 'n 40-syfer-reeks 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, sodra dit via USB gekoppel is en in Finder gekies is, openbaar sy UDID saam met ander inligting wanneer die besonderhede onder sy naam deurgeklik word.
Vir weergawes van macOS vóór Catalina fasiliteer iTunes die ontdekking van die UDID. Gedetailleerde instruksies kan hier gevind word hier.
Opdraggereelhulpmiddels bied alternatiewe metodes vir die ophaling van die UDID:
- Met behulp van die I/O Registry Explorer-hulpmiddel
ioreg
:
$ ioreg -p IOUSB -l | grep "USB Serial"
- Gebruik van
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 se skulp
SSH-toegang word geaktiveer deur die OpenSSH-pakket na die gevangenisbreking te installeer, wat verbinding via ssh root@<toestel_ip_adres>
moontlik maak. Dit is noodsaaklik om die verstek wagwoorde (alpine
) vir gebruikers root
en mobile
te verander om die toestel te beveilig.
SSH oor USB word nodig as daar geen Wi-Fi beskikbaar is nie, deur iproxy
te gebruik om toestel poorte vir SSH-verbindinge te karteer. Hierdie opset maak SSH-toegang moontlik deur USB te gebruik deur die volgende uit te voer:
$ iproxy 2222 22
$ ssh -p 2222 root@localhost
Op-toestel skulprogramme, soos NewTerm 2, fasiliteer direkte toestelinteraksie, wat veral nuttig is vir foutopsporing. Omgekeerde SSH-skulprogramme kan ook opgestel word vir afstandsbediening vanaf die gasrekenaar.
Herstel van vergeetde wagwoorde
Om 'n vergeetde wagwoord terug te stel na die verstekwaarde (alpine
), is dit nodig om die /private/etc/master.passwd
-lêer te wysig. Dit behels die vervanging van die bestaande has met die has vir alpine
langs die root
- en mobile
-gebruikersinskrywings.
Data-oordragtegnieke
Oordrag van App Data-lêers
Argivering en herwinning via SSH en SCP: Dit is maklik om die Data-gids van die toepassing te argiveer met behulp van tar
en dit dan oor te dra met behulp van scp
. Die onderstaande opdrag argiveer die Data-gids in 'n .tgz-lêer, wat dan van die toestel afgehaal 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-hulpmiddels
Gebruik van iFunbox en iExplorer: Hierdie GUI-hulpmiddels is nuttig vir die bestuur van lêers op iOS-toestelle. Tog het Apple vanaf iOS 8.4 hierdie hulpmiddels se toegang tot die toepassingsandbox beperk, tensy die toestel gejailbreak is.
Gebruik van Objection vir Lêerbestuur
Interaktiewe Skulp met Objection: Deur objection te begin, verkry jy toegang tot die Bundel-gids van 'n toepassing. Van hier af kan jy na die toepassing se Dokumente-gids navigeer en lêers bestuur, insluitend aflaai en oplaai 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 Uitpak van Programme
Verkryging van die IPA-lêer
Over-The-Air (OTA) Verspreidingskoppeling: Programme wat vir toetsing via OTA versprei word, kan afgelaai word deur die ITMS-diens bate-aflaaier-hulpmiddel te gebruik. Hierdie hulpmiddel word geïnstalleer via npm en word gebruik om die IPA-lêer lokaal 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
Uittreksel van die App Binêre
- Van 'n IPA: Ontpak 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 vanaf die geheue.
Dekripsieproses
Oorsig van Handmatige Dekripsie: iOS-app-binêres word deur Apple versleutel met behulp van FairPlay. Om dit te herontwerp, moet die gedekripteerde binêre uit die geheue uitgelek word. Die dekripsieproses behels die kontroleer van die PIE-vlag, die aanpassing van geheuevlaggies, die identifisering van die versleutelde gedeelte, en dan die uitlek en vervanging van hierdie gedeelte met sy gedekripteerde vorm.
Kontroleer en Wysig PIE-vlag:
otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World
Identifiseer Versleutelde Seksie en Dump Geheue:
Bepaal die begin- en eindadresse van die versleutelde sekisie deur otool
te gebruik en dump die geheue van die jailbroken toestel met behulp van gdb.
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000
Oorskryf die Versleutelde Seksie:
Vervang die versleutelde seksie in die oorspronklike app binêre lêer met die gedekripteerde dump.
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
Finale Dekripsie: Wysig die metadata van die binêre lêer om aan te dui dat daar geen enkripsie is nie deur gebruik te maak van hulpmiddels soos MachOView, deur die cryptid
in te stel op 0.
Dekripsie (Outomaties)
frida-ios-dump
Die frida-ios-dump hulpmiddel word gebruik om toepassings outomaties te dekripteer en te onttrek vanaf iOS-toestelle. Aanvanklik moet dump.py
gekonfigureer word om met die iOS-toestel te verbind, wat gedoen kan word deur middel van localhost op poort 2222 via iproxy of direk deur die IP-adres en poort van die toestel.
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 bevel gebruik:
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
Hierdie bevel 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-ondertekende programme herïnstalleer kan word met behulp van hulpmiddels soos ios-deploy.
flexdecrypt
Die flexdecrypt hulpmiddel, saam met sy omhulsel flexdump, maak dit moontlik om IPA-lêers uit geïnstalleerde programme te onttrek. Installasie-opdragte vir flexdecrypt op die toestel sluit die aflaai en installeer van die .deb
-pakket in. flexdump kan gebruik word om programme te lys en te dump, soos getoon in die volgende opdragte:
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, nog 'n Frida-gebaseerde instrument, vereis 'n jailbroken toestel vir app dekripsie:
bagbak --raw Chrome
r2flutch
r2flutch, wat beide radare en frida gebruik, dien vir app dekripsie en dump. Meer inligting kan gevind word op sy GitHub-bladsy.
Installeer Apps
Sideloading verwys na die installeer van programme buite die amptelike App Store. Hierdie proses word hanteer deur die installd daemon en vereis dat programme onderteken moet word met 'n Apple-uitgereikte sertifikaat. Gehackte toestelle kan hierdie proses omseil deur middel van AppSync, wat die installasie van vals-ondertekende IPA-pakette moontlik maak.
Sideloading-hulpmiddels
-
Cydia Impactor: 'n Hulpmiddel vir die onderteken en installeer van IPA-lêers op iOS en APK-lêers op Android. Gidse en probleemoplossing kan gevind word op yalujailbreak.net.
-
libimobiledevice: 'n Biblioteek vir Linux en macOS om met iOS-toestelle te kommunikeer. Installasie-opdragte en gebruiksvoorbeelde vir ideviceinstaller word verskaf vir die installeer van programme via USB.
-
ipainstaller: Hierdie opdraglynhulpmiddel maak direkte app-installasie op iOS-toestelle moontlik.
-
ios-deploy: Vir macOS-gebruikers installeer ios-deploy iOS-apps vanaf die opdraglyn. Die IPA-lêer word uitgepakte en die
-m
vlag word gebruik vir direkte app-lancering as deel van die proses. -
Xcode: Gebruik Xcode om programme te installeer deur na Window/Devices and Simulators te navigeer en die app by Installed Apps te voeg.
Toelaat van Toepassingsinstallasie op Nie-iPad-toestelle
Om iPad-spesifieke programme 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 heronderteken word as gevolg van handtekeningvalideringskontroles.
Let op: Hierdie metode kan misluk as die toepassing funksies vereis wat eksklusief is vir nuwer iPad-modelle terwyl 'n ouer iPhone of iPod touch gebruik word.
Verwysings
- 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/
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks-uitrusting
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.