Attacchi Homograph / Homoglyph nel Phishing

Reading time: 5 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Panoramica

Un attacco homograph (noto anche come homoglyph) sfrutta il fatto che molti punti di codice Unicode di script non latini sono visivamente identici o estremamente simili ai caratteri ASCII. Sostituendo uno o più caratteri latini con i loro omologhi visivamente simili, un attaccante può creare:

  • Nomi di visualizzazione, soggetti o corpi di messaggi che sembrano legittimi all'occhio umano ma eludono le rilevazioni basate su parole chiave.
  • Domini, sottodomini o percorsi URL che ingannano le vittime facendole credere di visitare un sito fidato.

Poiché ogni glifo è identificato internamente dal suo punto di codice Unicode, un singolo carattere sostituito è sufficiente per sconfiggere confronti di stringhe naïve (ad es., "Παypal.com" vs. "Paypal.com").

Flusso di Lavoro Tipico del Phishing

  1. Creare il contenuto del messaggio – Sostituire lettere latine specifiche nel marchio / parola chiave impersonata con caratteri visivamente indistinguibili di un altro script (greco, cirillico, armeno, cherokee, ecc.).
  2. Registrare l'infrastruttura di supporto – Registrare facoltativamente un dominio homoglyph e ottenere un certificato TLS (la maggior parte delle CA non esegue controlli di somiglianza visiva).
  3. Inviare email / SMS – Il messaggio contiene homoglyph in uno o più dei seguenti luoghi:
  • Nome visualizzato del mittente (ad es., Ηеlрdеѕk)
  • Oggetto (Urgеnt Аctіon Rеquіrеd)
  • Testo del collegamento ipertestuale o nome di dominio completamente qualificato
  1. Catena di reindirizzamento – La vittima viene reindirizzata attraverso siti web apparentemente benigni o accorciatori di URL prima di atterrare sull'host malevolo che raccoglie credenziali / distribuisce malware.

Intervalli Unicode Comunemente Sfruttati

ScriptIntervalloGlifo di esempioSembra
GrecoU+0370-03FFΗ (U+0397)Latino H
GrecoU+0370-03FFρ (U+03C1)Latino p
CirillicoU+0400-04FFа (U+0430)Latino a
CirillicoU+0400-04FFе (U+0435)Latino e
ArmenoU+0530-058Fօ (U+0585)Latino o
CherokeeU+13A0-13FF (U+13A2)Latino T

Suggerimento: Le tabelle Unicode complete sono disponibili su unicode.org.

Tecniche di Rilevamento

1. Ispezione di Script Misti

Le email di phishing destinate a un'organizzazione di lingua inglese dovrebbero raramente mescolare caratteri di più script. Un'euristica semplice ma efficace è:

  1. Iterare ogni carattere della stringa ispezionata.
  2. Mappare il punto di codice al suo blocco Unicode.
  3. Sollevare un avviso se è presente più di uno script o se appaiono script non latini dove non sono attesi (nome visualizzato, dominio, soggetto, URL, ecc.).

Prova di concetto in Python:

python
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. Normalizzazione Punycode (Domini)

I nomi di dominio internazionalizzati (IDN) sono codificati con punycode (xn--). Convertire ogni nome host in punycode e poi tornare a Unicode consente di confrontare con una lista bianca o eseguire controlli di somiglianza (ad es., distanza di Levenshtein) dopo che la stringa è stata normalizzata.

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

3. Dizionari / Algoritmi di Omoglyph

Strumenti come dnstwist (--homoglyph) o urlcrazy possono enumerare permutazioni di dominio visivamente simili e sono utili per azioni proattive di rimozione / monitoraggio.

Prevenzione e Mitigazione

  • Applicare politiche DMARC/DKIM/SPF rigorose – prevenire lo spoofing da domini non autorizzati.
  • Implementare la logica di rilevamento sopra in Secure Email Gateways e SIEM/XSOAR playbook.
  • Segnalare o mettere in quarantena i messaggi in cui il dominio del nome visualizzato ≠ dominio del mittente.
  • Educare gli utenti: copiare e incollare testo sospetto in un ispezionatore Unicode, passare il mouse sui link, non fidarsi mai degli accorciatori di URL.

Esempi del Mondo Reale

  • Nome visualizzato: Сonfidеntiаl Ꭲiꮯkеt (Cirillico С, е, а; Cherokee ; maiuscolo latino ).
  • Catena di dominio: bestseoservices.com ➜ directory municipale /templateskig.skyvaulyt.ru ➜ falso login Microsoft su mlcorsftpsswddprotcct.approaches.it.com protetto da CAPTCHA OTP personalizzato.
  • Impersonificazione di Spotify: mittente Sρօtifւ con link nascosto dietro redirects.ca.

Questi campioni provengono dalla ricerca di Unit 42 (luglio 2025) e illustrano come l'abuso di omografi sia combinato con la redirezione URL e l'evasione CAPTCHA per bypassare l'analisi automatizzata.

Riferimenti

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks