Découverte automatisée de vhosts et sous-domaines avec ffuf, avec détection des hôtes valides et réduction des faux positifs.
Présentation
mon-subdomains — Découverte de vhosts et sous-domaines pour CTF / pentest
Ce script automatise la recherche de vhosts (Host: FUZZ.domaine) en interrogeant l’IP cible et en extrayant les hôtes valides (ex. api.domaine.htb, admin.domaine.htb).
Fonctionnement :
- Résout l’IP de la cible (getent, puis fallback dig).
- Effectue un pré-check TCP rapide sur les ports 80/443, sans dépendre de l’ICMP.
- Scan Nmap interne (-Pn -sV -p-) pour détecter les ports HTTP/HTTPS exposés.
- Pour chaque port web :
- Calcule 3 baselines (code/size/words) avec un Host aléatoire.
- Si baseline 3xx stable : baselines après redirection (curl -L) + fuzzing avec ffuf -r.
- Si wildcard probable : fuzzing sauté pour éviter les faux positifs.
- Sinon : ffuf avec filtres -fs/-fw (et -ac si baseline instable), sortie JSON puis parsing jq.
- Agrège les vhosts uniques et écrit un bloc remplacé à chaque run dans : scans_subdomains/scan_vhosts.txt
Wordlists :
- Par défaut, le script utilise : /usr/share/wordlists/htb-dns-vh-5000.txt
- Cette wordlist est installée par le script make-htb-wordlist, qu’il faut exécuter au préalable.
- Modes : fast (1000), medium (2000), large (5000)
- –custom FILE : utilise une wordlist personnalisée.
Options utiles :
- –save-hosts / –dry-run-hosts : ajout contrôlé des vhosts trouvés dans /etc/hosts.
- –debug : affiche la commande ffuf et conserve les fichiers temporaires /tmp.
Usage
Usage:
mon-subdomains <domaine.htb> [mode] [options]
Modes :
-f, --fast 1000 premières lignes de la wordlist master
-m, --medium 2000 premières lignes de la wordlist master
-l, --large 5000 lignes, wordlist complète (mode par défaut)
--custom FILE Utilise une wordlist personnalisée à la place de la master
Options :
--master FILE Chemin de la wordlist master
(défaut: /usr/share/wordlists/htb-dns-vh-5000.txt)
-t N Threads ffuf (défaut: 50)
--timeout S Timeout curl en secondes (défaut: 8)
--strict Restreint les codes HTTP à 200,401,403
--codes LIST Codes HTTP transmis à ffuf -mc
(ex: "200,401,403"; prioritaire sur --strict)
--save-hosts Ajoute les vhosts trouvés dans /etc/hosts
(backup, sans doublon)
--dry-run-hosts Simule l’ajout dans /etc/hosts sans écrire le fichier
--debug Affiche la commande ffuf et conserve les fichiers /tmp
-V, --version Affiche la version et quitte
-h, --help Affiche cette aide
Code source Github
Tous les scripts HackEthical sont disponibles sur le dépôt GitHub mes-scripts :
https://github.com/NoelNac-HackEthical/mes-scripts-public
Téléchargements
La version courante du script mon-subdomains est 2.1.0