
Un outil pour automatiser le processus ennuyeux de APK recon
Un outil pour automatiser le processus de reconnaissance sur un fichier APK.
Slicer accepte un chemin vers un fichier APK extrait et retourne toutes les activités, récepteurs et services qui sont exportés et ont des permissions null et peuvent être provoqués de l'extérieur.
Note : L'APK doit être extrait via jadx ou apktool.
Pourquoi ?
J'ai commencé le bug bounty il y a environ 3 semaines (en juin 2020) et j'ai essayé de faire de mon mieux sur les applications Android. Mais j'ai remarqué une chose : dans toutes les applications, il y a certaines choses que je dois faire avant de plonger en profondeur. Donc j'ai pensé qu'il serait bien d'automatiser ce processus avec un outil simple.
Pourquoi pas drozer ?
Eh bien, drozer est une bête différente. Même s'il trouve tous les composants accessibles, j'étais fatigué de lancer ces commandes encore et encore.
Pourquoi ne pas automatiser avec drozer ?
J'ai en fait écrit un script bash pour exécuter certaines commandes drozer afin de ne plus avoir à les faire manuellement, mais il y avait encore des trucs ennuyeux à faire. Comme vérifier le strings.xml pour diverses clés API, tester si la base de données Firebase était accessible publiquement ou si ces clés API Google ont une limite d'utilisation ou autre, et beaucoup d'autres choses.
Pourquoi ne pas chercher dans tous les fichiers ?
Je pense qu'un outil comme grep ou ripgrep serait beaucoup plus rapide pour parcourir tous les fichiers. Donc si vous avez quelque chose de spécifique à chercher, il serait préférable d'utiliser ces outils. Mais si vous pensez qu'il y a quelque chose qui devrait être vérifié dans tous les fichiers Android, n'hésitez pas à ouvrir un ticket.
android:allowbackup à trueandroid:debuggable à true.android:exporte=true est présent dans un composant et aucune permission n'est définie.Intent-filters sont définis pour ce composant ; si oui, ce composant est exporté par défaut (c'est la règle donnée dans la documentation Android)..json.
myapp.firebaseio.com, il vérifie si https://myapp.firebaseio.com/.json retourne quelque chose ou donne une erreur de permission.git clone https://github.com/mzfr/slicer
cd slicerpython3 slicer.py -hC'est très simple à utiliser. Les options suivantes sont disponibles :
Extract information from Manifest and strings of an APK
Usage:
slicer [OPTION] [Extracted APK directory]
Options:
-d, --dir path to jadx output directory
-o, --output Name of the output file(not implemented)
Je n'ai pas encore implémenté l'option output car je pense que si vous pouvez rediriger la sortie de slicer vers un fichier yaml, cela aura un format approprié.
python3 slicer.py -d path/to/extact/apk -c config.json
Le module d'extraction utilisé pour extraire les URL et chemins est tiré de apkurlgrep par @ndelphit
Toutes les fonctionnalités implémentées ici sont des choses que j'ai apprises ces dernières semaines, donc si vous pensez qu'il y a d'autres choses à vérifier dans un APK, n'hésitez pas à ouvrir un ticket pour cette fonctionnalité et je serai ravi de l'implémenter :)
Si vous le souhaitez, vous pouvez m'offrir un café :
strings.xml et AndroidManifest.xml/res/raw et res/xml.