Homograph / Homoglyph Angriffe im Phishing
Reading time: 5 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Ü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
- 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.).
- Unterstützende Infrastruktur registrieren – Optional eine Homoglyph-Domain registrieren und ein TLS-Zertifikat erhalten (die meisten CAs führen keine visuellen Ähnlichkeitsprüfungen durch).
- 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
- 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,:
- Jedes Zeichen des inspizierten Strings zu durchlaufen.
- Den Codepunkt seinem Unicode-Block zuzuordnen.
- 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аnꮯiа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 Ꭲiꮯkеt
(KyrillischС
,е
,а
; CherokeeᎢ
; lateinisches Kleinbuchstabenꮯ
). - Domain-Kette:
bestseoservices.com
➜ kommunales/templates
Verzeichnis ➜kig.skyvaulyt.ru
➜ gefälschte Microsoft-Anmeldung beimlcorsftpsswddprotcct.approaches.it.com
, geschützt durch benutzerdefinierte OTP CAPTCHA. - Spotify-Imitation:
Sρօtifւ
Absender mit Link, der hinterredirects.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
- The Homograph Illusion: Not Everything Is As It Seems
- Unicode Character Database
- dnstwist – domain permutation engine
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.