9.8 KiB
iOS Pentesting Checklist
Use Trickest para construir e automatizar fluxos de trabalho facilmente, impulsionados pelas ferramentas comunitárias mais avançadas do mundo.
Acesse hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% hint style="success" %}
Aprenda e pratique AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking: 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.
Preparação
- Leia iOS Basics
- Prepare seu ambiente lendo iOS Testing Environment
- Leia todas as seções de iOS Initial Analysis para aprender ações comuns para pentest de um aplicativo iOS
Armazenamento de Dados
- Arquivos Plist podem ser usados para armazenar informações sensíveis.
- Core Data (banco de dados SQLite) pode armazenar informações sensíveis.
- YapDatabases (banco de dados SQLite) pode armazenar informações sensíveis.
- Firebase configuração incorreta.
- Bancos de dados Realm podem armazenar informações sensíveis.
- Bancos de dados Couchbase Lite podem armazenar informações sensíveis.
- Cookies binários podem armazenar informações sensíveis.
- Dados de cache podem armazenar informações sensíveis.
- Snapshots automáticos podem salvar informações visuais sensíveis.
- Keychain é geralmente usado para armazenar informações sensíveis que podem ser deixadas ao revender o telefone.
- Em resumo, apenas verifique informações sensíveis salvas pelo aplicativo no sistema de arquivos.
Teclados
- O aplicativo permite o uso de teclados personalizados?
- Verifique se informações sensíveis estão salvas nos arquivos de cache de teclados.
Logs
- Verifique se informações sensíveis estão sendo registradas.
Backups
- Backups podem ser usados para acessar informações sensíveis salvas no sistema de arquivos (verifique o ponto inicial desta lista de verificação).
- Além disso, backups podem ser usados para modificar algumas configurações do aplicativo, depois restaurar o backup no telefone, e como a configuração modificada é carregada, algumas (segurança) funcionalidades podem ser contornadas.
Memória de Aplicações
- Verifique informações sensíveis dentro da memória do aplicativo.
Criptografia Quebrada
- Verifique se você pode encontrar senhas usadas para criptografia.
- Verifique o uso de algoritmos obsoletos/fracos para enviar/armazenar dados sensíveis.
- Interceptar e monitorar funções de criptografia.
Autenticação Local
- Se uma autenticação local é usada no aplicativo, você deve verificar como a autenticação está funcionando.
- Se estiver usando o Local Authentication Framework, pode ser facilmente contornada.
- Se estiver usando uma função que pode ser contornada dinamicamente, você pode criar um script frida personalizado.
Exposição de Funcionalidade Sensível Através de IPC
- Manipuladores de URI personalizados / Deeplinks / Esquemas personalizados.
- Verifique se o aplicativo está registrando algum protocolo/esquema.
- Verifique se o aplicativo está registrando para usar algum protocolo/esquema.
- Verifique se o aplicativo espera receber qualquer tipo de informação sensível do esquema personalizado que pode ser interceptada por outro aplicativo registrando o mesmo esquema.
- Verifique se o aplicativo não está verificando e sanitizando a entrada do usuário via esquema personalizado e se alguma vulnerabilidade pode ser explorada.
- Verifique se o aplicativo expondo alguma ação sensível que pode ser chamada de qualquer lugar via esquema personalizado.
- Links Universais.
- Verifique se o aplicativo está registrando algum protocolo/esquema universal.
- Verifique o arquivo
apple-app-site-association
. - Verifique se o aplicativo não está verificando e sanitizando a entrada do usuário via esquema personalizado e se alguma vulnerabilidade pode ser explorada.
- Verifique se o aplicativo expondo alguma ação sensível que pode ser chamada de qualquer lugar via esquema personalizado.
- Compartilhamento UIActivity.
- Verifique se o aplicativo pode receber UIActivities e se é possível explorar alguma vulnerabilidade com uma atividade especialmente criada.
- UIPasteboard.
- Verifique se o aplicativo está copiando algo para a área de transferência geral.
- Verifique se o aplicativo está usando os dados da área de transferência geral para algo.
- Monitore a área de transferência para ver se algum dado sensível é copiado.
- Extensões de Aplicativo.
- O aplicativo está usando alguma extensão?
- WebViews.
- Verifique que tipo de webviews estão sendo usados.
- Verifique o status de
javaScriptEnabled
,JavaScriptCanOpenWindowsAutomatically
,hasOnlySecureContent
. - Verifique se o webview pode acessar arquivos locais com o protocolo file:// (
allowFileAccessFromFileURLs
,allowUniversalAccessFromFileURLs
). - Verifique se o Javascript pode acessar métodos nativos (
JSContext
,postMessage
).
Comunicação de Rede
- Realize um MitM na comunicação e procure por vulnerabilidades na web.
- Verifique se o hostname do certificado está sendo verificado.
- Verifique/Contorne Certificate Pinning.
Diversos
- Verifique se há mecanismos de atualização/patching automático.
- Verifique se há bibliotecas de terceiros maliciosas.
{% hint style="success" %}
Aprenda e pratique AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking: 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.
Use Trickest para construir e automatizar fluxos de trabalho facilmente, impulsionados pelas ferramentas comunitárias mais avançadas do mundo.
Acesse hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}