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

53 lines
4.4 KiB
Markdown
Raw Normal View History

# Extraindo Entitlements de um Aplicativo Compilado
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
Outras formas de apoiar o HackTricks:
2022-04-28 16:01:33 +00:00
* 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.
2022-04-28 16:01:33 +00:00
</details>
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 Entitlements e Arquivos de Provisão Móvel**
2021-05-17 19:08:47 +00:00
Ao lidar com um arquivo 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 entitlements 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".
2021-05-17 19:08:47 +00:00
Mesmo com binários criptografados, certas etapas podem ser empregadas para extrair esses arquivos. Caso essas etapas 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.
2021-05-17 19:08:47 +00:00
#### **Extraindo o Plist de Entitlements do Binário do Aplicativo**
2021-05-17 19:08:47 +00:00
Com o binário do aplicativo acessível em um computador, o **binwalk** pode ser utilizado para extrair todos os arquivos XML. O comando abaixo demonstra como fazer isso:
2021-05-17 19:08:47 +00:00
```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 silenciosamente um comando e sair, procurando todas as strings no binário do aplicativo que contêm "PropertyList":
2021-05-17 19:08:47 +00:00
```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"?>...
2021-05-17 19:08:47 +00:00
```
Ambos 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 direitos originais do Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
2021-05-17 19:08:47 +00:00
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:
2021-05-17 19:08:47 +00:00
```bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
2021-05-17 19:08:47 +00:00
```
Ajustar a bandeira `-A num, --after-context=num` permite exibir 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. As ferramentas mencionadas anteriormente também podem ser usadas 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 o grep com a bandeira `-a` no binário ou utilizar o radare2 (`izz`)/rabin2 (`-zz`) para obter resultados mais eficazes.