iOS Basic Testing Operations
Résumé de l'identification et de l'accès aux appareils iOS
Identification de l'UDID d'un appareil iOS
Pour identifier de manière unique un appareil iOS, une séquence de 40 chiffres appelée UDID est utilisée. Sur macOS Catalina ou ultérieur, cela peut être trouvé dans l'application Finder, car iTunes n'est plus présent. L'appareil, une fois connecté via USB et sélectionné dans Finder, révèle son UDID parmi d'autres informations lorsque les détails sous son nom sont cliqués.
Pour les versions de macOS antérieures à Catalina, iTunes facilite la découverte de l'UDID. Des instructions détaillées peuvent être trouvées ici.
Les outils en ligne de commande offrent des méthodes alternatives pour récupérer l'UDID :
En utilisant l'outil I/O Registry Explorer
ioreg
:
Utilisation de
ideviceinstaller
pour macOS (et Linux) :
Utilisation de
system_profiler
:
Utilisation de
instruments
pour répertorier les appareils :
Accès au Shell du Dispositif
L'accès SSH est activé en installant le paquet OpenSSH après le jailbreak, permettant des connexions via ssh root@<adresse_ip_du_dispositif>
. Il est crucial de changer les mots de passe par défaut (alpine
) pour les utilisateurs root
et mobile
afin de sécuriser le dispositif.
SSH via USB devient nécessaire en l'absence de Wi-Fi, en utilisant iproxy
pour mapper les ports du dispositif pour les connexions SSH. Cette configuration permet l'accès SSH via USB en exécutant :
Applications de shell sur l'appareil, comme NewTerm 2, facilitent l'interaction directe avec l'appareil, particulièrement utile pour le dépannage. Les coquilles SSH inversées peuvent également être établies pour un accès à distance depuis l'ordinateur hôte.
Réinitialisation des mots de passe oubliés
Pour réinitialiser un mot de passe oublié au mot de passe par défaut (alpine
), il est nécessaire de modifier le fichier /private/etc/master.passwd
. Cela implique de remplacer le hachage existant par le hachage pour alpine
à côté des entrées des utilisateurs root
et mobile
.
Techniques de transfert de données
Transfert de fichiers de données d'application
Archivage et Récupération via SSH et SCP: Il est simple d'archiver le répertoire de données de l'application en utilisant tar
puis de le transférer en utilisant scp
. La commande ci-dessous archive le répertoire de données dans un fichier .tgz, qui est ensuite extrait de l'appareil:
Outils d'Interface Utilisateur Graphique
Utilisation de iFunbox et iExplorer: Ces outils GUI sont utiles pour gérer les fichiers sur les appareils iOS. Cependant, à partir d'iOS 8.4, Apple a restreint l'accès de ces outils au bac à sable de l'application sauf si le périphérique est jailbreaké.
Utilisation d'Objection pour la Gestion de Fichiers
Shell Interactif avec Objection: Le lancement d'objection fournit un accès au répertoire Bundle d'une application. À partir de là, vous pouvez naviguer jusqu'au répertoire Documents de l'application et gérer les fichiers, y compris les télécharger et les téléverser vers et depuis l'appareil iOS.
Obtention et Extraction des Applications
Acquisition du Fichier IPA
Lien de Distribution Over-The-Air (OTA) : Les applications distribuées pour les tests via OTA peuvent être téléchargées en utilisant l'outil de téléchargement d'actifs des services ITMS, qui est installé via npm et utilisé pour sauvegarder le fichier IPA localement.
Extraction du binaire de l'application
À partir d'un IPA : Décompressez l'IPA pour accéder au binaire de l'application déchiffré.
À partir d'un appareil jailbreaké : Installez l'application et extrayez le binaire déchiffré de la mémoire.
Processus de déchiffrement
Aperçu du déchiffrement manuel : Les binaires des applications iOS sont chiffrés par Apple en utilisant FairPlay. Pour les rétroconcevoir, il est nécessaire de récupérer le binaire déchiffré de la mémoire. Le processus de déchiffrement implique de vérifier le drapeau PIE, d'ajuster les drapeaux de mémoire, d'identifier la section chiffrée, puis de la récupérer et de la remplacer par sa forme déchiffrée.
Vérification et modification du drapeau PIE :
Identifier la section chiffrée et le vidage de mémoire :
Déterminez les adresses de début et de fin de la section chiffrée en utilisant otool
et effectuez le vidage de mémoire depuis l'appareil jailbreaké en utilisant gdb.
Remplacement de la section chiffrée :
Remplacez la section chiffrée dans le binaire de l'application d'origine par le dump déchiffré.
Finalisation du Déchiffrement : Modifier les métadonnées du binaire pour indiquer l'absence de chiffrement en utilisant des outils comme MachOView, en définissant cryptid
sur 0.
Déchiffrement (Automatique)
frida-ios-dump
L'outil frida-ios-dump est utilisé pour déchiffrer et extraire automatiquement des applications des appareils iOS. Initialement, il faut configurer dump.py
pour se connecter à l'appareil iOS, ce qui peut être fait via localhost sur le port 2222 via iproxy ou directement via l'adresse IP et le port de l'appareil.
Les applications installées sur l'appareil peuvent être répertoriées avec la commande :
Pour extraire une application spécifique, telle que Telegram, la commande suivante est utilisée :
Ce commandement initie le vidage de l'application, ce qui entraîne la création d'un fichier Telegram.ipa
dans le répertoire actuel. Ce processus est adapté aux appareils jailbreakés, car les applications non signées ou faussement signées peuvent être réinstallées à l'aide d'outils tels que ios-deploy.
flexdecrypt
L'outil flexdecrypt, avec son wrapper flexdump, permet l'extraction de fichiers IPA à partir d'applications installées. Les commandes d'installation pour flexdecrypt sur l'appareil comprennent le téléchargement et l'installation du package .deb
. flexdump peut être utilisé pour répertorier et vider les applications, comme indiqué dans les commandes ci-dessous:
bagbak
bagbak, un autre outil basé sur Frida, nécessite un appareil jailbreaké pour le décryptage de l'application:
r2flutch
r2flutch, utilisant à la fois radare et frida, sert à la décryption et au dumping d'applications. Plus d'informations peuvent être trouvées sur sa page GitHub.
Installation des Applications
Sideloading fait référence à l'installation d'applications en dehors de l'App Store officiel. Ce processus est géré par le démon installd et nécessite que les applications soient signées avec un certificat délivré par Apple. Les appareils jailbreakés peuvent contourner cela grâce à AppSync, permettant l'installation de packages IPA signés de manière frauduleuse.
Outils de Sideloading
Cydia Impactor : Un outil pour signer et installer des fichiers IPA sur iOS et des fichiers APK sur Android. Des guides et des solutions de dépannage peuvent être trouvés sur yalujailbreak.net.
libimobiledevice : Une bibliothèque pour Linux et macOS pour communiquer avec les appareils iOS. Des commandes d'installation et des exemples d'utilisation pour ideviceinstaller sont fournis pour installer des applications via USB.
ipainstaller : Cet outil en ligne de commande permet l'installation directe d'applications sur des appareils iOS.
ios-deploy : Pour les utilisateurs de macOS, ios-deploy installe des applications iOS depuis la ligne de commande. Le dézippage de l'IPA et l'utilisation du drapeau
-m
pour le lancement direct de l'application font partie du processus.Xcode : Utilisez Xcode pour installer des applications en naviguant vers Window/Devices and Simulators et en ajoutant l'application à Installed Apps.
Autoriser l'Installation d'Applications sur des Appareils Non-iPad
Pour installer des applications spécifiques à l'iPad sur des appareils iPhone ou iPod touch, la valeur UIDeviceFamily dans le fichier Info.plist doit être modifiée en 1. Cette modification nécessite cependant de resigner le fichier IPA en raison des vérifications de validation de signature.
Remarque : Cette méthode peut échouer si l'application exige des fonctionnalités exclusives aux nouveaux modèles d'iPad tout en utilisant un ancien iPhone ou iPod touch.
Références
Last updated