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/dnstwist

Overview

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

  1. Find registered lookalike domains
dnstwist --registered --format json example.com > lookalikes.json
  1. Check which have MX records (ready to receive email)
dnstwist --mxcheck example.com | grep -i "mx"
  1. Check for recently registered (potential phishing)
dnstwist --whois example.com | grep "registered"
  1. 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

  1. Trouver les domaines imitateurs enregistrés
dnstwist --registered --format json example.com > lookalikes.json
  1. Vérifier lesquels ont des enregistrements MX (prêts à recevoir des e-mails)
dnstwist --mxcheck example.com | grep -i "mx"
  1. Vérifier les enregistrements récents (phishing potentiel)
dnstwist --whois example.com | grep "registered"
  1. 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