iOS Basic Testing Operations
Last updated
Last updated
Učite i vežbajte AWS Hacking:HackTricks Obuka AWS Red Team Ekspert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Obuka GCP Red Team Ekspert (GRTE)
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 možete pronaći ovde.
Alati komandne linije nude alternativne metode za preuzimanje UDID-a:
Korišćenje I/O Registry Explorer alata ioreg
:
Korišćenje ideviceinstaller
za macOS (i Linux):
Korišćenje system_profiler
:
Korišćenje instruments
za listanje 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:
Aplikacije za shell na uređaju, poput 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.
Da biste resetovali zaboravljenu lozinku na podrazumevanu (alpine
), potrebno je urediti datoteku /private/etc/master.passwd
. To uključuje zamenu postojećeg heša sa hešem za alpine
pored unosa korisnika root
i mobile
.
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:
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.
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 njih na i sa iOS uređaja.
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 i koristi za čuvanje IPA fajla lokalno.
Iz IPA: Raspakujte IPA da biste pristupili dekriptovanom binarnom fajlu aplikacije.
Sa Jailbroken uređaja: Instalirajte aplikaciju i ekstraktujte dekriptovani binarni fajl iz memorije.
Pregled ručne dekripcije: iOS binarni fajlovi aplikacija su enkriptovani od strane Apple-a koristeći FairPlay. Da bi se izvršila obrnuta inženjering, potrebno je dumpovati 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.
Proveravanje i modifikovanje PIE zastavice:
Identifying Encrypted Section and Dumping Memory:
Odredite početne i završne adrese enkriptovane sekcije koristeći otool
i ispraznite memoriju sa jailbroken uređaja koristeći gdb.
Prepisivanje Enkriptovanog Odeljka:
Zamenite enkriptovani odeljak u originalnom binarnom fajlu aplikacije sa dekriptovanim dump-om.
Finalizacija dekripcije: Izmenite metapodatke binarnog fajla da označite odsustvo enkripcije koristeći alate kao što je MachOView, postavljajući cryptid
na 0.
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:
Da biste dumpovali određenu aplikaciju, kao što je Telegram, koristi se sledeća komanda:
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.
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:
bagbak, još jedan alat zasnovan na Fridi, zahteva jailbreak-ovan uređaj za dekripciju aplikacija:
r2flutch, koristeći radare i frida, služi za dekripciju i dumpovanje aplikacija. Više informacija možete pronaći na njegovoj GitHub stranici.
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.
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.
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.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)