iOS App Extensions
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Ekstenzije aplikacija poboljšavaju funkcionalnost aplikacija omogućavajući im interakciju sa drugim aplikacijama ili sistemom, pružajući prilagođene funkcije ili sadržaj. Ove ekstenzije uključuju:
Prilagođena tastatura: Nudi jedinstvenu tastaturu u svim aplikacijama, zamenjujući podrazumevanu iOS tastaturu.
Deljenje: Omogućava deljenje na društvenim mrežama ili sa drugima direktno.
Danas (Widgeti): Pruža sadržaj ili obavlja zadatke brzo iz pregleda Danas u centru za obaveštenja.
Kada korisnik koristi ove ekstenzije, kao što je deljenje teksta iz matične aplikacije, ekstenzija obrađuje ovaj unos unutar svog konteksta, koristeći deljene informacije za obavljanje svog zadatka, kako je detaljno opisano u Apple-ovoj dokumentaciji.
Bezbednosna razmatranja
Ključni bezbednosni aspekti uključuju:
Ekstenzije i njihove matične aplikacije komuniciraju putem međuprocesne komunikacije, a ne direktno.
Danas widget je jedinstven po tome što može zatražiti od svoje aplikacije da se otvori putem specifične metode.
Pristup deljenim podacima je dozvoljen unutar privatnog kontejnera, ali je direktan pristup ograničen.
Određeni API-ji, uključujući HealthKit, su zabranjeni za ekstenzije aplikacija, koje takođe ne mogu započeti dugotrajne zadatke, pristupiti kameri ili mikrofonu, osim za iMessage ekstenzije.
Staticka analiza
Identifikacija ekstenzija aplikacija
Da biste pronašli ekstenzije aplikacija u izvor kodu, pretražujte NSExtensionPointIdentifier
u Xcode-u ili pregledajte paket aplikacije za .appex
datoteke koje označavaju ekstenzije. Bez izvornog koda, koristite grep ili SSH da locirate ove identifikatore unutar paketa aplikacije.
Podržani tipovi podataka
Proverite Info.plist
datoteku ekstenzije za NSExtensionActivationRule
kako biste identifikovali podržane tipove podataka. Ova postavka osigurava da samo kompatibilni tipovi podataka aktiviraju ekstenziju u matičnim aplikacijama.
Deljenje podataka
Deljenje podataka između aplikacije i njene ekstenzije zahteva zajednički kontejner, postavljen putem "App Groups" i pristupljen kroz NSUserDefaults
. Ovaj zajednički prostor je neophodan za pozadinske transfere koje pokreću ekstenzije.
Ograničavanje ekstenzija
Aplikacije mogu ograničiti određene tipove ekstenzija, posebno prilagođene tastature, osiguravajući da rukovanje osetljivim podacima bude u skladu sa bezbednosnim protokolima.
Dinamička analiza
Dinamička analiza uključuje:
Ispitivanje deljenih stavki: Hook u
NSExtensionContext - inputItems
da biste videli deljene tipove podataka i poreklo.Identifikacija ekstenzija: Otkrijte koje ekstenzije obrađuju vaše podatke posmatrajući unutrašnje mehanizme, poput
NSXPCConnection
.
Alati poput frida-trace
mogu pomoći u razumevanju osnovnih procesa, posebno za one koji su zainteresovani za tehničke detalje međuprocesne komunikacije.
Reference
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking:
HackTricks Training GCP Red Team Expert (GRTE)
Last updated