
Outil d'énumération de sous-domaines multi-sources avec plus de 50 modules de collecte, force brute DNS, analyse DNS passive, transparence des certificats, scraping de moteurs de recherche et détection de prise de contrôle de sous-domaines pour la reconnaissance.
👊OneForAll est un outil puissant de collecte de sous-domaines 📝Document en anglais
📢 Veuillez prendre un moment pour lire ce document, il vous aidera à vous familiariser rapidement avec OneForAll !
OneForAll est développé et testé sur Python 3.6.0. OneForAll nécessite une version de Python supérieure à 3.6.0 pour fonctionner. Pour installer l'environnement Python, consultez le Guide d'installation de Python 3. Exécutez les commandes suivantes pour vérifier les versions de Python et pip3 :
python -V
pip3 -V
Si vous voyez une sortie similaire à celle-ci, l'environnement Python est correct :
Python 3.6.0
pip 19.2.2 from C:\Users\shmilylty\AppData\Roaming\Python\Python36\site-packages\pip (python 3.6)
Comme ce projet est en cours de développement, il sera constamment mis à jour. Utilisez git clone pour cloner le dernier dépôt de code, ce qui facilitera également les futures mises à jour. Il n'est pas recommandé de télécharger depuis Releases, car les versions y sont peu fréquentes et la mise à jour n'est pas pratique.
Ce projet a été mis en miroir sur Gitee(码云). Il est recommandé d'utiliser Gitee pour un clonage plus rapide en Chine :
git clone https://gitee.com/shmilylty/OneForAll.git
ou :
git clone https://github.com/shmilylty/OneForAll.git
Vous pouvez installer les dépendances de OneForAll avec pip3. Voici un exemple d'installation des dépendances avec pip3 sous Windows : Attention : si votre Python3 est installé dans le répertoire Program Files du système, par exemple C:\Program Files\Python36, exécutez l'invite de commande cmd en tant qu'administrateur pour exécuter les commandes suivantes !
cd OneForAll/
python3 -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python3 oneforall.py --help
Pour les autres plateformes, veuillez vous référer à Installation des dépendances. Si vous rencontrez un échec de compilation d'une dépendance lors de l'installation, consultez le document Problèmes fréquents et réponses.md pour les solutions. Si le problème persiste, n'hésitez pas à rejoindre le groupe pour signaler le problème.
Exécutez les commandes suivantes pour mettre à jour le projet (les modifications apportées à /config/setting.py et /config/api.py peuvent être conservées) :
git stash # Mettre de côté les modifications locales
git fetch --all # Récupérer les mises à jour du projet
git pull # Télécharger et écraser
git stash pop # Restaurer les modifications locales
Téléchargez et éditez d'abord le fichier de configuration, ajoutez vos propres api et paramètres personnalisés, et conservez la structure de fichiers d'origine
config
├── api.py
├── default.py
├── __init__.py
├── log.py
└── setting.py
Tirez l'image et exécutez-la, où ~/.config est remplacé par le chemin du dossier contenant votre propre fichier de configuration
docker pull shmilylty/oneforall
docker run -it --rm -v ~/results:/OneForAll/results -v ~/.config:/OneForAll/config shmilylty/oneforall --target example.com run
Les paramètres sont ajoutés directement à la fin de la commande, les résultats sont sortis dans le répertoire local ~/results. Pour les enregistrer à un autre emplacement, vous pouvez modifier le chemin vous-même.
Si vous avez installé les dépendances avec pip3, utilisez la commande suivante pour exécuter l'exemple :
python3 oneforall.py --target example.com run
python3 oneforall.py --targets ./example.txt run
Prenons l'exemple de la commande python3 oneforall.py --target example.com run. Une fois OneForAll exécuté avec les paramètres par défaut, les résultats correspondants seront générés dans le répertoire results :

example.com.csv contient les résultats de collecte des sous-domaines sous chaque domaine principal.
all_subdomain_result_1583034493.csv est un fichier récapitulatif des sous-domaines collectés à chaque exécution de OneForAll, incluant example.com.csv, ce qui facilite l'obtention de tous les résultats dans un scénario de collecte par lots.
result.sqlite3 est une base de données SQLite3 stockant les sous-domaines collectés à chaque exécution de OneForAll. Sa structure de base de données est illustrée ci-dessous :

La table example_com_origin_result stocke les résultats de collecte initiaux des sous-domaines de chaque module.
La table example_com_resolve_result stocke les résultats après résolution des sous-domaines.
La table example_com_last_result stocke les résultats de la collecte précédente de sous-domaines (générée seulement après plus de deux collectes).
La table example_com_now_result stocke les résultats actuels de collecte des sous-domaines. En général, il suffit de se concentrer sur cette table.
Pour plus d'informations, veuillez consulter Explication des champs.