CheatSheet

Objectif : Présenter les différents outils et commandes associées, afin de réaliser votre TI IOS.

STRG_01 : Données stockées localement

Fichier.plist

Pour afficher le contenu d'un .plist file :

objection -g <identifiant-app> explore
ios plist cat filename.plist # Permet d'afficher les fichiers .plist

Les chemins de fichier .plist pouvant potentiellement stocker des données sensibles.

/var/mobile/Containers/Data/Application/<UUID>/Documents #userInfo.plist
/var/mobile/Containers/Data/Application/app_name/Library/Preferences #NSUserDefaults
/Info.plist # Info.plist Ă  la racine de l'IPA.

NSUserDefault

objection -g <identifiant-app> explore
ios nsuserdefaults get

NSURLCredentialStorage

objection -g <identifiant-app> explore
ios nsurlcredentialstorage dump

KeyChain

CoreData

Voici le chemin d'accès usuel du fichier contenant les CoreData

Si aucune db sqlite n'est présente, connectez-vous en ssh et faite ceci :

Pour afficher le contenu du fichier .sqlite, objection intègre une feature qui permet de le faire.

Cache de l'application

Realm database

Le chemin des DB Realm est le suivant :

Pour ouvrir le fichier, installez Realm Studio

Cookies

Couchbase Lite Database

TO DO

Yap Database

TO DO

Lorsque vous testez cette partie, n'oubliez pas de naviguer dans les répertoires bundle et data de l'application. Vous pouvez réaliser ceci en utilisant objection et en navigant dans chaque répertoire :

  • Documents/

  • Library/

  • Library/Caches/

  • tmp/

STRG_02 : Informations dans le système de journalisation

Installer libimobiledevice afin d'accéder au log de l'application en temps réel.

Si pendant l'installation vous avez une erreur, elle est du au package libimobiledevice-glue. Installez libimobiledevice-glue.

La commande pour consulter en temps réel les logs est la suivante :

STRG_03 : Données dans les fichiers sauvegardes

Pour vérifier ce point de test, il y a deux méthodes :

Version Linux/Windows:

Utilisez premièrement l'outil idevice_id pour identifier votre appareil

Ensuite créez une backup complète de votre ipad/iphone à l'aide de l'outil idevicebackup2

Vous devez désormais télécharger le logiciel iExplorer sur votre hôte Windows. Ce logiciel dispose d'une version gratuite : https://macroplant.com/iexplorer

Une fois cela fait, récupérez votre fichier de backup précedemment générer et place dans le dossier suivant :

Il vous suffit désormais d'ouvrir le logiciel iExplorer et d'analyser si des fichiers sensibles sont stockés dans la backup.

Version MacOS :

Si vous disposez d'un mac, faites une sauvegarde avec itunes et naviguez sur cette sauvegarde.

STRG_04 : Données persistantes dans la Keychain

Pour verifier ce point, utilisez la commande suivante pour dump la Keychain :

Désinstallez et réinstaller l'application et relancer les commandes précedentes afin de comparer le contenu de la KeyChain avec celle précedement dumper.

CACH_01 : Cache du clavier

Pour obtenir le cache du clavier :

Si aucun fichier dynamic-text.dat n'existe naviguez dans l'arborescence pour y trouver des fichiers .dat.

Une fois le fichier téléchargé, éxécuter la commande suivante :

CACH_02 : Presse-papier

Pour auditer cette vulnérabilité, lancez la commande suivante :

et réaliser une action "COPIER" sur un champs sensible.

PRIVA_01 : Exposition de données via l’UI

PRIVA_02 : Confidentialité lors de la mise en arrière-plan

Les screenshot peuvent être stocké :

  • var/mobile/Containers/Data/Application/UUID/Library/Caches/Snapshots/

  • var/mobile/Containers/Data/Application/UUID/Library/SplashBoard/Snapshots

PLATFORM_01 : Permissions demandées par l’application

Vous pouvez identifier les permissions demandées par l'application en utilisant MobSF.

PLATFORM_02 : Schémas d’URLs

Vous pouvez identifier les schémas d'URL de l'application en utilisant MobSF ou bien en consultant le fichier Info.plist situé à la racine de l'IPA.

PRO TIPS :

PLATFORM_03 : Domaines utilisés par l’application

Utilsez l'outils MobSF pour réaliser un "domain malware check" :

WEB_01 : Configuration non sécurisée des Webviews

La webview UIWebView est un type de Webview déprécié qui ne doit pas être utilisé.

Ainsi pour détecter le type de WebViews et leurs configuration, utilisez le script frida suivant :

Last updated