Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
AppEnumGuard — CVE-2025-31207 : atténuation et testeur sandboxé pour les jailbreaks rootless et rootHide sur iOS 15–18.4.1. | Kitploit
Outils/GitHubGitHub/kolbicz/appenumguard
Outils DéfensifsSécurité iOSAnalyse des VulnérabilitésSécurité MobileProtection de la Vie Privée
GitHubkolbicz/appenumguard

AppEnumGuard

CVE-2025-31207 : atténuation et testeur sandboxé pour les jailbreaks rootless et rootHide sur iOS 15–18.4.1.

Voir le dépôt
5218il y a 11 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

AppEnumGuard

AppEnumGuard est un ajustement défensif contre le canal secondaire d'énumération des applications installées, suivi sous le nom de CVE-2025-31207. Il prend en charge les environnements de jailbreak rootless et rootHide conventionnels sur iOS 15.0–18.4.1. Le dépôt contient également une application de test iOS sandboxée normale qui démontre le résultat vulnérable et vérifie l'atténuation.

CVE-2025-31207

CVE-2025-31207 est une vulnérabilité de divulgation d'informations dans la logique de lancement d'applications FrontBoard d'Apple. Une application sandboxée peut soumettre des identifiants de bundle arbitraires via une fonction de lancement privée de SpringBoardServices et distinguer les applications installées des applications manquantes à l'aide de codes de retour différents. Cela peut révéler des informations privées sur les applications qu'un utilisateur a installées, notamment les applications bancaires, de messagerie, de sécurité, de sideloading et liées au jailbreak.

Apple décrit le problème comme un problème de logique qui pourrait permettre à une application d'énumérer les applications installées. Apple l'a corrigé avec des vérifications améliorées dans iOS et iPadOS 18.5. Par conséquent, les systèmes antérieurs à iOS 18.5 restent affectés au niveau du système d'exploitation.

Compatibilité

ComposantCible prise en charge
iOS15.0–18.4.1
JailbreakTout environnement de jailbreak rootless ou rootHide conventionnel
Architecture bootstrap/paquetrootless / iphoneos-arm64 ; rootHide / iphoneos-arm64e
Architecture de l'appareilarm64 et arm64e (rootless) ; arm64e (rootHide)
PaquetInstaller le paquet correspondant au bootstrap de l'appareil

La construction par défaut utilise Theos rootless conventionnel et inclut les tranches arm64 et arm64e. La variante rootHide est construite avec rootHide Theos et contient les chemins de chargeur .jbroot rootHide requis. Les deux paquets déclarent firmware (>= 15.0) et firmware (<< 18.5) : l'atténuation est inutile sur iOS 18.5 et plus récent, où Apple a corrigé CVE-2025-31207.

L'ajustement v1.1 côté SpringBoard et le testeur sandboxé ont été vérifiés ensemble sur iOS 17.3.1 build 21D61 avec l'injection désactivée pour le testeur. Le testeur a détecté la fuite avec l'ajustement supprimé et a renvoyé un résultat vert après l'installation de l'ajustement.

Comment ça fonctionne

La primitive publiée appelle la fonction privée SpringBoardServices SBSLaunchApplicationWithIdentifierAndURLAndLaunchOptions. Sur un système vulnérable, elle renvoie des erreurs différentes pour une application installée et une application manquante :

  • 9 : la cible existe, mais le lancement est refusé par la politique
  • 7 : la cible n'existe pas

AppEnumGuard 1.1 s'injecte uniquement dans SpringBoard et accroche la méthode commune de validation de confiance FBSystemService. Lorsqu'une demande de lancement non autorisée renverrait l'erreur de politique de sécurité 3 de FBSOpenApplicationErrorDomain, l'ajustement la change en erreur 4 d'application introuvable. L'API externe SpringBoardServices renvoie alors 7 pour les cibles installées et manquantes.

Le nombre d'arguments et l'encodage de type Objective-C de la méthode privée sont validés avant l'installation du hook. Si Apple modifie l'ABI, AppEnumGuard échoue ouvertement au lieu d'accrocher une méthode SpringBoard inconnue.

