iOS Extracting Entitlements From Compiled Application

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks:

Résumé de la page https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary

Extraction des autorisations et des fichiers de provisionnement mobile

Lorsqu'il s'agit d'un IPA d'application ou d'une application installée sur un appareil jailbreaké, il peut ne pas être possible de trouver directement les fichiers .entitlements ou le fichier embedded.mobileprovision. Cependant, les listes de propriétés des autorisations peuvent toujours être extraites du binaire de l'application, en suivant les procédures décrites dans le chapitre "Test de sécurité de base sur iOS", en particulier la section "Acquisition du binaire de l'application".

Même avec des binaires chiffrés, certaines étapes peuvent être utilisées pour extraire ces fichiers. Si ces étapes échouent, des outils tels que Clutch (si compatible avec la version iOS), frida-ios-dump, ou des utilitaires similaires peuvent être nécessaires pour décrypter et extraire l'application.

Extraction de la liste des autorisations à partir du binaire de l'application

Avec le binaire de l'application accessible sur un ordinateur, binwalk peut être utilisé pour extraire tous les fichiers XML. La commande ci-dessous montre comment le faire:

$ binwalk -e -y=xml ./Telegram\ X

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
1430180       0x15D2A4        XML document, version: "1.0"
1458814       0x16427E        XML document, version: "1.0"

Alternativement, radare2 peut être utilisé pour exécuter silencieusement une commande et quitter, en recherchant toutes les chaînes dans le binaire de l'application contenant "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"?>...

Les deux méthodes, binwalk et radare2, permettent l'extraction des fichiers plist, avec une inspection du premier (0x0015d2a4) révélant une récupération réussie du fichier d'entitlements original de Telegram.

Pour les binaires d'application accessibles sur des appareils jailbreakés (par exemple, via SSH), la commande grep avec l'indicateur -a, --text peut être utilisée pour traiter tous les fichiers comme du texte ASCII:

$ grep -a -A 5 'PropertyList' /var/containers/Bundle/Application/...

Ajuster le drapeau -A num, --after-context=num permet d'afficher plus ou moins de lignes. Cette méthode est même applicable aux binaires d'applications chiffrées et a été vérifiée sur plusieurs applications de l'App Store. Les outils mentionnés précédemment peuvent également être utilisés sur des appareils iOS jailbreakés à des fins similaires.

Remarque : L'utilisation directe de la commande strings n'est pas recommandée pour cette tâche en raison de ses limitations dans la recherche d'informations pertinentes. Au lieu de cela, l'utilisation de grep avec le drapeau -a sur le binaire ou l'utilisation de radare2 (izz)/rabin2 (-zz) est conseillée pour des résultats plus efficaces.

Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)!

Autres façons de soutenir HackTricks :

Dernière mise à jour