← retour aux outils back to tools

# 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

2. Check which have MX records (ready to receive email)

    dnstwist --mxcheck example.com | grep -i "mx"

3. Check for recently registered (potential phishing)

    dnstwist --whois example.com | grep "registered"

4. 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

2. Vérifier lesquels ont des enregistrements MX (prêts à recevoir des e-mails)

    dnstwist --mxcheck example.com | grep -i "mx"

3. Vérifier les enregistrements récents (phishing potentiel)

    dnstwist --whois example.com | grep "registered"

4. 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