
Un outil de collecte d'informations et de scanning pour terminaux mobiles (Android, iOS, WEB, H5, sites statiques), conçu pour les opérations HW, les équipes rouges et les équipes de test d'intrusion. Il aide les ingénieurs en sécurité offensive, les membres d'équipes d'attaque et les équipes rouges à collecter rapidement les actifs clés sur les sites mobiles ou statiques, et fournit des informations essentielles telles que le titre, le domaine, le CDN, les empreintes digitales et l'état.
Ce projet ne représente actuellement qu'une partie infime des projets planifiés. Si vous êtes intéressé par ce projet ou souhaitez participer au développement des futurs projets ou à la traduction, veuillez envoyer un e-mail à [email protected] en précisant vos compétences et vos demandes.
Un outil de collecte d'informations pour terminaux mobiles (Android, iOS, WEB, H5, sites statiques) conçu pour les scénarios d'opérations HW/équipes rouges/équipes de tests d'intrusion. Il aide les ingénieurs en tests d'intrusion, les membres d'équipes d'attaque et les équipes rouges à collecter rapidement les actifs d'information clés des applications mobiles ou des sites WEB statiques, et fournit une sortie d'informations de base telles que le titre, le domaine, le CDN, les empreintes numériques, l'état, etc.
N'utilisez pas la technologie ou le code de ce projet à des fins illégales telles que la création de logiciels malveillants, le vol de droits d'auteur/propriété intellectuelle de logiciels ou l'enrichissement indu. Mettre en œuvre les actions susmentionnées ou utiliser ce projet pour sonder des données de programmes dont vous n'êtes pas propriétaire pourrait enfreindre les articles 217 et 286 du Code pénal de la République populaire de Chine, la Loi sur la sécurité cyberspatiale de la République populaire de Chine et le Règlement sur la protection des logiciels informatiques de la République populaire de Chine. Les technologies mentionnées dans ce projet ne peuvent être utilisées qu'à des fins légitimes telles que l'apprentissage privé et les tests. Toute responsabilité pénale ou civile résultant d'une utilisation inappropriée de cette technologie incombe à l'utilisateur, et non à l'auteur de ce projet.

