5.7 KiB
Raw Blame History

Homograph / Homoglyph Angriffe im Phishing

{{#include ../../banners/hacktricks-training.md}}

Übersicht

Ein Homograph (auch Homoglyph) Angriff nutzt die Tatsache aus, dass viele Unicode-Codepunkte aus nicht-lateinischen Schriften visuell identisch oder extrem ähnlich zu ASCII-Zeichen sind. Durch das Ersetzen eines oder mehrerer lateinischer Zeichen durch ihre ähnlich aussehenden Gegenstücke kann ein Angreifer:

  • Anzeigenamen, Betreffzeilen oder Nachrichteninhalte erstellen, die für das menschliche Auge legitim erscheinen, aber keyword-basierte Erkennungen umgehen.
  • Domains, Subdomains oder URL-Pfade erstellen, die Opfer dazu bringen, zu glauben, sie besuchen eine vertrauenswürdige Seite.

Da jedes Glyph intern durch seinen Unicode-Codepunkt identifiziert wird, reicht ein einzelnes ersetztes Zeichen aus, um naive String-Vergleiche zu überwinden (z. B. αypal.com" vs. "Paypal.com").

Typischer Phishing-Workflow

  1. Nachrichteninhalt erstellen Ersetzen Sie spezifische lateinische Buchstaben in der impersonierten Marke / dem Schlüsselwort durch visuell nicht unterscheidbare Zeichen aus einer anderen Schrift (Griechisch, Kyrillisch, Armenisch, Cherokee usw.).
  2. Unterstützende Infrastruktur registrieren Optional eine Homoglyph-Domain registrieren und ein TLS-Zertifikat erhalten (die meisten CAs führen keine visuellen Ähnlichkeitsprüfungen durch).
  3. E-Mail / SMS senden Die Nachricht enthält Homoglyphen an einem oder mehreren der folgenden Orte:
  • Absenderanzeige (z. B. Ηеlрdеѕk)
  • Betreffzeile (Urgеnt Аctіon Rеquіrеd)
  • Hyperlink-Text oder vollqualifizierter Domainname
  1. Umleitungs-Kette Das Opfer wird durch scheinbar harmlose Websites oder URL-Shortener geleitet, bevor es auf dem bösartigen Host landet, der Anmeldeinformationen erntet / Malware liefert.

Häufig missbrauchte Unicode-Bereiche

Schrift Bereich Beispiel-Glyph Sieht aus wie
Griechisch U+0370-03FF Η (U+0397) Latein H
Griechisch U+0370-03FF ρ (U+03C1) Latein p
Kyrillisch U+0400-04FF а (U+0430) Latein a
Kyrillisch U+0400-04FF е (U+0435) Latein e
Armenisch U+0530-058F օ (U+0585) Latein o
Cherokee U+13A0-13FF (U+13A2) Latein T

Tipp: Vollständige Unicode-Diagramme sind verfügbar unter unicode.org.

Erkennungstechniken

1. Mischschriftinspektion

Phishing-E-Mails, die sich an eine englischsprachige Organisation richten, sollten selten Zeichen aus mehreren Schriften mischen. Eine einfache, aber effektive Heuristik ist es,:

  1. Jedes Zeichen des inspizierten Strings zu durchlaufen.
  2. Den Codepunkt seinem Unicode-Block zuzuordnen.
  3. Eine Warnung auszulösen, wenn mehr als eine Schrift vorhanden ist oder wenn nicht-lateinische Schriften an unerwarteten Stellen erscheinen (Anzeigename, Domain, Betreff, URL usw.).

Python Proof-of-Concept:

import unicodedata as ud
from collections import defaultdict

SUSPECT_FIELDS = {
"display_name": "Ηоmоgraph Illusion",     # example data
"subject": "Finаniаl Տtatеmеnt",
"url": "https://xn--messageconnecton-2kb.blob.core.windows.net"  # punycode
}

for field, value in SUSPECT_FIELDS.items():
blocks = defaultdict(int)
for ch in value:
if ch.isascii():
blocks['Latin'] += 1
else:
name = ud.name(ch, 'UNKNOWN')
block = name.split(' ')[0]     # e.g., 'CYRILLIC'
blocks[block] += 1
if len(blocks) > 1:
print(f"[!] Mixed scripts in {field}: {dict(blocks)} -> {value}")

2. Punycode-Normalisierung (Domains)

Internationalisierte Domainnamen (IDNs) werden mit punycode (xn--) codiert. Die Umwandlung jedes Hostnamens in Punycode und dann zurück in Unicode ermöglicht das Abgleichen mit einer Whitelist oder das Durchführen von Ähnlichkeitsprüfungen (z. B. Levenshtein-Distanz) nachdem der String normalisiert wurde.

import idna
hostname = "Ρаypal.com"   # Greek Rho + Cyrillic a
puny = idna.encode(hostname).decode()
print(puny)  # xn--yl8hpyal.com

3. Homoglyph-Wörterbücher / Algorithmen

Tools wie dnstwist (--homoglyph) oder urlcrazy können visuell ähnliche Domain-Permutationen auflisten und sind nützlich für proaktive Abschaltungen / Überwachung.

Prävention & Minderung

  • Strenge DMARC/DKIM/SPF-Richtlinien durchsetzen Spoofing von unautorisierten Domains verhindern.
  • Implementieren Sie die oben genannte Erkennungslogik in Secure Email Gateways und SIEM/XSOAR-Playbooks.
  • Nachrichten kennzeichnen oder quarantänisieren, bei denen der Anzeigename-Domain ≠ Absender-Domain.
  • Benutzer schulen: Verdächtigen Text in einen Unicode-Inspektor kopieren, Links überfahren, URL-Shortener niemals vertrauen.

Beispiele aus der Praxis

  • Anzeigename: Сonfidеntiаl ikеt (Kyrillisch С, е, а; Cherokee ; lateinisches Kleinbuchstaben ).
  • Domain-Kette: bestseoservices.com ➜ kommunales /templates Verzeichnis ➜ kig.skyvaulyt.ru ➜ gefälschte Microsoft-Anmeldung bei mlcorsftpsswddprotcct.approaches.it.com, geschützt durch benutzerdefinierte OTP CAPTCHA.
  • Spotify-Imitation: Sρօtifւ Absender mit Link, der hinter redirects.ca verborgen ist.

Diese Beispiele stammen aus der Forschung von Unit 42 (Juli 2025) und veranschaulichen, wie Homographenmissbrauch mit URL-Umleitung und CAPTCHA-Umgehung kombiniert wird, um automatisierte Analysen zu umgehen.

Referenzen

{{#include ../../banners/hacktricks-training.md}}