Communitygithub.com

Analyse de la sécurité des applications iOS avec Objection

Effectuer une évaluation de sécurité runtime des applications iOS dans le cadre de tests d'intrusion autorisés, en inspectant le keychain, le système de fichiers et la mémoire, et en contournant les contrôles de sécurité côté client.

Qu'est-ce que Analyse de la sécurité des applications iOS avec Objection ?

Cette compétence fournit un flux de travail structuré pour analyser la sécurité des applications iOS à l'aide d'Objection, un outil d'exploration mobile runtime basé sur Frida. Elle guide l'utilisateur à travers les étapes de préparation de l'environnement (appareils jailbreakés ou non jailbreakés), d'attachement à l'application cible, et d'évaluation des contrôles de sécurité couvrant les catégories OWASP MASVS : stockage de données, sécurité réseau, authentification/ autorisation, résilience binaire et interaction plateforme. Les utilisateurs peuvent ainsi inspecter le keychain, désactiver le SSL pinning, surveiller les appels de méthodes, et rechercher des données sensibles en mémoire. L'assistant précise les prérequis (Python, Frida, Objection) et met en garde contre des pièges courants tels que les plantages d'application, la portée du keychain et le mangling des noms Swift. Cette compétence est conçue pour les testeurs d'intrusion, les développeurs spécialisés en sécurité mobile, et les utilisateurs d'agents IA comme Claude Code, Cursor ou Codex, qui ont besoin d'automatiser ou de structurer des tests de sécurité iOS.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-ios-app-security-with-objection

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Analyse de la sécurité des applications iOS avec Objection ?

Quand utiliser cette compétence

Utilisez cette compétence lorsque :

  • Vous effectuez une évaluation de sécurité runtime d'applications iOS lors de tests d'intrusion autorisés
  • Vous inspectez le keychain iOS, le système de fichiers et la mémoire pour détecter une exposition de données sensibles
  • Vous contournez les contrôles de sécurité côté client (SSL pinning, détection de jailbreak) lors de tests de sécurité
  • Vous évaluez le comportement d'une application iOS au runtime sans accès au code source

N'utilisez pas cette compétence sur des appareils de production sans autorisation explicite -- Objection modifie le comportement runtime de l'application et peut déclencher la surveillance de sécurité.

Prérequis

  • Python 3.10+ avec pip
  • Objection installé : pip install objection
  • Frida installé : pip install frida-tools
  • Appareil iOS cible (jailbreaké avec le serveur Frida, ou non jailbreaké avec un IPA reconditionné)
  • Pour les appareils non jailbreakés : objection patchipa pour injecter le gadget Frida dans l'IPA
  • macOS recommandé pour les tests iOS (Xcode, ideviceinstaller)
  • Connexion USB à l'appareil cible ou serveur Frida réseau

Flux de travail

Étape 1 : Préparer l'environnement de test

Pour les appareils jailbreakés :

# Installer le serveur Frida sur l'appareil via Cydia/Sileo
# SSH sur l'appareil et démarrer le serveur Frida
ssh root@<device_ip> "/usr/sbin/frida-server -D"

# Vérifier la connectivité Frida
frida-ps -U  # Lister les processus sur l'appareil connecté en USB

Pour les appareils non jailbreakés (tests autorisés) :

# Patcher l'IPA avec le gadget Frida
objection patchipa --source target.ipa --codesign-signature "Apple Development: [email protected]"

# Installer l'IPA patché
ideviceinstaller -i target-patched.ipa

Étape 2 : Attacher Objection à l'application cible

# Attacher à une application en cours d'exécution par bundle ID
objection --gadget "com.target.app" explore

# Ou lancer l'application fraîchement
objection --gadget "com.target.app" explore --startup-command "ios hooking list classes"

Une fois attaché, Objection fournit un REPL interactif pour l'exploration runtime.

Étape 3 : Évaluer la sécurité du stockage de données (MASVS-STORAGE)

# Vider les éléments du keychain iOS accessibles à l'application
ios keychain dump

# Lister les fichiers dans le bac à sable de l'application
ios plist cat Info.plist
env  # Afficher les chemins d'environnement de l'application

# Inspecter NSUserDefaults pour détecter des données sensibles
ios nsuserdefaults get

