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)

Support HackTricks

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)

Support HackTricks

Last updated