Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
Debuggable-App-Exploit — CVE-2024-31317 Exploit d'application débogable | Kitploit
Outils/GitHubGitHub/cleov2/debuggable-app-exploit
Sécurité AndroidAnalyse des VulnérabilitésExploitationFuzzingSécurité MobileApprentissage et ÉducationDéveloppement de Charges UtilesExploitation de Binaires
GitHubcleov2/debuggable-app-exploit

Debuggable-App-Exploit

CVE-2024-31317 Exploit d'application débogable

Voir le dépôt
1239il y a 7 moisPas 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

CVE-2024-31317 Exploit d'application débogable

Un exploit basé sur Python pour CVE-2024-31317 (injection Zygote Android) qui rend toute application Android installée débogable en injectant des arguments zygote malveillants via le paramètre hidden_api_blacklist_exemptions. Inclut une injection optionnelle du gadget Frida pour le hooking runtime.

Aperçu

Cet exploit exploite une vulnérabilité d'injection de commande dans le processus Zygote d'Android pour lancer les applications cibles avec le flag debuggable activé. Cela permet le débogage JDWP et l'inspection de toute application sans nécessiter d'accès root ni la version debug de l'application.

Basé sur les recherches de : Analyse de CVE-2024-31317 par Flanker

Information clé : "le champ runtime-flags dans ZygoteArguments peut en réalité être utilisé pour activer l'attribut débogable d'une application."

Fonctionnalités

  • Mode de détection automatique - Détecte automatiquement l'UID, le jeu d'instructions et le répertoire de données de l'application cible
  • Injection du flag débogable - Définit runtime-flags=65535 pour activer le débogage
  • Redirection JDWP - Configure automatiquement la redirection de port JDWP après l'exploit
  • Injection du gadget Frida - Injecte optionnellement Frida pour le hooking runtime via JDWP
  • Points d'arrêt intelligents - Utilise des points d'arrêt fiables qui se déclenchent automatiquement sans interaction utilisateur
  • Installation automatique de l'application debug - Installe l'application auxiliaire si elle n'est pas présente

Prérequis

  • Appareil Android vulnérable à CVE-2024-31317 (correctif de sécurité antérieur à juin 2024)
  • ADB installé et débogage USB activé
  • Python 3.10+
  • Paquets requis : ppadb, jdwplib

Installation

Placez les fichiers suivants dans le même répertoire :

├── CVE-2024-31317-Debuggable.py    # Script d'exploit principal
├── jdwplib.py                       # Bibliothèque cliente JDWP
├── app-debug.apk                    # Application auxiliaire débogable
├── frida-gadget-android-*.so        # Gadget Frida (optionnel)
├── frida-gadget.config.so           # Configuration Frida (optionnel)
└── win32/adb.exe                    # Binaire ADB Windows

Utilisation

Utilisation de base

python CVE-2024-31317-Debuggable.py

Le script vous demandera de choisir un mode de détection des paramètres :

==================================================
  CVE-2024-31317 Exploit
==================================================

[1] Détection automatique des paramètres
[2] Valeurs codées en dur

Mode (1/2) [1] :

Ce qu'il fait

  1. Phase 1 : Extraction de startSeq

    • Lance une application auxiliaire débogable
    • Se connecte via JDWP et extrait la valeur startSeq des trames de pile
    • Ferme l'application auxiliaire
  2. Phase 2 : Injection des arguments Zygote

    • Construit des arguments zygote malveillants avec runtime-flags=65535 (débogable)
    • Injecte la charge utile dans le paramètre hidden_api_blacklist_exemptions
    • Force l'arrêt et le redémarrage de l'application cible avec les arguments injectés
  3. Phase 3 : Post-exploitation

    • Configure la redirection de port JDWP
    • Injecte optionnellement le gadget Frida pour le hooking runtime

Exemple de sortie

==================================================
  CVE-2024-31317 Exploit
==================================================

[1] Détection automatique des paramètres
[2] Valeurs codées en dur

Mode (1/2) [1] : 1

