mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-18 09:03:30 +00:00
77 lines
5.8 KiB
Markdown
77 lines
5.8 KiB
Markdown
# Rozszerzenia aplikacji iOS
|
|
|
|
<details>
|
|
|
|
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Inne sposoby wsparcia HackTricks:
|
|
|
|
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
|
|
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów GitHub.
|
|
|
|
</details>
|
|
|
|
Rozszerzenia aplikacji zwiększają funkcjonalność aplikacji, umożliwiając im interakcję z innymi aplikacjami lub systemem, dostarczając niestandardowe funkcje lub treści. Te rozszerzenia obejmują:
|
|
|
|
- **Niestandardowa klawiatura**: Oferuje unikalną klawiaturę we wszystkich aplikacjach, zastępując domyślną klawiaturę iOS.
|
|
- **Udostępnianie**: Umożliwia udostępnianie w sieciach społecznościowych lub bezpośrednio innym osobom.
|
|
- **Dzisiaj (Widżety)**: Dostarcza treści lub wykonuje zadania szybko z widoku "Dzisiaj" w Centrum powiadomień.
|
|
|
|
Kiedy użytkownik korzysta z tych rozszerzeń, na przykład udostępnia tekst z aplikacji gospodarza, rozszerzenie przetwarza ten wejściowy tekst w swoim kontekście, wykorzystując udostępnione informacje do wykonania swojego zadania, jak szczegółowo opisano w dokumentacji Apple.
|
|
|
|
### **Aspekty bezpieczeństwa**
|
|
|
|
Kluczowe aspekty bezpieczeństwa obejmują:
|
|
|
|
- Rozszerzenia i aplikacje, w których się znajdują, komunikują się za pomocą komunikacji międzyprocesowej, a nie bezpośrednio.
|
|
- **Widżet Dzisiaj** jest wyjątkowy, ponieważ może zażądać otwarcia swojej aplikacji za pomocą określonej metody.
|
|
- Dostęp do udostępnionych danych jest dozwolony w ramach prywatnego kontenera, ale bezpośredni dostęp jest ograniczony.
|
|
- Pewne interfejsy API, w tym HealthKit, są niedostępne dla rozszerzeń aplikacji, które również nie mogą uruchamiać długotrwałych zadań, uzyskiwać dostępu do aparatu ani mikrofonu, z wyjątkiem rozszerzeń iMessage.
|
|
|
|
### Analiza statyczna
|
|
|
|
#### **Identyfikowanie rozszerzeń aplikacji**
|
|
|
|
Aby znaleźć rozszerzenia aplikacji w kodzie źródłowym, wyszukaj `NSExtensionPointIdentifier` w Xcode lub sprawdź paczkę aplikacji pod kątem plików `.appex`, wskazujących na rozszerzenia. Bez kodu źródłowego użyj grep lub SSH, aby zlokalizować te identyfikatory w paczce aplikacji.
|
|
|
|
#### **Obsługiwane typy danych**
|
|
|
|
Sprawdź plik `Info.plist` rozszerzenia, aby zidentyfikować obsługiwane typy danych za pomocą `NSExtensionActivationRule`. Ta konfiguracja zapewnia, że tylko zgodne typy danych wywołują rozszerzenie w aplikacjach gospodarza.
|
|
|
|
#### **Udostępnianie danych**
|
|
|
|
Udostępnianie danych między aplikacją a jej rozszerzeniem wymaga wspólnego kontenera, skonfigurowanego za pomocą "Grup aplikacji" i dostępnego za pośrednictwem `NSUserDefaults`. To wspólne miejsce jest niezbędne do transferów w tle inicjowanych przez rozszerzenia.
|
|
|
|
#### **Ograniczanie rozszerzeń**
|
|
|
|
Aplikacje mogą ograniczać określone typy rozszerzeń, zwłaszcza niestandardowe klawiatury, zapewniając zgodność z protokołami bezpieczeństwa w obszarze obsługi poufnych danych.
|
|
|
|
### Analiza dynamiczna
|
|
|
|
Analiza dynamiczna obejmuje:
|
|
|
|
- **Inspekcję udostępnionych elementów**: Podłącz się do `NSExtensionContext - inputItems`, aby zobaczyć typy danych i pochodzenie udostępnionych informacji.
|
|
- **Identyfikowanie rozszerzeń**: Odkryj, które rozszerzenia przetwarzają twoje dane, obserwując wewnętrzne mechanizmy, takie jak `NSXPCConnection`.
|
|
|
|
Narzędzia takie jak `frida-trace` mogą pomóc w zrozumieniu podstawowych procesów, zwłaszcza dla tych, którzy interesują się technicznymi szczegółami komunikacji międzyprocesowej.
|
|
|
|
## Referencje
|
|
* [https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/](https://mas.owasp.org/MASTG/iOS/0x06h-Testing-Platform-Interaction/)
|
|
* [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/)
|
|
|
|
<details>
|
|
|
|
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
Inne sposoby wsparcia HackTricks:
|
|
|
|
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
|
|
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
|
|
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów GitHub.
|
|
|
|
</details>
|