dnstwist: Erkennung von Typosquatting und Phishing-Domains

dnstwist ist ein leistungsstarkes Werkzeug, um herauszufinden, welche Probleme Benutzer haben können, wenn sie versuchen, Ihren Domainnamen einzutippen. Es identifiziert ähnliche Domains, die von Angreifern genutzt werden könnten, um Sie anzugreifen. Das Tool kann Typosquatter, Phishing-Angriffe, Betrug und Markenimitationen erkennen und dient als zusätzliche Quelle für gezielte Threat Intelligence.

Demo

cool demo dnstwist.it

Hauptfunktionen

  • Vielzahl effektiver Domain-Fuzzing-Algorithmen
  • Unterstützung von Unicode-Domainnamen (IDN)
  • Zusätzliche Domain-Permutationen aus Wörterbuchdateien
  • Effiziente Multithread-Aufgabenverteilung
  • Live-Phishing-Webseitenerkennung:
    • HTML-Ähnlichkeit mit Fuzzy-Hashes (ssdeep/tlsh)
    • Screenshot-Ähnlichkeit mit Perceptual Hashes (pHash)
  • Erkennung von Rogue MX Hosts (Abfangen fehlgeleiteter E-Mails)
  • GeoIP-Lokalisierung
  • Export in CSV und JSON

Installation

Python PIP

$ pip install dnstwist[full]

Alternativ kann das Minimum installiert und weitere Anforderungen manuell hinzugefügt werden:

$ pip install dnstwist

Git

Um die neueste Version des Codes aus dem Repository zu installieren:

$ git clone https://github.com/elceef/dnstwist.git
$ cd dnstwist
$ pip install .

Debian/Ubuntu/Kali Linux

Installation des Tools mit allen zusätzlichen Paketen:

$ sudo apt install dnstwist

Fedora Linux

$ sudo dnf install dnstwist

Arch Linux User Repository (yay)

$ yay -S dnstwist

macOS

Installation von dnstwist mit allen Abhängigkeiten, die ausführbare Datei wird dem $PATH hinzugefügt:

$ brew install dnstwist

Docker

Offizielles Image von Docker Hub ziehen und ausführen:

$ docker run -it elceef/dnstwist

Alternativ können lokale Images erstellt werden:

$ docker build -t dnstwist .
$ docker build -t dnstwist:phash --build-arg phash=1 .

Kurzanleitung

Das Tool durchläuft den angegebenen Domainnamen mit seinen Fuzzing-Algorithmen und generiert eine Liste potenzieller Phishing-Domains mit DNS-Einträgen.

Um nur registrierte Domains anzuzeigen:

$ dnstwist --registered domain.name

Bei Bedarf kann ein externer DNS- oder DNS-over-HTTPS-Server mit dem Argument --nameservers angegeben werden.

Für zusätzliche Domain-Permutationen aus Wörterbüchern:

$ dnstwist --dictionary dictionaries/english.dict domain.name

Um Domains mit verschiedenen Top-Level-Domains (TLD) zu prüfen:

$ dnstwist --tld dictionaries/common_tlds.dict domain.name

Um nur ausgewählte Algorithmen zu verwenden:

$ dnstwist --fuzzers "homoglyph,hyphenation" domain.name

Export der Ergebnisse:

$ dnstwist --format csv domain.name | column -t -s,
$ dnstwist --format json domain.name | jq

Nur Permutationen ohne DNS-Lookups:

$ dnstwist --format list domain.name

GeoIP-Standortinformationen abrufen:

$ dnstwist --geoip domain.name

Phishing-Erkennung

Fuzzy Hashing

Aktivierung der Erkennung ähnlicher HTML-Quellcodes mit --lsh:

$ dnstwist --lsh domain.name

Verwendung von TLSH als LSH-Algorithmus:

$ dnstwist --lsh tlsh domain.name

Anpassung der zu überprüfenden URL:

$ dnstwist --lsh https://domain.name/owa/
$ dnstwist --lsh --lsh-url https://different.domain/owa/ domain.name

Perceptual Hashing

Verwendung des Headless-Modus von Chromium für Screenshots und pHash-Berechnungen:

$ dnstwist --phash domain.name

Speichern der erfassten Screenshots:

$ dnstwist --phash --screenshots /tmp/domain domain.name

Proxy-Unterstützung

HTTP-Verbindungen verwenden automatisch Proxys, wenn entsprechende Umgebungsvariablen ($http_proxy, $https_proxy) gesetzt sind.

API-Nutzung

Einbindung in eigenen Code:

import dnstwist
data = dnstwist.run(domain='domain.name', registered=True, format='null')

Nur Domain-Permutationen generieren:

dnstwist.run(domain='domain.name', format='list', output=dnstwist.devnull)

Performance-Tuning

Erhöhung der Thread-Anzahl für bessere Leistung:

$ dnstwist --threads 50 domain.name

Verwendung schneller DNS-Resolver mit geringer Latenz zur Beschleunigung der DNS-Lookups.

Hinweise zur Abdeckung

Die Anzahl der Permutationen steigt mit der Länge der Eingabedomain exponentiell an. Das Tool generiert daher nur Domains, die dem Original sehr ähnlich sind und für Angreifer attraktiv sein könnten.

Integrationen

dnstwist wird von zahlreichen SOC- und Incident-Response-Teams sowie Sicherheitsanbietern integriert und genutzt, darunter:

  • Splunk Add-on
  • RecordedFuture
  • SpiderFoot
  • DigitalShadows
  • SecurityRisk
  • SmartFense
  • ThreatPipes
  • PaloAlto Cortex XSOAR
  • Rapid7 InsightConnect SOAR
  • Mimecast
  • Watcher
  • Intel Owl
  • PatrOwl
  • VDA Labs
  • Appsecco
  • Maltego
  • Conscia ThreatInsights
  • Fortinet FortiSOAR
  • ThreatConnect
  • CISA Crossfeed

Kontakt

Fragen oder Feedback können an marcin@ulikowski.pl gesendet werden.


tagsdnstwistTyposquattingPhishingThreatIntelligenceDomainSecurity

Network-Attacks-Overview