
Analyse d'un fichier APK pour les URIs, endpoints & secrets.
Analyse d'un fichier APK pour les URI, endpoints et secrets.
L'installation d'APKLeaks est assez simple :
$ pip3 install apkleaks
Clonez le dépôt et installez les dépendances :
$ git clone https://github.com/dwisiswant0/apkleaks
$ cd apkleaks/
$ pip3 install -r requirements.txt
Tirez l'image Docker en exécutant :
$ docker pull dwisiswant0/apkleaks:latest
APKLeaks utilise le désassembleur jadx pour décompiler les fichiers APK. Si jadx n'est pas présent sur votre système, il vous sera demandé de le télécharger.
Simplement,
$ apkleaks -f ~/chemin/vers/fichier.apk
# Depuis la source
$ python3 apkleaks.py -f ~/chemin/vers/fichier.apk
# ou avec Docker
$ docker run -it --rm -v /tmp:/tmp dwisiswant0/apkleaks:latest -f /tmp/fichier.apk
Voici toutes les options disponibles.
En général, si vous ne fournissez pas l'argument -o, le fichier de résultats sera généré automatiquement.
[!TIP] Par défaut, les résultats sont sauvegardés au format texte. Utilisez l'argument
--jsonsi vous souhaitez une sortie au format JSON.
Des patterns personnalisés peuvent être ajoutés avec l'argument suivant pour fournir des règles de recherche sensibles dans un fichier JSON : --pattern /chemin/vers/regles-personnalisees.json. Si aucun fichier n'est défini, l'outil utilise les patterns par défaut du fichier regexes.json.
Voici un exemple de fichier de patterns personnalisés :
// regles-personnalisees.json
{
"Amazon AWS Access Key ID": "AKIA[0-9A-Z]{16}",
// ...
}
Pour exécuter l'outil avec ces règles personnalisées, utilisez la commande suivante :
$ apkleaks -f /chemin/vers/fichier.apk -p regles.json -o ~/Documents/resultats-apkleaks.txt
Nous laissons à l'utilisateur une discrétion totale pour passer des arguments au désassembleur. Par exemple, si vous souhaitez activer les threads dans le processus de décompilation jadx, vous pouvez les ajouter avec l'argument -a/--args : --args="--threads-count 5".
$ apkleaks -f /chemin/vers/fichier.apk -a "--deobf --log-level DEBUG"
[!WARNING] Veuillez prêter attention aux arguments par défaut du désassembleur que nous utilisons pour éviter les collisions.
apkleaks est distribué sous licence Apache 2.
Étant donné que cet outil inclut plusieurs contributions, et que je ne suis pas un imbécile, je remercie publiquement les utilisateurs suivants pour leur aide et leurs ressources :
apkurlgrep, qui est à l'origine de cet outil.truffleHogRegexes.LinkFinder.gf.dex2jar.SHA2048#4361 (utilisateur Discord) qui m'a aidé à porter le code vers Python3.NotKeyHacks.| Argument | Description | Exemple |
|---|
| -f, --file | Fichier APK à analyser | apkleaks -f fichier.apk |
| -o, --output | Écrire les résultats dans un fichier (aléatoire si non défini) | apkleaks -f fichier.apk -o resultats.txt |
| -p, --pattern | Chemin vers un fichier JSON de patterns personnalisés | apkleaks -f fichier.apk -p regles-personnalisees.json |
| -a, --args | Arguments du désassembleur | apkleaks -f fichier.apk --args="--deobf --log-level DEBUG" |
| --json | Sauvegarder au format JSON | apkleaks -f fichier.apk -o resultats.json --json |