Changement depuis la version 1.0

La version 1.0 accrochait SpringBoardServices dans chaque application UIKit. Cela fonctionnait, mais nécessitait une injection dans chaque application protégée ; une application qui désactivait ou détectait l'injection pouvait contourner l'atténuation. La version 1.1 déplace l'application de la règle vers SpringBoard, de sorte qu'un seul hook central protège les appelants sans injecter AppEnumGuard dans leurs processus.

Téléchargements des versions

La version 1.2 peut être construite pour l'un ou l'autre bootstrap :

  • AppEnumGuard_1.2_rootless_iphoneos-arm64.deb — ajustement rootless conventionnel
  • AppEnumGuard_1.2_roothide_iphoneos-arm64e.deb — ajustement rootHide
  • AppEnumGuardTester_1.2_sandboxed.ipa — application de vérification sandboxée avec icône

Installation et vérification

  1. Installez le .deb correspondant au bootstrap rootless ou rootHide et respring.
  2. Installez l'IPA du testeur avec une signature de développeur/sideloading normale.
  3. Laissez l'injection AppEnumGuard désactivée pour AppEnum Test ; la v1.1 le protège depuis SpringBoard.
  4. Touchez l'icône WhatsApp, YouTube ou Spotify pour une application que vous savez installée.

Résultats attendus avec la cible sélectionnée installée :

ÉtatCibleManquanteRésultat du testeur
Ajustement absent97Rouge / ÉCHEC
Ajustement actif77Vert / RÉUSSITE

Le testeur signale un résultat vert lorsque l'application sélectionnée n'est pas détectable et un résultat rouge lorsqu'elle est détectable. Sélectionnez uniquement une application que vous savez installée : 7 / 7 seul ne peut pas distinguer une atténuation fonctionnelle d'une cible qui n'existe pas.

Le test sur appareil a reproduit les deux états avec l'injection du testeur désactivée : la désinstallation de l'ajustement a produit le résultat rouge 9 / 7, tandis que l'installation de la v1.1 a produit le résultat vert 7 / 7.

Construire l'ajustement

Avec Theos standard, la construction par défaut est rootless conventionnelle :

root@kitploit:~
cd Tweak
make clean package FINALPACKAGE=1

Pour rootHide, installez rootHide Theos et exécutez :

root@kitploit:~
cd Tweak
THEOS=/path/to/theos-roothide \
  make clean package FINALPACKAGE=1 THEOS_PACKAGE_SCHEME=roothide

Construire l'IPA du testeur

Le testeur est compilé avec le SDK iPhoneOS de Xcode et ne possède aucun jailbreak ni entitlement élevé :

root@kitploit:~
./scripts/build-tester-ipa.sh

L'IPA résultant est placé dans dist/. Il est signé ad-hoc afin qu'un installateur puisse le re-signer avec une identité de développement normale. Ne lui accordez pas platform-application ni com.apple.private.security.no-sandbox, car le test est spécifiquement destiné à s'exécuter depuis un sandbox d'application normal.

Portée et limites

  • Il s'agit d'une atténuation au niveau utilisateur pour la primitive SpringBoardServices publiée, et non du correctif FrontBoard complet d'Apple.
  • La version 1.1 ne nécessite pas d'injection dans les applications protégées. La désactivation de l'injection globalement ou pour SpringBoard lui-même désactivera l'atténuation.
  • L'implémentation côté serveur est confirmée sur iOS 17.3.1 build 21D61. Sur les autres versions prises en charge, l'ajustement installe son hook uniquement lorsque le sélecteur privé possède l'ABI validée au moment de l'exécution attendue.
  • Un test 7 / 7 n'est significatif que lorsque l'application cible est connue pour être installée.
  • Le testeur appelle intentionnellement une API privée non documentée et ne convient pas à une soumission sur l'App Store.

Références

  • Contenu de sécurité iOS 18.5 d'Apple
  • NVD : CVE-2025-31207
  • Preuve de concept publique originale SpringBoardServices
  • Documentation développeur rootHide

Licence

MIT

Télécharger l’outil