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
Outils/GitHubGitHub/niklashigi/apk-mitm
Sécurité AndroidPentesting d'Applications MobilesRétro-ingénierieSécurité WebTests d'IntrusionSécurité MobileTop en Sécurité Android n°11Top en Pentesting d'Applications Mobiles n°15Top en Sécurité Mobile n°15
5.1k43112il y a 2 ansVérifié par Kitploit

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
GitHub
niklashigi/apk-mitm

apk-mitm

🤖 Une application CLI qui prépare automatiquement les fichiers APK Android pour l'inspection HTTPS

Voir le dépôtSite web

apk-mitm

Une application CLI qui prépare automatiquement les fichiers APK Android pour l'inspection HTTPS

Inspecter le trafic HTTPS d'une application mobile à l'aide d'un proxy est probablement le moyen le plus simple de comprendre son fonctionnement. Cependant, avec la Configuration de sécurité réseau introduite dans Android 7 et les développeurs d'applications qui tentent d'empêcher les attaques MITM en utilisant le certificate pinning, faire fonctionner une application avec un proxy HTTPS est devenu assez fastidieux.

apk-mitm automatise tout le processus. Tout ce que vous avez Ă  faire est de lui fournir un fichier APK et apk-mitm va :

  • dĂ©coder le fichier APK en utilisant Apktool
  • remplacer la Configuration de sĂ©curitĂ© rĂ©seau de l'application pour autoriser les certificats ajoutĂ©s par l'utilisateur
  • modifier le code source pour dĂ©sactiver diverses implĂ©mentations de certificate pinning
  • encoder le fichier APK modifiĂ© en utilisant Apktool
  • signer le fichier APK modifiĂ© en utilisant uber-apk-signer

Vous pouvez également utiliser apk-mitm pour modifier des applications utilisant Android App Bundle et le root de votre téléphone n'est pas requis.

⚠️ Limites et alternatives

Modifier le comportement normal d'une application pour contourner des fonctionnalités de sécurité comme le certificate pinning nécessite soit de modifier le code source de l'application avant de l'exécuter, soit de "hooking" l'application pendant son exécution pour intercepter les appels de fonction.

apk-mitm adopte actuellement la première approche en modifiant le code de l'application : il commence par "désassembler" l'application à l'aide d'Apktool, apporte des modifications à plusieurs fichiers, puis la réassemble (toujours avec Apktool).

Cette approche présente l'avantage de ne pas nécessiter un appareil rooté, mais elle a aussi plusieurs inconvénients. Le plus gros problème est que les applications ne sont pas vraiment conçues pour être désassemblées. Apktool essaie de le faire quand même, mais surtout avec des applications volumineuses et complexes, il rencontre souvent des problèmes.

Un autre problème avec cette approche est que certaines méthodes de certificate pinning, comme les vérifications effectuées dans des binaires natifs (comme c'est le cas pour des frameworks comme Flutter), sont soit très difficiles, soit impossibles à contourner. Pour cette raison, il peut être bénéfique d'essayer d'autres approches pour les applications plus délicates.

Plus précisément, je souhaite mettre en avant le projet android-unpinner de mitmproxy et les scripts frida-interception-and-unpinning de HTTP Toolkit. Leur approche applique des correctifs au moment de l'exécution en utilisant Frida, ce qui est beaucoup plus puissant, mais signifie également qu'elle ne peut pas être utilisée ou est plus difficile à utiliser sans un appareil rooté.

Installation

Si vous avez une version à jour de Node.js (14+) et Java (8+), vous pouvez installer apk-mitm en exécutant :

root@kitploit:~
npm install -g apk-mitm

Utilisation

Une fois installé, vous pouvez exécuter cette commande pour modifier une application :

root@kitploit:~
apk-mitm <chemin-vers-apk>

La modification d'un fichier APK appelé example.apk pourrait ressembler à ceci :

root@kitploit:~
$ apk-mitm example.apk

  ✔ Décodage du fichier APK
  âś” Modification du manifeste de l'application
  ✔ Remplacement de la configuration de sécurité réseau
  ✔ Désactivation du certificate pinning
  ✔ Encodage du fichier APK modifié
  ✔ Signature du fichier APK modifié

   Terminé ! APK modifié : ./example-patched.apk

Vous pouvez maintenant installer le fichier example-patched.apk sur votre appareil Android et utiliser un proxy comme Charles ou mitmproxy pour observer le trafic de l'application.

Modification des App Bundles

Vous pouvez également modifier des applications utilisant Android App Bundle avec apk-mitm en lui fournissant un fichier *.xapk (par exemple depuis APKPure) ou un fichier *.apks (que vous pouvez exporter vous-même en utilisant SAI). Si vous faites cela sous Linux, assurez-vous que zip et unzip sont installés.

Effectuer des modifications manuelles

Parfois, vous aurez besoin d'effectuer des modifications manuelles dans une application pour la faire fonctionner. Dans ces cas, l'option --wait est ce qu'il vous faut. L'activer fera attendre apk-mitm avant de ré-encoder l'application, vous permettant d'apporter des modifications aux fichiers dans le répertoire temporaire.

Si vous souhaitez expérimenter différentes modifications sur un APK, utiliser --wait n'est probablement pas l'option la plus pratique car elle vous oblige à recommencer à chaque fois. Dans ce cas, vous devriez peut-être jeter un œil à APKLab. C'est un atelier de rétro-ingénierie Android construit sur VS Code qui inclut le support de apk-mitm et devrait vous permettre d'itérer beaucoup plus rapidement.

Autoriser des certificats spécifiques

Sur certains appareils (comme les Android TV), il se peut que vous ne puissiez pas ajouter un nouveau certificat aux certificats racines du système. Dans ces cas, vous pouvez toujours ajouter le certificat de votre proxy directement dans la Configuration de sécurité réseau de l'application car cela fonctionnera sur n'importe quel appareil. Vous pouvez y parvenir en exécutant apk-mitm avec le drapeau --certificate défini sur le chemin du certificat (fichier .pem ou .der) utilisé par votre proxy.

Mises en garde

  • Si l'application utilise Google Maps et que la carte est cassĂ©e après modification, la clĂ© API de l'application est probablement restreinte au certificat du dĂ©veloppeur. Vous devrez crĂ©er votre propre clĂ© API sans restrictions et exĂ©cuter apk-mitm avec l'option --wait pour pouvoir remplacer la valeur com.google.android.geo.API_KEY dans le fichier AndroidManifest.xml de l'application.

  • Si apk-mitm plante lors du dĂ©codage ou de l'encodage, le problème est probablement liĂ© Ă  Apktool. Consultez leurs problèmes sur GitHub pour trouver des solutions de contournement possibles. Si vous trouvez une version d'Apktool qui n'est pas affectĂ©e par le problème, vous pouvez demander Ă  apk-mitm de l'utiliser en spĂ©cifiant le chemin de son fichier JAR via l'option --apktool.

Remerciements

  • Connor Tumbleson pour avoir créé un super dĂ©compilateur APK
  • Patrick Favre-Bulle pour avoir créé un outil très simple pour signer les APK
  • Ryan Welton pour avoir inspirĂ© la majeure partie du code de suppression du certificate pinning

Licence

MIT © Niklas Higi

Télécharger l’outil