ExtensÔes de Aplicativos iOS
Reading time: 3 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.
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 realiza 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:
- ExtensÔes e seus aplicativos contidos se comunicam via 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 via "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: Intercepte
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/tests/ios/MASVS-PLATFORM/MASTG-TEST-0072/
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.