hacktricks/mobile-pentesting/ios-pentesting/extracting-entitlements-from-compiled-application.md
2024-02-10 13:03:23 +00:00

66 lines
5.5 KiB
Markdown

# Estrarre i diritti da un'applicazione compilata
<details>
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT esclusivi**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
Sommario della pagina [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)
### **Estrazione dei diritti e dei file di provisioning mobile**
Quando si tratta di un'app IPA o di un'app installata su un dispositivo jailbroken, potrebbe non essere possibile trovare direttamente i file `.entitlements` o il file `embedded.mobileprovision`. Tuttavia, è comunque possibile estrarre le liste di diritti dai file binari dell'app, seguendo le procedure descritte nel capitolo "iOS Basic Security Testing", in particolare nella sezione "Acquisizione del file binario dell'app".
Anche con i binari crittografati, è possibile utilizzare determinati passaggi per estrarre questi file. Se questi passaggi falliscono, potrebbero essere necessari strumenti come Clutch (se compatibile con la versione di iOS), frida-ios-dump o utility simili per decrittare ed estrarre l'app.
#### **Estrazione del file Entitlements Plist dal file binario dell'app**
Con il file binario dell'app accessibile su un computer, è possibile utilizzare **binwalk** per estrarre tutti i file XML. Il comando di seguito mostra come fare:
```bash
$ binwalk -e -y=xml ./Telegram\ X
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
1430180 0x15D2A4 XML document, version: "1.0"
1458814 0x16427E XML document, version: "1.0"
```
In alternativa, **radare2** può essere utilizzato per eseguire silenziosamente un comando ed uscire, cercando tutte le stringhe nel file binario dell'app che contengono "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"?>...
```
Entrambi i metodi, binwalk e radare2, consentono l'estrazione dei file `plist`, con un'ispezione del primo (0x0015d2a4) che rivela un recupero riuscito del [file di entitlements originale da Telegram](https://github.com/peter-iakovlev/Telegram-iOS/blob/77ee5c4dabdd6eb5f1e2ff76219edf7e18b45c00/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements).
Per i binari delle app accessibili su dispositivi jailbroken (ad esempio, tramite SSH), il comando **grep** con l'opzione `-a, --text` può essere utilizzato per trattare tutti i file come testo ASCII:
```bash
$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...
```
L'aggiustamento del flag `-A num, --after-context=num` consente di visualizzare più o meno righe. Questo metodo è valido anche per i file binari delle app crittografate ed è stato verificato su diverse app dell'App Store. Gli strumenti menzionati in precedenza possono anche essere utilizzati su dispositivi iOS jailbroken per scopi simili.
**Nota**: Non è consigliabile utilizzare direttamente il comando `strings` per questa operazione a causa delle sue limitazioni nel trovare informazioni rilevanti. Invece, è consigliabile utilizzare grep con il flag `-a` sul binario o utilizzare radare2 (`izz`)/rabin2 (`-zz`) per ottenere risultati più efficaci.
<details>
<summary><strong>Impara l'hacking di AWS da zero a esperto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Altri modi per supportare HackTricks:
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF**, controlla i [**PACCHETTI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai repository GitHub di** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>