AppInfoScanner
|-- libs Code cœur du programme
|-- core
|-- __init__.py Informations de configuration globales
|-- parses.py Analyse des informations statiques dans les fichiers
|-- download.py Téléchargement automatique des applications ou pages H5
|-- net.py Reniflage réseau et obtention d'informations de base
|-- task
|-- __init__.py Fichier d'initialisation du répertoire
|-- base_task.py Centre de planification unifié des tâches
|-- android_task.py Gestion des tâches liées à Android
|-- download_task.py Gestion des tâches de téléchargement automatique d'APK ou H5
|-- ios_task.py Gestion des tâches liées à iOS
|-- net_task.py Gestion des tâches de reniflage réseau
|-- web_task.py Gestion des tâches liées au Web (code source des pages web, H5, etc.)
|-- tools Outils nécessaires au programme
|-- apktool.jar Désassemblage des fichiers APK (peut nécessiter un changement selon la plateforme)
|-- baksmali.jar Désassemblage des fichiers DEX (peut nécessiter un changement selon la plateforme)
|-- strings.exe Obtention des chaînes iPA sous Windows 32 bits
|-- strings64.exe Obtention des chaînes iPA sous Windows 64 bits
|-- __init__.py Fichier d'initialisation du répertoire
|-- app.py Programme principal
|-- config.py Fichier de configuration du programme
|-- README.md Instructions d'utilisation
|-- requirements.txt Bibliothèques de dépendances à installer
|-- update.md Historique des versions du programme
git clone https://github.com/kelvinBen/AppInfoScanner.git
Ou copiez le lien suivant dans votre navigateur pour télécharger la dernière version officielle :
https://github.com/kelvinBen/AppInfoScanner/releases/latest
Canal de téléchargement rapide en Chine :
git clone https://gitee.com/kelvin_ben/AppInfoScanner.git
cd AppInfoScanner
python -m pip install -r requirements.txt
python app.py android -i <Votre fichier APK ou DEX ou URL de téléchargement APK ou répertoire de fichiers>
python app.py ios -i <Votre fichier IPA ou Mach-o ou URL de téléchargement IPA ou répertoire de fichiers>
python app.py web -i <Votre fichier Web ou répertoire Web ou URL de cache Web>
python app.py [TYPE] [OPTIONS] <URL ou répertoire à scanner>
<> Représente le fichier, le répertoire ou l'URL à scanner
| Relation OU : un seul choix
[] Représente le paramètre à saisir
Ce type de paramètre correspond à [TYPE] dans le format de commande de base. Actuellement, seuls trois types sont pris en charge : android, ios, web. Un type doit être spécifié.
android : Pour scanner le contenu des applications Android
ios : Pour scanner le contenu des applications iOS
web : Pour scanner le contenu des sites WEB ou H5
Le programme peut corriger automatiquement le type en fonction de l'extension du fichier. Par exemple, si vous spécifiez ios mais que le fichier passé avec -i est nommé XXX.apk, le programme exécutera un scan Android.
Ce type de paramètre correspond à [OPTIONS] dans le format de commande de base. Plusieurs paramètres peuvent être utilisés ensemble.
-i ou --inputs : Entrez le fichier, le répertoire ou l'URL à analyser. Si le chemin est long, entourez-le de guillemets. Ce paramètre est obligatoire.
-r ou --rules : Règle de scan temporaire pour le contenu du fichier.
-s ou --sniffer : Active la fonction de reniflage réseau (activée par défaut).
-n ou --no-resource : Ignore tous les fichiers de ressources, y compris ceux du reniflage réseau (nécessite une configuration préalable dans config.py avec les règles sniffer_filter). Par défaut, les ressources ne sont pas ignorées.
-a ou --all : Affiche tous les résultats correspondant aux règles de scan (activé par défaut).
-t ou --threads : Définit le nombre de threads concurrents (10 par défaut).
-o ou --output : Répertoire de sortie pour les résultats et les fichiers temporaires (par défaut, le répertoire du script).
-p ou --package : Nom du paquet Java à scanner pour les fichiers APK ou DEX Android. Ce paramètre est réservé au type android.
python app.py android -i <Votre fichier apk>
Exemple :
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk
python app.py android -i <Votre fichier DEX>
Exemple :
python app.py android -i C:\Users\Administrator\Desktop\Demo.dex
python app.py android -i <URL de téléchargement APK>
Exemple :
python app.py android -i "https://127.0.0.1/Demo.apk"
Note : Si l'URL est longue, entourez-la de guillemets doubles (").
python app.py ios -i <Votre fichier ipa>
Exemple :
python app.py ios -i "C:\Users\Administrator\Desktop\Demo.ipa"
python app.py ios -i <Votre fichier Mach-o>
Exemple :
python app.py ios -i "C:\Users\Administrator\Desktop\Demo\Payload\Demo.app\Demo"
python app.py ios -i <URL de téléchargement IPA>
Exemple :
python app.py ios -i "https://127.0.0.1/Demo.ipa"
Note : Si l'URL est longue, entourez-la de guillemets doubles ("). Le scan des fichiers IPA de l'Apple Store n'est pas pris en charge pour le moment.
python app.py web -i <Votre fichier web>
Exemple :
python app.py web -i "C:\Users\Administrator\Desktop\Demo.html"
python app.py web -i <URL de téléchargement Web>
Exemple :
python app.py web -i "https://127.0.0.1/Demo.html"
Les exemples ci-dessous utilisent le type android :
python app.py android -i <Votre répertoire>
Exemple :
python app.py android -i C:\Users\Administrator\Desktop\Demo
python app.py android -i <Votre apk> -r <mot-clé | règle>
Exemple :
Ajout du scan du domaine baidu
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -r ".*baidu.com.*"
python app.py android -i <Votre apk> -s
Exemple :
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -s
python app.py android -i <Votre apk> -n
Exemple :
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -n
python app.py android -i <Votre apk> -a
Exemple :
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -a
python app.py android -i <Votre apk> -t 20
Exemple :
Définir 20 threads concurrents
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -t 20
python app.py android -i <Votre apk> -o <chemin de sortie>
Exemple :
Sortie vers le répertoire Temp du bureau
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -o C:\Users\Administrator\Desktop\Temp
python app.py android -i <Votre apk> -p <Nom du paquet Java>
Exemple :
Pour filtrer le contenu du paquet com.baidu
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -p "com.baidu"
Le programme de ce projet sert de base avec quelques règles intégrées. Tous les contenus saisis ne peuvent pas être analysés correctement. Vous pouvez configurer les règles selon vos besoins pour obtenir des résultats optimaux.
config.py, dans le même répertoire que README.md.filter_components : Configuration des composants (JSON, XML, etc.)
filter_strs : Contenu à scanner (exemple : pour scanner les ports, configurez : "r'.*://([\d{1,3}\.]{3}\d{1,3}).*'")
filter_no : Ignorer certains contenus indésirables dans les fichiers scannés
shell_list : Caractéristiques des coques Android
web_file_suffix : Extensions de fichiers WEB à scanner
sniffer_filter : Extensions de fichiers à ignorer lors du reniflage réseau
headers : En-têtes de requête pour le téléchargement automatique
data : Corps de la requête pour le téléchargement automatique
method : Méthode de requête pour le téléchargement automatique
Méthode 1 : Ajustez les règles dans config.py en fonction de la situation réelle.
Méthode 2 : Ignorez les fichiers de ressources.
L'application à analyser possède une coque. Vous devez désemballer/désassembler l'application avant de l'analyser. Vous pouvez utiliser les outils suivants pour le désemballage :
Android :
Module xposed : dexdump
Module frida : FRIDA-DEXDump
Désemballage sans root : blackdex
iOS :
Module frida :
Windows : frida-ipa-dump
MacOS : frida-ios-dump
Échec du téléchargement du fichier.
1) Vérifiez que l'URL saisie est correcte.
2) Vérifiez la connexion réseau ou configurez les en-têtes de requête (headers), le corps (data) et la méthode (method) dans config.py, puis réexécutez.
Échec de la décompilation du fichier.
Veuillez soumettre une capture d'écran de l'erreur et le fichier APK correspondant à https://github.com/kelvinBen/AppInfoScanner/issues. L'auteur les traitera dès que possible.
Chemin de soumission des règles personnalisées :
Cliquez pour ajouter des règles personnalisées
Format de soumission :
1. Ajout d'un composant personnalisé pour APP
Exemple : règle pour fastjson :
Composant APP : fastjson com.alibaba.fastjson
2. Chaîne de caractères à rechercher
Exemple : règle pour la clé AK d'Alibaba :
Chaîne :
AK Alibaba .*accessKeyId.*".*"
3. Extension de fichier web à rechercher
Exemple : règle pour les fichiers jsp :
Site : Java langage jsp
4. Règle de coque Android
Exemple : règle pour la coque d'une certaine société numérique :
Coque : société numérique com.stub.StubApp
WeChat : bromomo (Ajoutez un ami avec la mention : GitHub)
Groupe WeChat :

Si vous ne pouvez pas rejoindre, ajoutez d'abord l'ami WeChat, puis entrez dans le groupe.
Email : [email protected]
Pour soumettre des demandes, des corrections de bugs, des échanges techniques ou des partenariats commerciaux, vous pouvez ajouter l'auteur.

AppInfoScanner fait partie de la StarLink Initiative 2.0 de l'équipe 404. Si vous avez des questions sur AppInfoScanner ou souhaitez échanger avec d'autres utilisateurs, consultez les instructions d'ajout au groupe de la StarLink Initiative.