dnstwist
Moteur de permutation de domaines pour détecter le typosquatting, le phishing et l'usurpation de marque. Génère et teste des variations de domaines pour trouver des sites imitateurs. Domain permutation engine for detecting typosquatting, phishing, and brand impersonation. Generates and tests domain variations to find lookalike sites.
↗ https://github.com/elceef/dnstwistOverview
dnstwist generates hundreds of permutations of a domain name (typos, homoglyphs, added words, bitflips, etc.) and resolves them to find registered lookalike domains. Used defensively to detect phishing campaigns targeting your brand, and offensively to find phishing infrastructure.
Basic Usage
Generate and check permutations of a domain
dnstwist example.com
Show registered permutations only
dnstwist --registered example.com
Full check (DNS, WHOIS, screenshots)
dnstwist -r example.com
JSON output
dnstwist --format json example.com > results.json
Save to CSV
dnstwist --format csv example.com > results.csv
Permutation Types
Show what permutations are generated
dnstwist --list-modules
# Types of permutations:
# addition → example.com → examples.com
# bitsquatting → bit-flip permutations
# homoglyph → examp1e.com (letter substitution)
# hyphenation → ex-ample.com
# insertion → exxample.com
# omission → examle.com
# repetition → eexample.com
# replacement → examples.com (keyboard proximity)
# subdomain → www.example.com → wwwexample.com
# transposition → exmaple.com
# vowel-swap → ixample.com
# tld → example.net, example.org
Enrichment Options
Check WHOIS registration date
dnstwist --whois example.com
Get favicon hash (detect brand misuse)
dnstwist --favicon example.com
Take screenshots (requires selenium)
dnstwist --screenshots /tmp/screenshots/ example.com
Check MX records (phishing setup has MX)
dnstwist --mxcheck example.com
Enable all checks
dnstwist -r --whois --mxcheck example.com
Phishing Detection Workflow
- Find registered lookalike domains
dnstwist --registered --format json example.com > lookalikes.json
- Check which have MX records (ready to receive email)
dnstwist --mxcheck example.com | grep -i "mx"
- Check for recently registered (potential phishing)
dnstwist --whois example.com | grep "registered"
- Screenshot suspicious sites for visual similarity check
dnstwist --screenshots /tmp/shots/ example.com
Fuzzy Matching
Find domains similar to yours (fuzzy DNS check)
dnstwist --fuzz example.com
With additional keywords
dnstwist --dictionary words.txt example.com
Output Filtering
Only show domains with A records (live)
dnstwist example.com | grep "\."
Only show domains with MX (can receive email)
dnstwist --mxcheck example.com | grep -v "empty"
# JSON output for automated processing
dnstwist --format json --registered example.com | \
python3 -c "
import json, sys
for d in json.load(sys.stdin):
if d.get('dns-a'):
print(d['domain'], d['dns-a'])
"
Tips
- Look for domains registered within the past 30 days — fresh registrations are often phishing setups
- MX records on lookalike domains = active phishing infrastructure
- Homoglyph attacks (using Unicode lookalikes) are increasingly common — dnstwist detects these
- Run monthly against your brand domains as a defensive monitoring practice
Help / Man page
dnstwist [options] <domain>
-r --registered Show only registered domains
-w --whois Fetch WHOIS data
-m --mxcheck Check MX records
-f --favicon Compare favicons
-s DIR --screenshots Take screenshots
--format FMT Output format: text, csv, json, list
--dictionary FILE Additional keywords to test
--fuzz Fuzzy domain matching
--threads N Number of threads (default: 10)
--timeout N DNS timeout (seconds)
-o FILE Output to file
Vue d’ensemble
dnstwist génère des centaines de permutations d’un nom de domaine (fautes de frappe, homoglyphes, mots ajoutés, bit-flips, etc.) et les résout pour trouver des domaines imitateurs enregistrés. Utilisé en défense pour détecter les campagnes de phishing ciblant votre marque, et en offensif pour trouver de l’infrastructure de phishing.
Utilisation de base
# Générer et vérifier les permutations d'un domaine
dnstwist example.com
# Afficher uniquement les permutations enregistrées
dnstwist --registered example.com
# Vérification complète (DNS, WHOIS, captures d'écran)
dnstwist -r example.com
# Sortie JSON
dnstwist --format json example.com > results.json
# Sauvegarder en CSV
dnstwist --format csv example.com > results.csv
Types de permutations
Afficher les permutations générées
dnstwist --list-modules
# Types de permutations :
# addition → example.com → examples.com
# bitsquatting → permutations par bit-flip
# homoglyph → examp1e.com (substitution de lettre)
# hyphenation → ex-ample.com
# insertion → exxample.com
# omission → examle.com
# repetition → eexample.com
# replacement → examples.com (proximité clavier)
# subdomain → www.example.com → wwwexample.com
# transposition → exmaple.com
# vowel-swap → ixample.com
# tld → example.net, example.org
Options d’enrichissement
# Vérifier la date d'enregistrement WHOIS
dnstwist --whois example.com
# Récupérer le hash du favicon (détecter le détournement de marque)
dnstwist --favicon example.com
# Prendre des captures d'écran (nécessite selenium)
dnstwist --screenshots /tmp/screenshots/ example.com
# Vérifier les enregistrements MX (une infrastructure de phishing a un MX)
dnstwist --mxcheck example.com
# Activer toutes les vérifications
dnstwist -r --whois --mxcheck example.com
Workflow de détection de phishing
- Trouver les domaines imitateurs enregistrés
dnstwist --registered --format json example.com > lookalikes.json
- Vérifier lesquels ont des enregistrements MX (prêts à recevoir des e-mails)
dnstwist --mxcheck example.com | grep -i "mx"
- Vérifier les enregistrements récents (phishing potentiel)
dnstwist --whois example.com | grep "registered"
- Capturer les sites suspects pour une vérification de similarité visuelle
dnstwist --screenshots /tmp/shots/ example.com
Correspondance floue
# Trouver des domaines similaires au vôtre (vérification DNS floue)
dnstwist --fuzz example.com
# Avec des mots-clés supplémentaires
dnstwist --dictionary words.txt example.com
Filtrage de la sortie
# Afficher uniquement les domaines avec des enregistrements A (actifs)
dnstwist example.com | grep "\."
# Afficher uniquement les domaines avec un MX (peuvent recevoir des e-mails)
dnstwist --mxcheck example.com | grep -v "empty"
# Sortie JSON pour un traitement automatisé
dnstwist --format json --registered example.com | \
python3 -c "
import json, sys
for d in json.load(sys.stdin):
if d.get('dns-a'):
print(d['domain'], d['dns-a'])
"
Conseils
- Repérez les domaines enregistrés au cours des 30 derniers jours : les enregistrements récents sont souvent des montages de phishing
- Des enregistrements MX sur des domaines imitateurs signifient une infrastructure de phishing active
- Les attaques par homoglyphes (utilisant des caractères Unicode similaires) sont de plus en plus courantes : dnstwist les détecte
- À lancer mensuellement contre les domaines de votre marque comme pratique de surveillance défensive
Aide / Page de manuel
dnstwist [options] <domain>
-r --registered Show only registered domains
-w --whois Fetch WHOIS data
-m --mxcheck Check MX records
-f --favicon Compare favicons
-s DIR --screenshots Take screenshots
--format FMT Output format: text, csv, json, list
--dictionary FILE Additional keywords to test
--fuzz Fuzzy domain matching
--threads N Number of threads (default: 10)
--timeout N DNS timeout (seconds)
-o FILE Output to file