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 dnstwistGit
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 dnstwistFedora Linux
$ sudo dnf install dnstwistArch Linux User Repository (yay)
$ yay -S dnstwistmacOS
Installation von dnstwist mit allen Abhängigkeiten, die ausführbare Datei wird dem $PATH hinzugefügt:
$ brew install dnstwistDocker
Offizielles Image von Docker Hub ziehen und ausführen:
$ docker run -it elceef/dnstwistAlternativ 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.nameBei 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.nameUm Domains mit verschiedenen Top-Level-Domains (TLD) zu prüfen:
$ dnstwist --tld dictionaries/common_tlds.dict domain.nameUm nur ausgewählte Algorithmen zu verwenden:
$ dnstwist --fuzzers "homoglyph,hyphenation" domain.nameExport der Ergebnisse:
$ dnstwist --format csv domain.name | column -t -s,
$ dnstwist --format json domain.name | jqNur Permutationen ohne DNS-Lookups:
$ dnstwist --format list domain.nameGeoIP-Standortinformationen abrufen:
$ dnstwist --geoip domain.namePhishing-Erkennung
Fuzzy Hashing
Aktivierung der Erkennung ähnlicher HTML-Quellcodes mit --lsh:
$ dnstwist --lsh domain.nameVerwendung von TLSH als LSH-Algorithmus:
$ dnstwist --lsh tlsh domain.nameAnpassung der zu überprüfenden URL:
$ dnstwist --lsh https://domain.name/owa/
$ dnstwist --lsh --lsh-url https://different.domain/owa/ domain.namePerceptual Hashing
Verwendung des Headless-Modus von Chromium für Screenshots und pHash-Berechnungen:
$ dnstwist --phash domain.nameSpeichern der erfassten Screenshots:
$ dnstwist --phash --screenshots /tmp/domain domain.nameProxy-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.nameVerwendung 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