hacktricks/mobile-pentesting/ios-pentesting-checklist.md

129 lines
11 KiB
Markdown
Raw Normal View History

# Lista de Verificação para Pentesting em iOS
2022-04-28 16:01:33 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
2023-01-01 16:19:07 +00:00
\
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e automatizar facilmente fluxos de trabalho com as ferramentas comunitárias mais avançadas do mundo.\
Acesse hoje mesmo:
2022-08-31 22:35:39 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-08-31 22:35:39 +00:00
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* 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)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
2023-06-06 18:56:34 +00:00
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
2023-06-06 18:56:34 +00:00
### Preparação
2021-05-21 17:13:19 +00:00
* [ ] Leia [**Noções Básicas do iOS**](ios-pentesting/ios-basics.md)
* [ ] Prepare seu ambiente lendo [**Ambiente de Teste do iOS**](ios-pentesting/ios-testing-environment.md)
* [ ] Leia todas as seções de [**Análise Inicial do iOS**](ios-pentesting/#initial-analysis) para aprender ações comuns para pentest em um aplicativo iOS
2021-05-21 17:13:19 +00:00
2023-06-06 18:56:34 +00:00
### Armazenamento de Dados
2021-05-21 17:13:19 +00:00
2023-06-06 18:56:34 +00:00
* [ ] [**Arquivos Plist**](ios-pentesting/#plist) podem ser usados para armazenar informações sensíveis.
* [ ] [**Core Data**](ios-pentesting/#core-data) (banco de dados SQLite) pode armazenar informações sensíveis.
* [ ] [**YapDatabases**](ios-pentesting/#yapdatabase) (banco de dados SQLite) podem armazenar informações sensíveis.
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) com configuração incorreta.
2023-06-06 18:56:34 +00:00
* [ ] [**Bancos de dados Realm**](ios-pentesting/#realm-databases) podem armazenar informações sensíveis.
* [ ] [**Bancos de dados Couchbase Lite**](ios-pentesting/#couchbase-lite-databases) podem armazenar informações sensíveis.
* [ ] [**Cookies binários**](ios-pentesting/#cookies) podem armazenar informações sensíveis.
* [ ] [**Dados em cache**](ios-pentesting/#cache) podem armazenar informações sensíveis.
* [ ] [**Snapshots automáticos**](ios-pentesting/#snapshots) podem salvar informações visuais sensíveis.
2023-06-06 18:56:34 +00:00
* [ ] [**Keychain**](ios-pentesting/#keychain) é geralmente usado para armazenar informações sensíveis que podem ser deixadas ao revender o telefone.
* [ ] Resumindo, apenas **verifique se há informações sensíveis salvas pelo aplicativo no sistema de arquivos**
2021-05-21 17:13:19 +00:00
2023-06-06 18:56:34 +00:00
### Teclados
2021-05-21 17:13:19 +00:00
* [ ] O aplicativo [**permite o uso de teclados personalizados**](ios-pentesting/#custom-keyboards-keyboard-cache)?
* [ ] Verifique se informações sensíveis são salvas nos [**arquivos de cache dos teclados**](ios-pentesting/#custom-keyboards-keyboard-cache)
2021-05-21 17:13:19 +00:00
2022-05-01 13:25:53 +00:00
### **Logs**
2021-05-21 17:13:19 +00:00
2023-06-06 18:56:34 +00:00
* [ ] Verifique se [**informações sensíveis estão sendo registradas**](ios-pentesting/#logs)
2021-05-21 17:13:19 +00:00
2022-05-01 13:25:53 +00:00
### Backups
2021-05-21 17:13:19 +00:00
* [ ] [**Backups**](ios-pentesting/#backups) podem ser usados para **acessar as informações sensíveis** salvas no sistema de arquivos (verifique o ponto inicial desta lista de verificação)
* [ ] Além disso, [**backups**](ios-pentesting/#backups) podem ser usados para **modificar algumas configurações do aplicativo**, em seguida, **restaurar** o backup no telefone e, como a **configuração modificada** é **carregada**, algumas funcionalidades (de segurança) podem ser **burladas**
### **Memória dos Aplicativos**
* [ ] Verifique se há informações sensíveis dentro da [**memória do aplicativo**](ios-pentesting/#testing-memory-for-sensitive-data)
### **Criptografia Quebrada**
* [ ] Verifique se é possível encontrar [**senhas usadas para criptografia**](ios-pentesting/#broken-cryptography)
* [ ] Verifique o uso de [**algoritmos obsoletos/fracos**](ios-pentesting/#broken-cryptography) para enviar/armazenar dados sensíveis
* [ ] [**Intercepte e monitore funções de criptografia**](ios-pentesting/#broken-cryptography)
### **Autenticação Local**
* [ ] Se uma [**autenticação local**](ios-pentesting/#local-authentication) for usada no aplicativo, verifique como a autenticação está funcionando.
* [ ] Se estiver usando o [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework), ela pode ser facilmente burlada.
* [ ] Se estiver usando uma [**função que pode ser dinamicamente burlada**](ios-pentesting/#local-authentication-using-keychain), você pode criar um script frida personalizado.
### Exposição de Funcionalidades Sensíveis por meio de IPC
* [**Manipuladores de URI personalizados / Links profundos / Esquemas personalizados**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes)
* [ ] Verificar se o aplicativo está **registrando algum protocolo/esquema**
* [ ] Verificar se o aplicativo está **registrando o uso** de algum protocolo/esquema
* [ ] Verificar se o aplicativo **espera receber algum tipo de informação sensível** do esquema personalizado que pode ser **interceptada** por outro aplicativo que registra o mesmo esquema
* [ ] Verificar se o aplicativo **não está verificando e sanitizando** a entrada do usuário por meio do esquema personalizado e se alguma **vulnerabilidade pode ser explorada**
* [ ] Verificar se o aplicativo **expõe alguma ação sensível** que pode ser chamada de qualquer lugar por meio do esquema personalizado
* [**Links Universais**](ios-pentesting/#universal-links)
* [ ] Verificar se o aplicativo está **registrando algum protocolo/esquema universal**
* [ ] Verificar o arquivo `apple-app-site-association`
* [ ] Verificar se o aplicativo **não está verificando e sanitizando** a entrada do usuário por meio do esquema personalizado e se alguma **vulnerabilidade pode ser explorada**
* [ ] Verificar se o aplicativo **expõe alguma ação sensível** que pode ser chamada de qualquer lugar por meio do esquema personalizado
* [**Compartilhamento de UIActivity**](ios-pentesting/ios-uiactivity-sharing.md)
* [ ] Verificar se o aplicativo pode receber UIActivities e se é possível explorar alguma vulnerabilidade com uma atividade especialmente criada
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md)
* [ ] Verificar se o aplicativo está **copiando algo para a área de transferência geral**
* [ ] Verificar se o aplicativo está **usando os dados da área de transferência geral para algo**
* [ ] Monitorar a área de transferência para ver se algum **dados sensíveis são copiados**
* [**Extensões de Aplicativo**](ios-pentesting/ios-app-extensions.md)
* [ ] O aplicativo está **usando alguma extensão**?
* [**WebViews**](ios-pentesting/ios-webviews.md)
* [ ] Verificar qual tipo de webviews está sendo usado
* [ ] Verificar o status de **`javaScriptEnabled`**, **`JavaScriptCanOpenWindowsAutomatically`**, **`hasOnlySecureContent`**
* [ ] Verificar se a webview pode **acessar arquivos locais** com o protocolo **file://** **(**`allowFileAccessFromFileURLs`, `allowUniversalAccessFromFileURLs`)
* [ ] Verificar se o Javascript pode acessar **métodos nativos** (`JSContext`, `postMessage`)
### Comunicação de Rede
* [ ] Realizar um [**MitM na comunicação**](ios-pentesting/#network-communication) e procurar por vulnerabilidades web.
* [ ] Verificar se o [**nome do host do certificado**](ios-pentesting/#hostname-check) é verificado
* [ ] Verificar/Burlar [**Certificate Pinning**](ios-pentesting/#certificate-pinning)
### **Diversos**
* [ ] Verificar a existência de mecanismos de [**atualização/patching automático**](ios-pentesting/#hot-patching-enforced-updateing)
* [ ] Verificar a existência de [**bibliotecas de terceiros maliciosas**](ios-pentesting/#third-parties)
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Você trabalha em uma **empresa de cibersegurança**? Gostaria de ver sua **empresa anunciada no HackTricks**? Ou gostaria de ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* 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)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** com facilidade, utilizando as ferramentas comunitárias mais avançadas do mundo.\
Acesse hoje mesmo:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}