iOS Extracting Entitlements From Compiled Application

Impara l'hacking di AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Sommario della pagina 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:

$ 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":

$ 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.

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:

$ 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.

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated