Extraction des droits d'accès à partir de l'application compilée

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

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 droits d'accès 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 des fichiers .entitlements ou le fichier embedded.mobileprovision. Cependant, les listes de propriétés des droits d'accès peuvent toujours être extraites du binaire de l'application, en suivant les procédures décrites dans le chapitre "Tests de sécurité de base iOS", en particulier la section "Acquisition du binaire de l'application".

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

Extraction du Plist des droits d'accès à 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 démontre comment procéder :

bash
$ 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 discrètement une commande et sortir, en recherchant toutes les chaînes dans le binaire de l'application qui contiennent "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"?>...

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

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

bash
$ 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 viable même pour les binaires d'applications cryptées et a été vérifiée contre 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.

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

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks