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

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

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