
Un outil rapide et complet pour le scan de réseaux organisationnels.
Fonctionnalités • Utilisation • Installation • Utilisation • Contribution • Notes supplémentaires
Domainim est un outil rapide de reconnaissance de domaines pour l'analyse de réseaux d'entreprise. L'outil vise à fournir un aperçu succinct de la structure d'une organisation à l'aide de techniques telles que l'OSINT, le bruteforcing, la résolution DNS, etc.
Fonctionnalités actuelles (v1.3.0)-

Énumération de noms d'hôtes virtuels
Recherche DNS inverse
Détecte les sous-domaines génériques (wildcard). Les résultats passifs qui ne se résolvent que vers les IP génériques sont masqués, sauf s'ils ont été observés dans un certificat TLS. Le bruteforcing peut être forcé avec --force-brute, auquel cas les résultats ne se résolvant que vers les IP génériques sont écartés
Analyse basique des ports TCP
Les sous-domaines sont acceptés en entrée
Export des résultats vers un fichier JSON
Quelques fonctionnalités sont en cours de développement. Voir Fonctionnalités prévues pour plus de détails.
Le projet est inspiré de Sublist3r. Le module de scan de ports est largement basé sur NimScan.
Vous pouvez compiler ce dépôt depuis les sources-
git clone [email protected]:pptx704/domainim
nimble build
./domainim <domain> [--ports=<ports>]
Ou, vous pouvez simplement télécharger le binaire depuis la page des versions. Gardez à l'esprit que le binaire n'est testé que sur les systèmes basés sur Debian.
./domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | -l:<filename> [--rps=<int> | -r:<int>] [--force-brute | -f]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
<domain> est le domaine à énumérer. Il peut également s'agir d'un sous-domaine.-- ports | -p est une spécification sous forme de chaîne des ports à scanner. Elle peut être l'une des suivantes-
all - Scanner tous les ports (1-65535)none - Ignorer le scan des ports (par défaut)t<n> - Scanner les n ports les plus courants (identique à nmap). c'est-à-dire t100 scanne les 100 ports les plus courants. La valeur maximale est 5000. Si n est supérieur à 5000, il sera défini à 5000.80 scanne le port 8080-100 scanne les ports 80 à 10080,443,8080 scanne les ports 80, 443 et 808080,443,8080-8090,t500 scanne les ports 80, 443, 8080 à 8090 et les 500 ports les plus courants--dns | -d est l'adresse du serveur DNS. Elle doit être une adresse IPv4 valide et peut éventuellement contenir le numéro de port-
a.b.c.d - Utiliser le serveur DNS à a.b.c.d sur le port 53a.b.c.d#n - Utiliser le serveur DNS à a.b.c.d sur le port n--wordlist | -l - Chemin vers le fichier de wordlist. Il est utilisé pour le bruteforce des sous-domaines. Si le fichier est invalide, le bruteforce sera ignoré. Les lignes vides et les lignes commençant par # sont ignorées. Vous pouvez obtenir une wordlist depuis SecLists. Une wordlist est également fournie dans la page de release.--force-brute | -f - Forcer le bruteforce même si un enregistrement wildcard est trouvé. Les sous-domaines qui ne résolvent que vers les IPs wildcard sont écartés.--rps | -r - Nombre de requêtes à effectuer par seconde pendant le bruteforce. La valeur par défaut est 1024 req/s. Il est à noter que les requêtes DNS sont effectuées par lots et que le lot suivant n'est effectué qu'après la fin du précédent. Comme les requêtes peuvent être limitées en débit, augmenter la valeur ne garantit pas toujours des résultats plus rapides.--out | -o - Chemin vers le fichier de sortie. La sortie sera enregistrée au format JSON. Le nom du fichier doit se terminer par .json.Exemples
./domainim nmap.org --ports=all./domainim google.com --ports=none --dns=8.8.8.8#53./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --rps=1500./domainim pptx704.com --ports=t100 --wordlist=wordlist.txt --out=results.json./domainim nmap.org --wordlist=wordlist.txt --force-brute./domainim mysite.com --ports=t50,5432,7000-9000 --dns=1.1.1.1Le menu d'aide est accessible via ./domainim --help ou ./domainim -h.
Usage:
domainim <domain> [--ports=<ports> | -p:<ports>] [--wordlist=<filename> | -l:<filename> [--rps=<int> | -r:<int>] [--force-brute | -f]] [--dns=<dns> | -d:<dns>] [--out=<filename> | -o:<filename>]
domainim (-h | --help)
Options:
-h, --help Show this screen.
-p, --ports Ports to scan. [default: `none`]
Can be `all`, `none`, `t<n>`, single value, range value, combination
-l, --wordlist Wordlist for subdomain bruteforcing. Bruteforcing is skipped for invalid file.
-f, --force-brute Bruteforce even if a wildcard record is found. Results resolving only to wildcard IPs are discarded.
-d, --dns IP and Port for DNS Resolver. Should be a valid IPv4 with an optional port [default: system default]
-r, --rps DNS queries to be made per second [default: 1024 req/s]
-o, --out JSON file where the output will be saved. Filename must end with `.json`
Examples:
domainim domainim.com -p:t500 -l:wordlist.txt --dns:1.1.1.1#53 --out=results.json
domainim sub.domainim.com --ports=all --dns:8.8.8.8 -l:wordlist.txt -r:1500 -f -o:results.json
Le schéma JSON pour les résultats est le suivant-
[
{
"subdomain": string,
"data": [
{
"ipv4": string,
"vhosts": [string],
"reverse_dns": string,
"ports": [int]
}
]
}
]
Un exemple de json pour nmap.org est disponible ici.
Les contributions sont les bienvenues. N'hésitez pas à ouvrir une pull request ou une issue.