iOS Osnovne Operacije Testiranja
Reading time: 8 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Sažetak identifikacije i pristupa iOS uređaju
Identifikacija UDID-a iOS uređaja
Da bi se jedinstveno identifikovao iOS uređaj, koristi se 40-cifreni niz poznat kao UDID. Na macOS Catalina ili novijim verzijama, ovo se može pronaći u Finder aplikaciji, pošto iTunes više nije prisutan. Uređaj, kada je povezan putem USB-a i odabran u Finder-u, otkriva svoj UDID među ostalim informacijama kada se klikne na detalje ispod njegovog imena.
Za verzije macOS-a pre Cataline, iTunes olakšava otkrivanje UDID-a. Detaljna uputstva mogu se pronaći ovde.
Alati komandne linije nude alternativne metode za preuzimanje UDID-a:
- Korišćenje I/O Registry Explorer alata
ioreg
:
$ ioreg -p IOUSB -l | grep "USB Serial"
- Korišćenje
ideviceinstaller
za macOS (i Linux):
$ brew install ideviceinstaller
$ idevice_id -l
- Korišćenje
system_profiler
:
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
- Korišćenje
instruments
za listanje uređaja:
$ instruments -s devices
Pristupanje Shell-u Uređaja
SSH pristup se omogućava instalacijom OpenSSH paketa nakon jailbreak-a, što omogućava veze putem ssh root@<device_ip_address>
. Ključno je promeniti podrazumevane lozinke (alpine
) za korisnike root
i mobile
kako bi se osigurao uređaj.
SSH preko USB-a postaje neophodan u odsustvu Wi-Fi-a, koristeći iproxy
za mapiranje portova uređaja za SSH veze. Ova konfiguracija omogućava SSH pristup putem USB-a pokretanjem:
$ iproxy 2222 22
$ ssh -p 2222 root@localhost
Aplikacije za shell na uređaju, kao što je NewTerm 2, olakšavaju direktnu interakciju sa uređajem, što je posebno korisno za rešavanje problema. Reverse SSH shell-ovi se takođe mogu uspostaviti za daljinski pristup sa host računara.
Resetovanje Zaboravljenih Lozinki
Da biste resetovali zaboravljenu lozinku na podrazumevanu (alpine
), potrebno je urediti datoteku /private/etc/master.passwd
. To podrazumeva zamenu postojećeg heša sa hešem za alpine
pored unosa korisnika root
i mobile
.
Tehnike Prenosa Podataka
Prenos Datoteka Aplikacija
Arhiviranje i Preuzimanje putem SSH i SCP: Jednostavno je arhivirati direktorijum podataka aplikacije koristeći tar
i zatim ga preneti koristeći scp
. Komanda ispod arhivira direktorijum podataka u .tgz datoteku, koja se zatim preuzima sa uređaja:
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 .
Graphical User Interface Tools
Using iFunbox and iExplorer: Ovi GUI alati su korisni za upravljanje datotekama na iOS uređajima. Međutim, počevši od iOS 8.4, Apple je ograničio pristup ovim alatima aplikacionom sandbox-u osim ako uređaj nije jailbreak-ovan.
Using Objection for File Management
Interactive Shell with Objection: Pokretanje objection-a omogućava pristup Bundle direktorijumu aplikacije. Odatle možete navigirati do direktorijuma Documents aplikacije i upravljati datotekama, uključujući preuzimanje i otpremanje na i sa iOS uređaja.
objection --gadget com.apple.mobilesafari explorer
cd /var/mobile/Containers/Data/Application/72C7AAFB-1D75-4FBA-9D83-D8B4A2D44133/Documents
file download <filename>
Dobijanje i Ekstrakcija Aplikacija
Sticanje IPA Fajla
Over-The-Air (OTA) Distribucioni Link: Aplikacije distribuirane za testiranje putem OTA mogu se preuzeti koristeći ITMS usluge alat za preuzimanje sredstava, koji se instalira putem npm-a i koristi za čuvanje IPA fajla lokalno.
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
Ekstrakcija binarnog fajla aplikacije
- Iz IPA: Raspakujte IPA da biste pristupili dekriptovanom binarnom fajlu aplikacije.
- Sa Jailbroken uređaja: Instalirajte aplikaciju i ekstraktujte dekriptovani binarni fajl iz memorije.
Proces dekripcije
Pregled ručne dekripcije: iOS binarni fajlovi aplikacija su enkriptovani od strane Apple-a koristeći FairPlay. Da bi se izvršilo obrnuto inženjerstvo, potrebno je izdumpovati dekriptovani binarni fajl iz memorije. Proces dekripcije uključuje proveru PIE zastavice, prilagođavanje memorijskih zastavica, identifikaciju enkriptovanog dela, a zatim dumpovanje i zamenu ovog dela sa njegovom dekriptovanom verzijom.
Provera i modifikacija PIE zastavice:
otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World
Identifikacija Enkriptovane Sekcije i Ispisivanje Memorije:
Odredite početne i završne adrese enkriptovane sekcije koristeći otool
i ispišite memoriju sa jailbroken uređaja koristeći gdb.
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000
Prepisivanje Enkriptovane Sekcije:
Zamenite enkriptovanu sekciju u originalnom binarnom fajlu aplikacije sa dekriptovanim dump-om.
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
Finalizacija Dekripcije: Izmenite metapodatke binarnog fajla da označite odsustvo enkripcije koristeći alate kao što je MachOView, postavljajući cryptid
na 0.
Dekripcija (Automatski)
frida-ios-dump
Alat frida-ios-dump se koristi za automatsko dekriptovanje i ekstrakciju aplikacija sa iOS uređaja. Prvo, potrebno je konfigurisati dump.py
da se poveže sa iOS uređajem, što se može uraditi preko localhost-a na portu 2222 putem iproxy ili direktno putem IP adrese uređaja i porta.
Aplikacije instalirane na uređaju mogu se nabrojati komandom:
$ python dump.py -l
Da biste dumpovali određenu aplikaciju, kao što je Telegram, koristi se sledeća komanda:
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
Ova komanda pokreće dump aplikacije, što rezultira kreiranjem Telegram.ipa
fajla u trenutnom direktorijumu. Ovaj proces je pogodan za jailbroken uređaje, jer se nesigned ili lažno potpisane aplikacije mogu ponovo instalirati koristeći alate kao što je ios-deploy.
flexdecrypt
Alat flexdecrypt, zajedno sa svojim wrapper-om flexdump, omogućava ekstrakciju IPA fajlova iz instaliranih aplikacija. Komande za instalaciju flexdecrypt na uređaju uključuju preuzimanje i instalaciju .deb
paketa. flexdump se može koristiti za listanje i dump aplikacija, kao što je prikazano u komandama ispod:
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, još jedan alat zasnovan na Fridi, zahteva jailbreak-ovan uređaj za dekripciju aplikacija:
bagbak --raw Chrome
r2flutch
r2flutch, koristeći radare i frida, služi za dekripciju aplikacija i dumping. Više informacija možete pronaći na njegovoj GitHub stranici.
Instalacija Aplikacija
Sideloading se odnosi na instalaciju aplikacija van zvanične App Store. Ovaj proces upravlja installd daemon i zahteva da aplikacije budu potpisane Apple-ovim sertifikatom. Jailbroken uređaji mogu to zaobići putem AppSync, omogućavajući instalaciju lažno potpisanih IPA paketa.
Alati za Sideloading
-
Cydia Impactor: Alat za potpisivanje i instalaciju IPA datoteka na iOS-u i APK datoteka na Androidu. Vodiči i rešenja za probleme mogu se pronaći na yalujailbreak.net.
-
libimobiledevice: Biblioteka za Linux i macOS za komunikaciju sa iOS uređajima. Komande za instalaciju i primeri korišćenja za ideviceinstaller su obezbeđeni za instalaciju aplikacija preko USB-a.
-
ipainstaller: Ovaj alat za komandnu liniju omogućava direktnu instalaciju aplikacija na iOS uređajima.
-
ios-deploy: Za korisnike macOS-a, ios-deploy instalira iOS aplikacije iz komandne linije. Dešifrovanje IPA i korišćenje
-m
oznake za direktno pokretanje aplikacije su deo procesa. -
Xcode: Koristite Xcode za instalaciju aplikacija navigirajući do Window/Devices and Simulators i dodajući aplikaciju u Installed Apps.
Dozvolite Instalaciju Aplikacija na Ne-iPad Uređajima
Da biste instalirali aplikacije specifične za iPad na iPhone ili iPod touch uređaje, potrebno je promeniti UIDeviceFamily vrednost u Info.plist datoteci na 1. Ova modifikacija, međutim, zahteva ponovo potpisivanje IPA datoteke zbog provere validacije potpisa.
Napomena: Ova metoda može propasti ako aplikacija zahteva mogućnosti koje su ekskluzivne za novije modele iPad-a dok se koristi stariji iPhone ili iPod touch.
Reference
- 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
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.