hacktricks/mobile-pentesting/ios-pentesting/extracting-entitlements-from-compiled-application.md

68 lines
5.4 KiB
Markdown

# Extraindo Direitos de Aplicação Compilada
{% 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 %}
Resumo da página [https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary](https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary)
### **Extraindo Direitos e Arquivos de Provisão Móvel**
Ao lidar com o IPA de um aplicativo ou um aplicativo instalado em um dispositivo com jailbreak, pode não ser possível encontrar arquivos `.entitlements` ou o arquivo `embedded.mobileprovision` diretamente. No entanto, listas de propriedades de direitos ainda podem ser extraídas do binário do aplicativo, seguindo os procedimentos descritos no capítulo "Teste de Segurança Básica do iOS", particularmente na seção "Adquirindo o Binário do Aplicativo".
Mesmo com binários criptografados, certos passos podem ser empregados para extrair esses arquivos. Caso esses passos falhem, ferramentas como Clutch (se compatível com a versão do iOS), frida-ios-dump ou utilitários similares podem ser necessários para descriptografar e extrair o aplicativo.
#### **Extraindo o Plist de Direitos do Binário do Aplicativo**
Com o binário do aplicativo acessível em um computador, **binwalk** pode ser utilizado para extrair todos os arquivos XML. O comando abaixo demonstra como fazer isso:
```bash
$ binwalk -e -y=xml ./Telegram\ X
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
```
Alternativamente, **radare2** pode ser usado para executar um comando silenciosamente e sair, procurando por todas as strings no binário do aplicativo que contêm "PropertyList":
```bash
$ r2 -qc 'izz~PropertyList' ./Telegram\ X
0x0015d2a4 ascii <?xml version="1.0" encoding="UTF-8" standalone="yes"?>...
0x0016427d ascii H<?xml version="1.0" encoding="UTF-8"?>...
```
Ambos os métodos, binwalk e radare2, permitem a extração de arquivos `plist`, com uma inspeção do primeiro (0x0015d2a4) revelando uma recuperação bem-sucedida do [arquivo de permissões original do Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
Para binários de aplicativos acessados em dispositivos com jailbreak (por exemplo, via SSH), o comando **grep** com a flag `-a, --text` pode ser usado para tratar todos os arquivos como texto ASCII:
```bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
```
Ajustar a flag `-A num, --after-context=num` permite a exibição de mais ou menos linhas. Este método é viável mesmo para binários de aplicativos criptografados e foi verificado em vários aplicativos da App Store. Ferramentas mencionadas anteriormente também podem ser empregadas em dispositivos iOS com jailbreak para fins semelhantes.
**Nota**: O uso direto do comando `strings` não é recomendado para esta tarefa devido às suas limitações em encontrar informações relevantes. Em vez disso, é aconselhável empregar grep com a flag `-a` no binário ou utilizar radare2 (`izz`)/rabin2 (`-zz`) para resultados mais eficazes.
{% hint style="success" %}
Learn & practice 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">\
Learn & practice 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>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}