# iOS App Extensions
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** đŹ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** đŠ [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
As extensĂ”es de aplicativos aprimoram a funcionalidade dos aplicativos, permitindo que interajam com outros aplicativos ou com o sistema, fornecendo recursos ou conteĂșdo personalizados. Essas extensĂ”es incluem:
- **Teclado Personalizado**: Oferece um teclado exclusivo em todos os aplicativos, substituindo o teclado padrĂŁo do iOS.
- **Compartilhar**: Permite compartilhar em redes sociais ou com outros diretamente.
- **Hoje (Widgets)**: Fornece conteĂșdo ou executa tarefas rapidamente a partir da visualização Hoje do Centro de NotificaçÔes.
Quando um usuårio interage com essas extensÔes, como compartilhar texto de um aplicativo host, a extensão processa essa entrada dentro de seu contexto, aproveitando as informaçÔes compartilhadas para realizar sua tarefa, conforme detalhado na documentação da Apple.
### **ConsideraçÔes de Segurança**
Os principais aspectos de segurança incluem:
- As extensÔes e seus aplicativos contidos se comunicam por meio de comunicação entre processos, não diretamente.
- O **widget Hoje** Ă© Ășnico, pois pode solicitar que seu aplicativo seja aberto por meio de um mĂ©todo especĂfico.
- O acesso a dados compartilhados Ă© permitido dentro de um contĂȘiner privado, mas o acesso direto Ă© restrito.
- Certas APIs, incluindo HealthKit, estão fora dos limites para extensÔes de aplicativos, que também não podem iniciar tarefas de longa duração, acessar a cùmera ou o microfone, exceto para extensÔes do iMessage.
### AnĂĄlise EstĂĄtica
#### **Identificando ExtensÔes de Aplicativos**
Para encontrar extensÔes de aplicativos no código-fonte, procure por `NSExtensionPointIdentifier` no Xcode ou inspecione o pacote do aplicativo em busca de arquivos `.appex` que indiquem extensÔes. Sem o código-fonte, use grep ou SSH para localizar esses identificadores dentro do pacote do aplicativo.
#### **Tipos de Dados Suportados**
Verifique o arquivo `Info.plist` de uma extensĂŁo para `NSExtensionActivationRule` para identificar os tipos de dados suportados. Essa configuração garante que apenas tipos de dados compatĂveis acionem a extensĂŁo em aplicativos host.
#### **Compartilhamento de Dados**
O compartilhamento de dados entre um aplicativo e sua extensĂŁo requer um contĂȘiner compartilhado, configurado por meio de "Grupos de Aplicativos" e acessado atravĂ©s de `NSUserDefaults`. Esse espaço compartilhado Ă© necessĂĄrio para transferĂȘncias em segundo plano iniciadas por extensĂ”es.
#### **Restringindo ExtensÔes**
Os aplicativos podem restringir certos tipos de extensĂ”es, particularmente teclados personalizados, garantindo que o manuseio de dados sensĂveis esteja alinhado com os protocolos de segurança.
### AnĂĄlise DinĂąmica
A anĂĄlise dinĂąmica envolve:
- **Inspecionando Itens Compartilhados**: Conecte-se a `NSExtensionContext - inputItems` para ver tipos de dados e origens compartilhados.
- **Identificando ExtensÔes**: Descubra quais extensÔes processam seus dados observando mecanismos internos, como `NSXPCConnection`.
Ferramentas como `frida-trace` podem ajudar a entender os processos subjacentes, especialmente para aqueles interessados nos detalhes técnicos da comunicação entre processos.
## ReferĂȘncias
* [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/)
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** đŹ [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** đŠ [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}