[INFO] Phase 1 : Extraction de startSeq
[INFO] com.debug.app déjà installée
[INFO] Activation du débogage
[INFO] Démarrage de com.debug.app/.MainActivity
[INFO] PID : 12345
[INFO] Port JDWP : 8700
[INFO] Suspension de la VM
[INFO] Analyse de 42 trames
[INFO] startSeq : 123456
[INFO] Phase 2 : Exploitation de com.debug.configurator
[INFO] Détection des paramètres pour com.debug.configurator
[INFO] UID : 10242
[INFO] Architecture : arm64
[INFO] Données : /data/user/0/com.debug.configurator
[INFO] Android 13
[INFO] Charge utile : 8765 octets
[INFO] Redémarrage de la cible
[INFO] Terminé
[INFO] PID cible : 23456
[INFO] JDWP : 8701

Injecter Frida ? (o/N) :

Configuration

Application cible

Modifiez les constantes en haut du script :

TARGET_APP = "com.debug.configurator"  # Remplacez par votre paquet cible
DEBUG_APP = "com.debug.app"            # Application auxiliaire débogable
DEBUG_APK = "app-debug.apk"            # Fichier APK de l'application auxiliaire

Détection automatique vs codé en dur

Mode de détection automatique (recommandé) :

  • Utilise pm list packages -U pour obtenir l'UID
  • Utilise dumpsys package pour obtenir le jeu d'instructions et le répertoire de données
  • Plus fiable sur différents appareils

Mode codé en dur :

  • Utilise des valeurs par défaut (UID=10242, arm64, etc.)
  • Plus rapide mais moins fiable si l'appareil diffère des valeurs par défaut

Injection du gadget Frida

Après la réussite de l'exploit, vous pouvez optionnellement injecter le gadget Frida :

Injecter Frida ? (o/N) : o

Le script va :

  1. Pousser frida-gadget.so vers /data/local/tmp/
  2. Copier dans le répertoire de données de l'application via run-as
  3. Définir un point d'arrêt et charger le gadget via JDWP
  4. Rediriger les ports 27042 et 27043

Cibles des points d'arrêt

Le script essaie ces points d'arrêt par ordre de fiabilité :

ClasseMéthodeDéclencheur
android.os.MessageQueuenextAuto - le looper principal interroge constamment
android.os.BinderexecTransactAuto - tout appel IPC/Binder
android.app.ActivityThreadhandleMessageAuto - gestionnaire principal de l'application
android.os.HandlerdispatchMessageAuto - distribution de messages
android.os.HandlerhandleMessageAuto - gestion des messages
android.view.ChoreographerdoFrameAuto - rappels de trames
android.view.ViewdispatchTouchEventManuel - nécessite un toucher
android.view.ViewonDrawManuel - nécessite un redessin de l'interface

Les points d'arrêt du haut devraient se déclencher automatiquement. En cas de timeout, appuyez sur l'application pour déclencher les points d'arrêt de secours.

Connexion à Frida

Après une injection réussie :

# Connexion au gadget
frida -H 127.0.0.1:27042 -n Gadget

# Liste des processus
frida-ps -H 127.0.0.1:27042

Après l'exploitation

Une fois l'exploit réussi, l'application cible s'exécute avec le débogage activé :

  1. Connectez-vous avec un débogueur JDWP :

    jdb -attach localhost:8701
    
  2. Utilisez le débogueur Android Studio - Attachez-vous au processus sur le port redirigé

  3. Utilisez Frida - Si le gadget a été injecté via le script

Comment ça fonctionne

Aperçu de la vulnérabilité

CVE-2024-31317 est une vulnérabilité d'injection de commande dans le processus Zygote d'Android. En manipulant le paramètre système hidden_api_blacklist_exemptions avec une entrée spécialement conçue, nous pouvons injecter des arguments zygote arbitraires au démarrage d'une application.

Composants clés

  1. Extraction de startSeq : Chaque lancement d'application possède un numéro de séquence unique. Nous l'extrayons d'une application débogable via JDWP en inspectant les variables des trames de pile.
Télécharger l’outil