OneForAll
Table of contents
OneForAll est un outil d’énumération de sous-domaines utilisé pour lister les sous-domaines d’un domaine principal. Cet outil utilse plusieurs techniques comme la résolution de DNS, le brute-forcing des sous-domaines et collecte aussi des données à partir de sources publiques que d’autres outils n’interrogent pas généralement. OneForAll règle le problème de puissance ou encore d’efficacité qu’on peut voir avec d’autres outils.
La documentation officielle se retrouve sur GitHub.
Pour installer OneForAll, utilisez les commandes suivantes:
Vérifiez d’abord les versions de Python et pip3 . La version de Python3 doit être supérieure à 3.6.0 et la version de pip3, supérieure à 19.2.2.
python -V
pip3 -V
Clonez le dépôt du projet.
git clone https://github.com/shmilylty/OneForAll.git
Créez un environnement virtuel pour séparer l’installation de votre environnement python.
virtualenv -p python3 .venv
source .venv/bin/activate
Installez les dépendances
cd OneForAll
python3 -m pip install -U pip setuptools wheel
pip3 install -r requirements.txt
Options
python3 oneforall.py -h
: cette option permet de lister toutes les options de OneForAllpython oneforall.py --target [site.com] --brute FALSE --dns FALSE --valid TRUE run
l’option
--target
permet de spécifier l’URL ou le domaine à analyserl’option
--brute
permet d’activer/désactiver le module de bruteforce pour rechercher les sous-domaines. Par défaut, l’option est activéel’option
--dns
permet d’activer/désactiver la résolution DNS lors de l’analyse des sous-domaines. Cette option est aussi activée par défaut.l’option
--valid
permet de spécifier que seuls les sous-domaines actifs et valides seront pris en compte. L’outil va donc interroger chaque sous-domaine afin de vérifier leur validité.
python oneforall.py --targets list_urls.txt --takeover TRUE --path /PATH/TO/FILE run
l’option
--targets
permet de spécifier une liste de domaines contenue dans un fichierl’option
--takeover
permet de vérifier si un sous-domaine trouvé est vulnérable à une prise de contrôle de sous-domaine (subdomain takeover). Cette option est cruciale dans l’identification des sous-domaines mal configurés. Elle est par défaut désactivée.l’option
--path
spécifie le chemin du fichier où seront stockés les résultats de la collecte de sous-domaines. Lorsqu’un fichier n’est pas spécifié, OneForAll générera automatiquement un fichier de résultats.Comme le montre l’image ci-dessous, l'outil génère automatiquement un fichier
.csv
qui répertorie les résultats, dans le dossier/results
Interprétation des résultats
Les résultats de la commande OneForAll sur https://hackerone.com
montrent les modules exécutés ainsi que le nombre de sous-domaines trouvés. Par exemple, avec les résultats de cette requête, on voit que le module CertInfo
a trouvé 4 sous-domaines en 0,1 seconde, l'accès au site dnsgrep.cn
a été refusé (statut403) et d’autres informations.
Les serveurs a.ns.hackerone.com
et b.ns.hackerone.com
ont aussi été trouvés, ce qui a permis de retourner les adresses IP 162.159.0.31 et 162.159.1.31.
Les sous-domaines trouvés seront répertoriés dans le dossier /results
par défaut dans un fichier csv qui peut être compliqué à lire. Vous pouvez formater les colonnes à l’affichage avec les commandes column et less:
column -s, -t < hackerone.com.csv | less -#2 -N -S
L’option
-s,
(-s suivi de la virgule) spécifie que la virgule ( , ) est le délimiteur qui sépare les colonnes dans le fichier csvL’option
-t
indique à column de créer un tableau avec des colonnes alignées< hackerone.com.csv
permet une redirection du contenu du fichier hackerone.com.csv comme entrée pour la commande columnless -#2 -N -S
permet de paginer la sortie avecless
, affiche les numéros de ligne avec-N
, permet un défilement horizontal avec-S
, et définit l'espacement des tabulations à 2 avec-#2
. Vous pouvez quitter l’affichage avec la toucheq
.
Le fichier avec les résultats avec un affiche standard se présente comme suit:
On passe donc de l’affichage de l’image au dessus à ceux en dessous avec la commande column -s, -t < hackerone.com.csv | less -#2 -N -S
.
OneForAll est un outil essentiel en matière d’énumération de sous-domaines de part sa capacité à collecter le sous-domaines de manière rapide et précise.
À noter, qu’il est important de rappeler que l'utilisation de cet outil doit toujours se faire dans un cadre légal.
Subscribe to my newsletter
Read articles from FIKARA BILAL directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
FIKARA BILAL
FIKARA BILAL
As a newcomer to the cybersecurity industry, I'm on an exciting journey of continuous learning and exploration. Join me as I navigate, sharing insights and lessons learned along the way