# Lister les bases de données SQLite
sqlite connect app_data.db
sqlite execute query "SELECT * FROM credentials"

# Vérifier les données sensibles dans le presse-papiers
ios pasteboard monitor

Étape 4 : Évaluer la sécurité réseau (MASVS-NETWORK)

# Désactiver l'épinglage de certificat SSL/TLS
ios sslpinning disable

# Vérifier que l'épinglage est contourné en observant le trafic dans le proxy Burp Suite
# Surveiller les appels de méthodes des classes réseau
ios hooking watch class NSURLSession
ios hooking watch class NSURLConnection

Étape 5 : Inspecter l'authentification et l'autorisation (MASVS-AUTH)

# Lister toutes les classes Objective-C
ios hooking list classes

# Rechercher des classes liées à l'authentification
ios hooking search classes Auth
ios hooking search classes Login
ios hooking search classes Token

# Hooker les méthodes d'authentification pour observer les paramètres
ios hooking watch method "+[AuthManager validateToken:]" --dump-args --dump-return

# Surveiller les appels d'authentification biométrique
ios hooking watch class LAContext

Étape 6 : Évaluer les protections binaires (MASVS-RESILIENCE)

# Vérifier l'implémentation de la détection de jailbreak
ios jailbreak disable

# Simuler le contournement de la détection de jailbreak
ios jailbreak simulate

# Lister les frameworks et bibliothèques chargés
memory list modules

# Rechercher en mémoire des chaînes sensibles
memory search "password" --string
memory search "api_key" --string
memory search "Bearer" --string

# Vider des régions mémoire spécifiques
memory dump all dump_output/

Étape 7 : Examiner l'interaction avec la plateforme (MASVS-PLATFORM)

# Lister les schémas d'URL enregistrés par l'application
ios info binary
ios bundles list_frameworks

# Hooker les gestionnaires de schémas d'URL
ios hooking watch method "-[AppDelegate application:openURL:options:]" --dump-args

# Surveiller l'accès au presse-papiers
ios pasteboard monitor

# Vérifier les restrictions de clavier personnalisées
ios hooking search classes UITextField

Concepts clés

TermeDéfinition
ObjectionToolkit d'exploration mobile runtime basé sur Frida, fournissant des scripts pré-construits pour les tâches courantes de test de sécurité
Frida GadgetBibliothèque partagée injectée dans le processus de l'application pour permettre l'instrumentation Frida sans jailbreak
KeychainSystème de stockage sécurisé des identifiants iOS ; Objection peut vider les éléments accessibles au groupe d'accès au keychain de l'application cible
Contournement SSL PinningModification runtime de la logique de validation des certificats pour permettre l'interception du trafic HTTPS via un proxy
Hooking de méthodeInterception des appels de méthodes Objective-C/Swift au runtime pour observer les arguments, les valeurs de retour et modifier le comportement

Outils et systèmes

  • Objection : Toolkit d'exploration de sécurité mobile de haut niveau basé sur Frida, avec des commandes pré-construites
  • Frida : Framework d'instrumentation dynamique permettant l'injection de JavaScript dans les processus natifs des applications
  • Frida-tools : Utilitaires en ligne de commande pour Frida, incluant frida-ps, frida-trace et frida-discover
  • ideviceinstaller : Outil multiplateforme pour installer/gérer les applications iOS via USB
  • Burp Suite : Proxy HTTP pour intercepter le trafic après le contournement du SSL pinning

Pièges courants

  • Plantage de l'application lors de l'attache : Certaines applications implémentent une détection de Frida. Utilisez --startup-command pour hooker les vérifications anti-Frida tôt dans le cycle de vie de l'application.
  • Portée d'accès au keychain : Objection ne peut vider que les éléments du keychain appartenant au groupe d'accès de l'application. Les éléments système nécessitent des outils de niveau jailbreak distincts.
  • Mangling des noms Swift : Les noms de méthodes Swift sont manglés dans le runtime. Utilisez ios hooking list classes avec grep pour trouver les noms dé-manglés.
  • Modifications non persistantes : Toutes les modifications Objection sont limitées au runtime et réinitialisées au redémarrage de l'application. Documentez immédiatement vos découvertes.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Skills associés