hacktricks/mobile-pentesting/ios-pentesting/ios-app-extensions.md

5.7 KiB

Extensões de Aplicativos iOS

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

As extensões de aplicativos aprimoram a funcionalidade dos aplicativos, permitindo que eles interajam com outros aplicativos ou com o sistema, fornecendo recursos ou conteúdo personalizado. 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 outras pessoas 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 hospedeiro, 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

Aspectos de segurança chave incluem:

  • As extensões e seus aplicativos contêineres se comunicam via comunicação entre processos, não diretamente.
  • O widget Hoje é único, pois pode solicitar que seu aplicativo seja aberto por 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, são proibidas 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 indicam 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 os tipos de dados compatíveis acionem a extensão nos aplicativos hospedeiros.

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 por meio de NSUserDefaults. Este 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, especialmente 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:

  • Inspecionar Itens Compartilhados: Conecte-se a NSExtensionContext - inputItems para ver os tipos de dados compartilhados e suas origens.
  • Identificar 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

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks: