12 KiB
Osnovne operacije testiranja iOS-a
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje 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
Za jedinstvenu identifikaciju iOS uređaja koristi se 40-cifreni niz poznat kao UDID. Na macOS Catalina ili novijim verzijama, to se može pronaći u aplikaciji Finder, jer iTunes više nije prisutan. Uređaj, jednom povezan preko USB-a i izabran 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 omogućava otkrivanje UDID-a. Detaljne instrukcije mogu se pronaći ovde.
Alati komandne linije nude alternativne metode za dobijanje UDID-a:
- Korišćenje alata I/O Registry Explorer
ioreg
:
$ ioreg -p IOUSB -l | grep "USB Serial"
- Korišćenje
ideviceinstaller
alata za macOS (i Linux):
$ brew install ideviceinstaller
$ idevice_id -l
- Korišćenje
system_profiler
alata:
$ system_profiler SPUSBDataType | sed -n -e '/iPad/,/Serial/p;/iPhone/,/Serial/p;/iPod/,/Serial/p' | grep "Serial Number:"
- Korišćenje
instruments
alata za listanje uređaja:
$ instruments -s devices
Pristupanje Shell uređaju
SSH pristup je omogućen instaliranjem OpenSSH paketa nakon jailbreak-a, što omogućava konekcije putem ssh root@<device_ip_address>
. Važno je promeniti podrazumevane lozinke (alpine
) za korisnike root
i mobile
kako bi se osigurao uređaj.
SSH preko USB-a postaje neophodan u slučaju nedostatka Wi-Fi mreže, koristeći iproxy
za mapiranje portova uređaja za SSH konekcije. Ova postavka omogućava SSH pristup preko USB-a pokretanjem:
$ iproxy 2222 22
$ ssh -p 2222 root@localhost
Aplikacije za pristup uređaju, poput NewTerm 2, olakšavaju direktnu interakciju sa uređajem, posebno korisno za rešavanje problema. Obrnuti SSH školjke takođe se mogu uspostaviti za daljinski pristup sa računara domaćina.
Resetovanje zaboravljenih lozinki
Da biste resetovali zaboravljenu lozinku na podrazumevanu (alpine
), neophodno je izmeniti datoteku /private/etc/master.passwd
. To uključuje zamenu postojećeg heša sa hešom za alpine
pored unosa korisnika root
i mobile
.
Tehnike prenosa podataka
Prenos datoteka aplikacije
Arhiviranje i preuzimanje putem SSH i SCP: Jednostavno je arhivirati direktorijum podataka aplikacije koristeći tar
, a 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 .
Grafički alati sa korisničkim interfejsom
Korišćenje iFunbox-a i iExplorer-a: Ovi grafički alati su korisni za upravljanje fajlovima na iOS uređajima. Međutim, počevši od iOS 8.4, Apple je ograničio pristup ovim alatima do aplikacionog sandbox-a, osim ako je uređaj jailbroken.
Korišćenje Objection-a za upravljanje fajlovima
Interaktivna komandna linija sa Objection-om: Pokretanje Objection-a omogućava pristup Bundle direktorijumu aplikacije. Odavde možete navigirati do Documents direktorijuma aplikacije i upravljati fajlovima, uključujući njihovo preuzimanje i otpremanje 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 izdvajanje aplikacija
Dobijanje IPA fajla
Veza za distribuciju preko mreže (OTA): Aplikacije distribuirane za testiranje putem OTA mogu se preuzeti koristeći alat za preuzimanje ITMS usluga, koji se instalira putem npm-a i koristi se za lokalno čuvanje IPA fajla.
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
Izdvajanje binarnog koda aplikacije
- Iz IPA datoteke: Dekompresirajte IPA datoteku kako biste pristupili dešifrovanom binarnom kodu aplikacije.
- Sa Jailbroken uređaja: Instalirajte aplikaciju i izvucite dešifrovanu binarnu datoteku iz memorije.
Proces dešifrovanja
Pregled ručnog dešifrovanja: Binarni kod iOS aplikacija je enkriptovan od strane Apple-a koristeći FairPlay. Da biste izvršili reverzno inženjerstvo, morate izvući dešifrovanu binarnu datoteku iz memorije. Proces dešifrovanja uključuje proveru PIE zastavice, podešavanje zastavica memorije, identifikaciju enkriptovane sekcije, a zatim izvlačenje i zamenu ove sekcije sa njenom dešifrovanom formom.
Provera i izmena PIE zastavice:
otool -Vh Original_App
python change_macho_flags.py --no-pie Original_App
otool -Vh Hello_World
Identifikacija šifrovane sekcije i ispuštanje memorije:
Koristite otool
da odredite početnu i krajnju adresu šifrovane sekcije, a zatim koristite gdb da ispuštate memoriju sa jailbroken uređaja.
otool -l Original_App | grep -A 4 LC_ENCRYPTION_INFO
dump memory dump.bin 0x8000 0x10a4000
Prepisivanje šifrovanog dela:
Zamenite šifrovanu sekciju u originalnom binarnom fajlu aplikacije sa dešifrovanim dumpom.
dd bs=1 seek=<starting_address> conv=notrunc if=dump.bin of=Original_App
Završavanje Dekripcije: Izmenite metapodatke binarnog fajla kako biste naznačili odsustvo enkripcije koristeći alate poput MachOView, postavljajući cryptid
na 0.
Dekripcija (Automatski)
frida-ios-dump
Alat frida-ios-dump se koristi za automatsko dekriptovanje i izdvajanje aplikacija sa iOS uređaja. Prvo, treba konfigurisati dump.py
da se poveže sa iOS uređajem, što se može uraditi preko localhost-a na portu 2222 putem iproxy-ja ili direktno putem IP adrese uređaja i porta.
Instalirane aplikacije na uređaju mogu se prikazati komandom:
$ python dump.py -l
Da biste izvršili dump određene aplikacije, kao što je Telegram, koristite sledeću komandu:
$ python3 dump.py -u "root" -p "<PASSWORD>" ph.telegra.Telegraph
Ova komanda pokreće izvlačenje aplikacije, rezultirajući stvaranjem Telegram.ipa
datoteke u trenutnom direktorijumu. Ovaj proces je pogodan za jailbroken uređaje, jer se nepotpisane ili lažno potpisane aplikacije mogu ponovo instalirati pomoću alata kao što je ios-deploy.
flexdecrypt
Alat flexdecrypt, zajedno sa svojim omotačem flexdump, omogućava izvlačenje IPA datoteka iz instaliranih aplikacija. Komande za instalaciju flexdecrypt na uređaju uključuju preuzimanje i instaliranje .deb
paketa. flexdump se može koristiti za listanje i izvlačenje aplikacija, kao što je prikazano u sledećim komandama:
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 jailbroken uređaj za dešifrovanje aplikacija:
bagbak --raw Chrome
r2flutch
r2flutch, koristeći i radare i fridu, služi za dešifrovanje i iskopiranje aplikacija. Više informacija možete pronaći na njegovoj GitHub stranici.
Instaliranje aplikacija
Sideloading se odnosi na instaliranje aplikacija van zvanične App Store prodavnice. Ovaj proces obavlja installd daemon i zahteva da aplikacije budu potpisane Apple-ovim sertifikatom. Jailbroken uređaji mogu zaobići ovo korišćenjem AppSync-a, omogućavajući instaliranje lažno potpisanih IPA paketa.
Alati za sideloading
-
Cydia Impactor: Alat za potpisivanje i instaliranje IPA fajlova na iOS i APK fajlova na Androidu. Vodiči i rešavanje problema 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 dostupni za instaliranje aplikacija preko USB-a.
-
ipainstaller: Ovaj alat komandne linije omogućava direktnu instalaciju aplikacija na iOS uređajima.
-
ios-deploy: Za korisnike macOS-a, ios-deploy instalira iOS aplikacije sa komandne linije. Dekompresovanje IPA fajla i korišćenje opcije
-m
za direktno pokretanje aplikacije su deo procesa. -
Xcode: Koristite Xcode za instaliranje aplikacija tako što ćete otići na Window/Devices and Simulators i dodati aplikaciju u Installed Apps.
Dozvoljavanje instalacije aplikacija na uređajima koji nisu iPad
Da biste instalirali aplikacije specifične za iPad na uređajima iPhone ili iPod touch, vrednost UIDeviceFamily u fajlu Info.plist treba promeniti u 1. Međutim, ova modifikacija zahteva ponovno potpisivanje IPA fajla zbog provere potpisa.
Napomena: Ovaj metod može da ne uspe ako aplikacija zahteva mogućnosti koje su ekskluzivne za novije modele iPada 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/
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite vašu kompaniju reklamiranu na HackTricks-u ili preuzmete HackTricks u PDF formatu proverite SUBSCRIPTION PLANS!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.