mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-23 19:43:31 +00:00
136 lines
9.8 KiB
Markdown
136 lines
9.8 KiB
Markdown
|
# iOS Pentesting Checklist
|
||
|
|
||
|
<figure><img src="../.gitbook/assets/image (48).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** 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:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
|
Aprenda e pratique GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary>Support HackTricks</summary>
|
||
|
|
||
|
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
|
||
|
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Compartilhe 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.
|
||
|
|
||
|
</details>
|
||
|
{% endhint %}
|
||
|
|
||
|
### Preparação
|
||
|
|
||
|
* [ ] Leia [**iOS Basics**](ios-pentesting/ios-basics.md)
|
||
|
* [ ] Prepare seu ambiente lendo [**iOS Testing Environment**](ios-pentesting/ios-testing-environment.md)
|
||
|
* [ ] Leia todas as seções de [**iOS Initial Analysis**](ios-pentesting/#initial-analysis) para aprender ações comuns para pentest de um aplicativo iOS
|
||
|
|
||
|
### Armazenamento de Dados
|
||
|
|
||
|
* [ ] [**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) pode armazenar informações sensíveis.
|
||
|
* [ ] [**Firebase**](ios-pentesting/#firebase-real-time-databases) configuração incorreta.
|
||
|
* [ ] [**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 de cache**](ios-pentesting/#cache) podem armazenar informações sensíveis.
|
||
|
* [ ] [**Snapshots automáticos**](ios-pentesting/#snapshots) podem salvar informações visuais sensíveis.
|
||
|
* [ ] [**Keychain**](ios-pentesting/#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**](ios-pentesting/#custom-keyboards-keyboard-cache)?
|
||
|
* [ ] Verifique se informações sensíveis estão salvas nos [**arquivos de cache de teclados**](ios-pentesting/#custom-keyboards-keyboard-cache).
|
||
|
|
||
|
### **Logs**
|
||
|
|
||
|
* [ ] Verifique se [**informações sensíveis estão sendo registradas**](ios-pentesting/#logs).
|
||
|
|
||
|
### Backups
|
||
|
|
||
|
* [ ] [**Backups**](ios-pentesting/#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**](ios-pentesting/#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**](ios-pentesting/#testing-memory-for-sensitive-data).
|
||
|
|
||
|
### **Criptografia Quebrada**
|
||
|
|
||
|
* [ ] Verifique se você pode 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.
|
||
|
* [ ] [**Interceptar e monitorar funções de criptografia**](ios-pentesting/#broken-cryptography).
|
||
|
|
||
|
### **Autenticação Local**
|
||
|
|
||
|
* [ ] Se uma [**autenticação local**](ios-pentesting/#local-authentication) é usada no aplicativo, você deve verificar como a autenticação está funcionando.
|
||
|
* [ ] Se estiver usando o [**Local Authentication Framework**](ios-pentesting/#local-authentication-framework), pode ser facilmente contornada.
|
||
|
* [ ] Se estiver usando uma [**função que pode ser contornada dinamicamente**](ios-pentesting/#local-authentication-using-keychain), você pode criar um script frida personalizado.
|
||
|
|
||
|
### Exposição de Funcionalidade Sensível Através de IPC
|
||
|
|
||
|
* [**Manipuladores de URI personalizados / Deeplinks / Esquemas personalizados**](ios-pentesting/#custom-uri-handlers-deeplinks-custom-schemes).
|
||
|
* [ ] 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**](ios-pentesting/#universal-links).
|
||
|
* [ ] 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**](ios-pentesting/ios-uiactivity-sharing.md).
|
||
|
* [ ] Verifique se o aplicativo pode receber UIActivities e se é possível explorar alguma vulnerabilidade com uma atividade especialmente criada.
|
||
|
* [**UIPasteboard**](ios-pentesting/ios-uipasteboard.md).
|
||
|
* [ ] 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**](ios-pentesting/ios-app-extensions.md).
|
||
|
* [ ] O aplicativo **está usando alguma extensão**?
|
||
|
* [**WebViews**](ios-pentesting/ios-webviews.md).
|
||
|
* [ ] 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**](ios-pentesting/#network-communication) e procure por vulnerabilidades na web.
|
||
|
* [ ] Verifique se o [**hostname do certificado**](ios-pentesting/#hostname-check) está sendo verificado.
|
||
|
* [ ] Verifique/Contorne [**Certificate Pinning**](ios-pentesting/#certificate-pinning).
|
||
|
|
||
|
### **Diversos**
|
||
|
|
||
|
* [ ] Verifique se há mecanismos de [**atualização/patching automático**](ios-pentesting/#hot-patching-enforced-updateing).
|
||
|
* [ ] Verifique se há [**bibliotecas de terceiros maliciosas**](ios-pentesting/#third-parties).
|
||
|
|
||
|
{% hint style="success" %}
|
||
|
Aprenda e pratique AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
|
Aprenda e pratique GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary>Support HackTricks</summary>
|
||
|
|
||
|
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
|
||
|
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Compartilhe 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.
|
||
|
|
||
|
</details>
|
||
|
{% endhint %}
|
||
|
|
||
|
<figure><img src="../.gitbook/assets/image (48).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** 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" %}
|