Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras maneiras de apoiar o HackTricks: * Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
{% embed url="https://websec.nl/" %} O compartilhamento de dados dentro e entre aplicativos em dispositivos iOS é facilitado pelo mecanismo [`UIPasteboard`](https://developer.apple.com/documentation/uikit/uipasteboard), que é dividido em duas categorias principais: - **Área de transferência geral em todo o sistema**: Esta é usada para compartilhar dados com **qualquer aplicativo** e é projetada para persistir dados através de reinicializações do dispositivo e desinstalações de aplicativos, um recurso disponível desde o iOS 10. - **Áreas de transferência personalizadas/nomeadas**: Estas são especificamente para compartilhamento de dados **dentro de um aplicativo ou com outro aplicativo** que compartilha o mesmo ID de equipe e não são projetadas para persistir além da vida do processo do aplicativo que as cria, seguindo as alterações introduzidas no iOS 10. As **considerações de segurança** desempenham um papel significativo ao utilizar as áreas de transferência. Por exemplo: - Não há mecanismo para os usuários gerenciarem as permissões do aplicativo para acessar a **área de transferência**. - Para mitigar o risco de monitoramento não autorizado em segundo plano da área de transferência, o acesso é restrito quando o aplicativo está em primeiro plano (desde o iOS 9). - O uso de áreas de transferência nomeadas persistentes é desencorajado em favor de contêineres compartilhados devido a preocupações com a privacidade. - O recurso **Área de Transferência Universal** introduzido com o iOS 10, permitindo o compartilhamento de conteúdo entre dispositivos via área de transferência geral, pode ser gerenciado pelos desenvolvedores para definir a expiração dos dados e desativar a transferência automática de conteúdo. Garantir que **informações sensíveis não sejam armazenadas inadvertidamente** na área de transferência geral é crucial. Além disso, os aplicativos devem ser projetados para evitar o uso indevido de dados da área de transferência geral para ações não intencionais, e os desenvolvedores são incentivados a implementar medidas para evitar a cópia de informações sensíveis para a área de transferência. ### Análise Estática Para análise estática, pesquise o código-fonte ou binário por: - `generalPasteboard` para identificar o uso da **área de transferência geral em todo o sistema**. - `pasteboardWithName:create:` e `pasteboardWithUniqueName` para criar **áreas de transferência personalizadas**. Verifique se a persistência está ativada, embora isso seja obsoleto. ### Análise Dinâmica A análise dinâmica envolve o hooking ou rastreamento de métodos específicos: - Monitore `generalPasteboard` para uso em todo o sistema. - Rastreie `pasteboardWithName:create:` e `pasteboardWithUniqueName` para implementações personalizadas. - Observe chamadas de método `setPersistent:` obsoletas para verificar as configurações de persistência. Detalhes-chave a serem monitorados incluem: - **Nomes** e **conteúdos** da área de transferência (por exemplo, verificando strings, URLs, imagens). - **Número de itens** e **tipos de dados** presentes, aproveitando verificações de tipos de dados padrão e personalizados. - Opções de **expiração e somente local** ao inspecionar o método `setItems:options:`. Um exemplo de uso de ferramenta de monitoramento é o **monitor de área de transferência do objection**, que verifica a área de transferência geral a cada 5 segundos em busca de alterações e exibe os novos dados. Aqui está um exemplo simples de script JavaScript, inspirado na abordagem do objection, para ler e registrar alterações da área de transferência a cada 5 segundos: ```javascript const UIPasteboard = ObjC.classes.UIPasteboard; const Pasteboard = UIPasteboard.generalPasteboard(); var items = ""; var count = Pasteboard.changeCount().toString(); setInterval(function () { const currentCount = Pasteboard.changeCount().toString(); const currentItems = Pasteboard.items().toString(); if (currentCount === count) { return; } items = currentItems; count = currentCount; console.log('[* Pasteboard changed] count: ' + count + ' hasStrings: ' + Pasteboard.hasStrings().toString() + ' hasURLs: ' + Pasteboard.hasURLs().toString() + ' hasImages: ' + Pasteboard.hasImages().toString()); console.log(items); }, 1000 * 5); ``` ## Referências * [https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8](https://mobile-security.gitbook.io/mobile-security-testing-guide/ios-testing-guide/0x06h-testing-platform-interaction#testing-object-persistence-mstg-platform-8) * [https://hackmd.io/@robihamanto/owasp-robi](https://hackmd.io/@robihamanto/owasp-robi) * [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0073/)
{% embed url="https://websec.nl/" %}
Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras maneiras de apoiar o HackTricks: * Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.